Skip to content

Bug: WebGPU engine blacks the whole frame on extra-high tier (invalid ssao RenderPipeline) #593

Closed as duplicate

Description

@MaximumTrainer

Summary

On next/svelte-webgpu, running the /row engine at the extra-high performance tier renders a fully black frame. Chrome's console reports an invalid ssao RenderPipeline. Every other tier (basic/low/medium/high) renders normally.

This is pre-existing — not introduced by the current foliage/tier/shader-grass work. It reproduces on commit bc34d75 (the tip of the parity branch before those commits) when the tier is forced to extra-high, so it should be fixed independently.

Repro

  1. Build/serve the Svelte+WebGPU app from next/svelte-webgpu and open /row on a real-GPU browser (verified on Intel Gen-9, Chrome with --enable-unsafe-webgpu).
  2. Force the tier before the engine attaches, e.g. window.__VIRTUALROW_PERFORMANCE_MODE = 'extra-high' (via an init script / before boot).
  3. Start a ride.

Expected

extra-high renders the scene like the other tiers (it adds DOF on top of SSAO per the tier caps).

Actual

The whole frame is black. Chrome console logs an invalid ssao RenderPipeline. No crash/device-lost is raised — the scene just never draws.

Notes / likely area

  • extra-high is the only tier that enables both SSAO and DOF (src/lib/renderer/engine/tierCaps.ts — drawSsao: true for high and extra-high; drawDof: true only for extra-high).
  • SSAO alone is not broken: the high tier (SSAO on, DOF off) renders fine in live capture. The black frame appears only at extra-high, which additionally turns DOF on — so the trigger may be the DOF / extra-high combination (or an ordering/target-format interaction in the post-FX chain) even though the console names the ssao pipeline.
  • The SSAO pipeline is built with layout: 'auto', target r8unorm, in src/lib/renderer/engine/postFx.ts (~L152–172); the post-FX chain order is bloom → SSAO → composite → DOF (see the header comment in postFx.ts). An invalid pipeline there invalidates the frame's command buffer, which matches the all-black symptom.

Scope

Engine track of #542 (post-processing stack landed in #573). Does not affect the normal tier path; impact is that extra-high is currently unusable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions