From efddd798e83705b0e17e074fe344b2d491051ba2 Mon Sep 17 00:00:00 2001 From: Emile Bangma Date: Wed, 30 Jul 2025 18:43:36 +0200 Subject: [PATCH] revert(graph): roll back changes due to issues with Safari (#2067) * chore: remove unused dependency * fix(graph): rolled back webgpu changes --- package-lock.json | 1 - package.json | 1 - quartz/components/scripts/graph.inline.ts | 27 +---------------------- 3 files changed, 1 insertion(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 47c3d11..df6a813 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,6 @@ "@myriaddreamin/rehype-typst": "^0.6.0", "@napi-rs/simple-git": "0.1.21", "@tweenjs/tween.js": "^25.0.0", - "@webgpu/types": "^0.1.64", "ansi-truncate": "^1.2.0", "async-mutex": "^0.5.0", "chokidar": "^4.0.3", diff --git a/package.json b/package.json index d83c9ac..13ecad3 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "@myriaddreamin/rehype-typst": "^0.6.0", "@napi-rs/simple-git": "0.1.21", "@tweenjs/tween.js": "^25.0.0", - "@webgpu/types": "^0.1.64", "ansi-truncate": "^1.2.0", "async-mutex": "^0.5.0", "chokidar": "^4.0.3", diff --git a/quartz/components/scripts/graph.inline.ts b/quartz/components/scripts/graph.inline.ts index 9c8ec60..a669b05 100644 --- a/quartz/components/scripts/graph.inline.ts +++ b/quartz/components/scripts/graph.inline.ts @@ -68,30 +68,6 @@ type TweenNode = { 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) { const slug = simplifySlug(fullSlug) const visited = getVisited() @@ -373,7 +349,6 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { tweens.forEach((tween) => tween.stop()) tweens.clear() - const pixiPreference = await determineGraphicsAPI() const app = new Application() await app.init({ width, @@ -382,7 +357,7 @@ async function renderGraph(graph: HTMLElement, fullSlug: FullSlug) { autoStart: false, autoDensity: true, backgroundAlpha: 0, - preference: pixiPreference, + preference: "webgpu", resolution: window.devicePixelRatio, eventMode: "static", })