mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-19 10:54:06 -06:00
fix(graph): rolled back webgpu changes
This commit is contained in:
parent
9b1f48eeb6
commit
4c37e6f3fb
@ -68,30 +68,6 @@ type TweenNode = {
|
|||||||
stop: () => void
|
stop: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
// workaround for pixijs webgpu issue: https://github.com/pixijs/pixijs/issues/11389
|
|
||||||
async function determineGraphicsAPI(): Promise<"webgpu" | "webgl"> {
|
|
||||||
const adapter = await navigator.gpu?.requestAdapter().catch(() => null)
|
|
||||||
const device = adapter && (await adapter.requestDevice().catch(() => null))
|
|
||||||
if (!device) {
|
|
||||||
return "webgl"
|
|
||||||
}
|
|
||||||
|
|
||||||
const canvas = document.createElement("canvas")
|
|
||||||
const gl =
|
|
||||||
(canvas.getContext("webgl2") as WebGL2RenderingContext | null) ??
|
|
||||||
(canvas.getContext("webgl") as WebGLRenderingContext | null)
|
|
||||||
|
|
||||||
// we have to return webgl so pixijs automatically falls back to canvas
|
|
||||||
if (!gl) {
|
|
||||||
return "webgl"
|
|
||||||
}
|
|
||||||
|
|
||||||
const webglMaxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS)
|
|
||||||
const webgpuMaxTextures = device.limits.maxSampledTexturesPerShaderStage
|
|
||||||
|
|
||||||
return webglMaxTextures === webgpuMaxTextures ? "webgpu" : "webgl"
|
|
||||||
}
|
|
||||||
|
|
||||||
async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) {
|
async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) {
|
||||||
const slug = simplifySlug(fullSlug)
|
const slug = simplifySlug(fullSlug)
|
||||||
const visited = getVisited()
|
const visited = getVisited()
|
||||||
@ -373,7 +349,6 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) {
|
|||||||
tweens.forEach((tween) => tween.stop())
|
tweens.forEach((tween) => tween.stop())
|
||||||
tweens.clear()
|
tweens.clear()
|
||||||
|
|
||||||
const pixiPreference = await determineGraphicsAPI()
|
|
||||||
const app = new Application()
|
const app = new Application()
|
||||||
await app.init({
|
await app.init({
|
||||||
width,
|
width,
|
||||||
@ -382,7 +357,7 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) {
|
|||||||
autoStart: false,
|
autoStart: false,
|
||||||
autoDensity: true,
|
autoDensity: true,
|
||||||
backgroundAlpha: 0,
|
backgroundAlpha: 0,
|
||||||
preference: pixiPreference,
|
preference: "webgpu",
|
||||||
resolution: window.devicePixelRatio,
|
resolution: window.devicePixelRatio,
|
||||||
eventMode: "static",
|
eventMode: "static",
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user