From 15d555772c59d85ca765a529dde1777933980569 Mon Sep 17 00:00:00 2001 From: soulrap <135220351+soulrap@users.noreply.github.com> Date: Fri, 28 Aug 2026 02:34:20 +0300 Subject: [PATCH] make the renderer preference configurable `preference` was hardcoded to 'webgpu'. On machines where WebGPU is available but renders nothing, the game is a black screen with no error - the scene graph builds and the ticker runs, only no pixels come out. PixiJS falls back to WebGL when WebGPU is *unavailable*, so it cannot detect this case on its own. Expose an optional `rendererPreference` prop on App/InitialiseApplication, defaulting to 'webgpu' so current behaviour is unchanged. Co-Authored-By: Claude Opus 5 --- packages/pixi-svelte/src/lib/components/App.svelte | 4 ++-- .../src/lib/components/InitialiseApplication.svelte | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/pixi-svelte/src/lib/components/App.svelte b/packages/pixi-svelte/src/lib/components/App.svelte index b9ce3b379..64b6611a1 100644 --- a/packages/pixi-svelte/src/lib/components/App.svelte +++ b/packages/pixi-svelte/src/lib/components/App.svelte @@ -7,7 +7,7 @@ import InitialiseParent from './InitialiseParent.svelte'; import AssetsLoader from './AssetsLoader.svelte'; - type Props = { children: Snippet }; + type Props = { children: Snippet; rendererPreference?: 'webgpu' | 'webgl' }; const props: Props = $props(); const context = getContextApp(); @@ -16,7 +16,7 @@ onDestroy(() => context.stateApp.reset()); - + {@render props.children()} diff --git a/packages/pixi-svelte/src/lib/components/InitialiseApplication.svelte b/packages/pixi-svelte/src/lib/components/InitialiseApplication.svelte index 25eaa684a..0f0dc8899 100644 --- a/packages/pixi-svelte/src/lib/components/InitialiseApplication.svelte +++ b/packages/pixi-svelte/src/lib/components/InitialiseApplication.svelte @@ -6,7 +6,7 @@ import { getContextApp } from '../context.svelte'; import { preloadFont } from '../utils.svelte'; - type Props = { children: Snippet }; + type Props = { children: Snippet; rendererPreference?: 'webgpu' | 'webgl' }; const props: Props = $props(); const context = getContextApp(); @@ -26,7 +26,7 @@ multiView: false, antialias: true, clearBeforeRender: true, - preference: 'webgpu', + preference: props.rendererPreference ?? 'webgpu', powerPreference: 'high-performance', resolution: devicePixelRatio.current, resizeTo: window,