Optionalwidth: numberOptionalheight: numberDestroy all GPU resources held by this pipeline. After calling this method the pipeline is no longer usable. Safe to call multiple times.
Create-and-VALIDATE the quantized pipeline variants. Uses createRenderPipelineAsync so WebGPU's asynchronous validation completes before anything is cached — a sync createRenderPipeline can hand back a pipeline whose validation later fails on the device, and caching that would make every quantized draw error. This is the ONLY creator; the sync getter below reads the cache. Returns whether all variants exist.
Depth-only view (for sampling as texture_depth_* in shaders).
Lighting-environment bind group — set at group(1) once per render pass.
The X-Ray ghost pipeline, or null until it is built: the first call starts
the async build and onReady runs when it lands. A failed build leaves
ghosts on the transparent pipeline.
GPU-instancing pipeline (template vertex buffer at slot 0 + per-instance buffer at slot 1).
Get multisample texture view (for MSAA rendering)
Cache-only reader for the quantized variants (see ensureQuantizedPipelines); 'overlay' is never built since #6076.
Get sample count
Stencil-only view (for sampling stencil in the cap fill pass).
Textured-mesh pipeline (#961).
Check if resize is needed
Resize depth texture
Bind the scene's entity colour table (#6076); null binds the empty one. Rebuilds only on change.
Point the environment bind group at the active shadow depth map (#2670).
Pass null to fall back to the 1×1 dummy (shadows off). Rebuilds the bind
group only when the view actually changes, so a steady enabled/disabled
state costs nothing per frame.
Write the global lighting environment uniform buffer. Cheap (80 bytes);
called once per frame with the resolved RenderOptions.environment.
Optionalenv: LightingEnvironmentWrite the sun shadow uniform (light matrix + params). 96 bytes.
Update uniform buffer with camera matrices, PBR material, section plane, and selection state
Optionalcolor: [number, number, number, number]Optionalmaterial: { metallic?: number; roughness?: number }OptionalsectionPlane: {OptionalisSelected: booleanOptionalclipBox: {OptionalextraFlagsX: number
Create a bind group for a textured mesh (#961): the mesh's own uniform buffer at binding 0, plus its albedo texture view + sampler at 1 & 2.