Documentation
    Preparing search index...

    Module @fourjs/render-webgpu

    @fourjs/render-webgpu

    WebGPU backend — §62 backend 1. Part of fourJS.

    Implements @fourjs/render's Renderer over WebGPU (WP-R1.1–R1.9, 2026-08-21…29; the R-1 plan is complete). Applications select a backend at the edge — nothing in @fourjs/scene, @fourjs/motion, or @fourjs/physics may name anything in this package. Calling registerWebgpuRenderer() moves an application off WebGL 2, because AUTO_RENDERER_ORDER prefers WebGPU.

    This package was a reserved stub until WP-R1.1 landed 2026-08-21. The barrel no longer exports only PACKAGE_NAME.

    • WebgpuRenderer — the one public entry point. Unlit / sprite / lit / standard families, opt-in §65 batching, textures + samplers, §67 clips + §57 stencil parity, render targets / §70 effects / readPixels, the §69 directional shadow tier, §36 instanced particles, §82 compute, §60 node materials + §70 graph effects behind registerWebgpuNodeMaterialPipeline(), and §71 picking behind registerPickingPipeline().
    • registerWebgpuRenderer / isWebgpuSupported — §62's opt-in registry seam.
    • Testing seams — the structural device surface, pipeline cache, bind-group layouts, and WGSL builders, so the backend can be unit-tested against a fake device with no GPU and no browser (Node has no navigator.gpu; see tests/integration/helpers/recording-gpu.ts).

    RFC 0003's skinned shadow caster compiles lazily through acquireShadow() on the registered colour pair. §71 picking is opt-in via registerPickingPipeline() (createPickingService throws until registered); particle systems pick as one id per emitter (CPU 8-float stream); skinned items pick through a private skinned id pipeline; trails stay skipped.

    Unit tests are colocated in tests/ per §92. Browser-pixel coverage lives under tests/browser/webgpu/.

    Workspace name @fourjs/render-webgpu; publishes as @danielsimonjr/fourjs-render-webgpu.

    WebgpuPickingService
    WebgpuRenderer
    WgpuBatching
    WgpuComputeBuffer
    WgpuComputeCache
    WgpuGeometryCache
    WgpuNodePipelineStore
    WgpuParticleCache
    WgpuParticleSimulation
    WgpuPipelineCache
    WgpuRenderTargetCache
    WgpuTextureCache
    ComputeBinding
    ComputeBufferOptions
    ComputePassDescriptor
    EmittedWgslNodeShader
    Gpu
    GpuAdapter
    GpuBindGroupEntry
    GpuBindGroupLayoutEntry
    GpuBlendComponent
    GpuBlendState
    GpuBuffer
    GpuBufferBinding
    GpuBufferDescriptor
    GpuCanvasContext
    GpuCommandEncoder
    GpuComputePassEncoder
    GpuComputePipelineDescriptor
    GpuDevice
    GpuDeviceLostInfo
    GpuQuerySet
    GpuQueue
    GpuRenderPassDescriptor
    GpuRenderPassEncoder
    GpuRenderPipelineDescriptor
    GpuSamplerDescriptor
    GpuStencilFaceState
    GpuTexture
    GpuTextureDescriptor
    GpuTextureViewDescriptor
    GpuVertexBufferLayout
    ParticleSimulationFieldParams
    PickingRendererHost
    PickingServiceFactory
    ResolvedSamplerState
    SkinnedLitPipeline
    SkinnedPrograms
    SkinnedUnlitPipeline
    SkinningPipelineFactory
    SkinningPipelineHost
    WebgpuCanvas
    WgpuBatchStream
    WgpuGeometryRecord
    WgpuNodeFrameState
    WgpuNodeMaterialPipelineFactory
    WgpuNodeMaterialPipelines
    WgpuNodePipelineHost
    WgpuParticleRecord
    WgpuParticleSimulationOptions
    WgpuPipelineDescriptor
    WgpuRenderBatching
    WgpuRenderTargetRecord
    WgpuSkinnedDrawDescriptor
    WgpuSkinnedShadowDescriptor
    WgpuStencilDescriptor
    WgpuTextureRecord
    CacheableGeometry
    ComputeBindingAccess
    GpuBindGroup
    GpuBindGroupLayout
    GpuCommandBuffer
    GpuComputePipeline
    GpuPipelineLayout
    GpuRenderPipeline
    GpuSampler
    GpuShaderModule
    GpuTextureView
    WgpuCacheableRenderTarget
    WgpuCacheableTexture
    WgpuEffectKind
    WgpuNodeItemMaterial
    WgpuPipelineKind
    WgpuStencilSource
    CLEAR_SHADER_SOURCE
    CLEAR_STENCIL
    CLEAR_VERTEX_COUNT
    COLOR_BUFFER_LAYOUT
    COLOR_SHADER_LOCATION
    COMPUTE_ENTRY_POINT
    DRAW_COLOR_OFFSET
    DRAW_MODEL_OFFSET
    DRAW_NORMAL_OFFSET
    DRAW_UNIFORM_BYTES
    DRAW_UNIFORM_FLOATS
    DRAW_UNIFORM_WGSL
    DRAW_VIEW_PROJECTION_OFFSET
    EFFECT_BIND_GROUP_INDEX
    EFFECT_GRADE_OFFSET
    EFFECT_PASS_VERTEX_COUNT
    EFFECT_UNIFORM_BYTES
    EFFECT_UNIFORM_WGSL
    FRAGMENT_ENTRY_POINT
    GPU_BUFFER_USAGE
    GPU_MAP_MODE
    GPU_SHADER_STAGE
    GPU_TEXTURE_USAGE
    HEMISPHERE_GROUND_OFFSET
    HEMISPHERE_IRRADIANCE_WGSL
    HEMISPHERE_SKY_OFFSET
    HEMISPHERE_UNIFORM_MEMBERS_WGSL
    HEMISPHERE_UP_OFFSET
    ID_MODEL_OFFSET
    ID_PICK_OFFSET
    ID_SHADER_SOURCE
    ID_UNIFORM_BYTES
    ID_VIEW_PROJECTION_OFFSET
    JOINT_PALETTE_BINDING
    JOINT_PALETTE_BYTES
    JOINT_PALETTE_FLOATS
    JOINTS_BUFFER_LAYOUT
    JOINTS_SHADER_LOCATION
    LIGHT_AMBIENT_OFFSET
    LIGHT_BINDING_BYTES
    LIGHT_CAMERA_OFFSET
    LIGHT_COLOR_OFFSET
    LIGHT_COUNTS_OFFSET
    LIGHT_DIRECTION_OFFSET
    LIGHT_PUNCTUAL_COLOR_OFFSET
    LIGHT_PUNCTUAL_DIRECTION_OFFSET
    LIGHT_PUNCTUAL_PARAMS_OFFSET
    LIGHT_PUNCTUAL_POSITION_OFFSET
    LIGHT_UNIFORM_BYTES
    LIGHT_UNIFORM_FLOATS
    LIGHT_UNIFORM_MEMBERS_WGSL
    LIGHT_UNIFORM_STRIDE_BYTES
    LIGHT_UNIFORM_STRIDE_FLOATS
    LIGHT_UNIFORM_WGSL
    LIGHTS_BIND_GROUP_INDEX
    MAP_BIND_GROUP_INDEX
    MAP_BINDING_WGSL
    MAP_SAMPLER_BINDING
    MAP_TEXTURE_BINDING
    MIPMAP_SHADER_SOURCE
    NODE_SCREEN_BLOCK_BASE_BYTES
    NODE_SCREEN_TEXTURE_GROUP
    NODE_SURFACE_BLOCK_BASE_BYTES
    NODE_SURFACE_BLOCK_GROUP
    NODE_SURFACE_TEXTURE_GROUP
    NORMAL_BUFFER_LAYOUT
    NORMAL_MATRIX_WGSL
    NORMAL_SHADER_LOCATION
    PACKAGE_NAME
    PARTICLE_APPEARANCE_SHADER_SOURCE
    PARTICLE_GPU_INSTANCE_BUFFER_LAYOUT
    PARTICLE_GPU_POSITION_BUFFER_LAYOUT
    PARTICLE_GPU_VERTEX_BUFFER_LAYOUTS
    PARTICLE_ID_MODEL_OFFSET
    PARTICLE_ID_PICK_OFFSET
    PARTICLE_ID_PROJECTION_OFFSET
    PARTICLE_ID_SHADER_SOURCE
    PARTICLE_ID_UNIFORM_BYTES
    PARTICLE_ID_VIEW_OFFSET
    PARTICLE_INSTANCE_BUFFER_LAYOUT
    PARTICLE_INSTANCE_STRIDE_BYTES
    PARTICLE_INTEGRATOR_SHADER_SOURCE
    PARTICLE_INTEGRATOR_WORKGROUP_SIZE
    PARTICLE_MODEL_OFFSET
    PARTICLE_PROJECTION_OFFSET
    PARTICLE_SHADER_SOURCE
    PARTICLE_SIMULATION_PARAMS_FLOATS
    PARTICLE_SIMULATION_SCRATCH_BYTES
    PARTICLE_SIMULATION_VECTOR_BYTES
    PARTICLE_UNIFORM_BYTES
    PARTICLE_UNIFORM_WGSL
    PARTICLE_VERTEX_BUFFER_LAYOUTS
    PARTICLE_VIEW_OFFSET
    PARTICLE_WIDE_INSTANCE_BUFFER_LAYOUT
    PARTICLE_WIDE_INSTANCE_STRIDE_BYTES
    POSITION_BUFFER_LAYOUT
    POSITION_SHADER_LOCATION
    PUNCTUAL_LIGHT_WGSL
    READBACK_ROW_ALIGNMENT
    RENDER_TARGET_COLOR_FORMAT
    RENDER_TARGET_DEPTH_FORMAT
    RENDER_TARGET_DEPTH_STENCIL_FORMAT
    RENDER_TARGET_DEPTH_TEXTURE_FORMAT
    SHADED_MAP_BIND_GROUP_INDEX
    SHADED_MAP_BINDING_WGSL
    SHADED_MR_BIND_GROUP_INDEX
    SHADED_MR_BINDING_WGSL
    SHADOW_FACTOR_WGSL
    SHADOW_LIGHT_UNIFORM_BYTES
    SHADOW_LIGHT_UNIFORM_WGSL
    SHADOW_MAP_BINDING
    SHADOW_MATRIX_OFFSET
    SHADOW_PARAMS_OFFSET
    SHADOW_SAMPLER_BINDING
    SHADOW_SHADER_SOURCE
    SHADOW_UNIFORM_SPARE_BYTES
    SKINNED_ID_PALETTE_BYTES
    SKINNED_ID_SHADER_SOURCE
    SKINNED_SHADOW_SHADER_SOURCE
    SKINNED_SHADOW_VERTEX_BUFFER_LAYOUTS
    SPRITE_MODEL_OFFSET
    SPRITE_SHADER_SOURCE
    SPRITE_TINT_OFFSET
    SPRITE_UNIFORM_BYTES
    SPRITE_UNIFORM_WGSL
    SPRITE_VIEW_PROJECTION_OFFSET
    STANDARD_BASE_COLOR_OFFSET
    STANDARD_EMISSIVE_OFFSET
    STANDARD_MODEL_OFFSET
    STANDARD_NORMAL_OFFSET
    STANDARD_SURFACE_OFFSET
    STANDARD_UNIFORM_BYTES
    STANDARD_UNIFORM_WGSL
    STANDARD_VIEW_PROJECTION_OFFSET
    STENCIL_ALL_BITS
    UNIFORM_STRIDE_BYTES
    UV_BUFFER_LAYOUT
    UV_SHADER_LOCATION
    VERTEX_ENTRY_POINT
    WEIGHTS_BUFFER_LAYOUT
    WEIGHTS_SHADER_LOCATION
    applyStencilReference
    batchVertexBufferLayout
    blendStateFor
    clearRegisteredPickingPipeline
    clearRegisteredSkinningPipeline
    clearRegisteredWebgpuNodeMaterialPipeline
    createComputeBuffer
    createDrawBindGroupLayout
    createEffectBindGroupLayout
    createJointPaletteBindGroupLayout
    createLightsBindGroupLayout
    createParticleBindGroupLayout
    createShadowLightsBindGroupLayout
    createShadowSampler
    createSpriteBindGroupLayout
    createStandardBindGroupLayout
    createTextureBindGroupLayout
    createWgpuBatching
    effectShaderSource
    emitShaderGraphWgsl
    frameWantsStencil
    hostGpu
    isWebgpuSupported
    litFragmentStageWgsl
    litShaderSource
    mipLevelCount
    particleIntegratorWorkgroups
    pipelineKey
    readbackBytesPerRow
    readComputeBufferBytes
    readTexturePixels
    registerPickingPipeline
    registerSkinningPipeline
    registerWebgpuNodeMaterialPipeline
    registerWebgpuRenderer
    renderTargetDepthFormat
    resolvePickingServiceFactory
    resolveSkinningPipelineFactory
    resolveWebgpuNodeMaterialPipelineFactory
    samplerKey
    setWebgpuNodeMaterialPipelineFactory
    shadedMrBindingWgsl
    shadedVertexBufferLayouts
    shadedVertexStageWgsl
    skinnedLitShaderSource
    skinnedLitVertexBufferLayouts
    skinnedPaletteBindGroupIndex
    skinnedShadowShaderSource
    skinnedUnlitShaderSource
    skinnedUnlitVertexBufferLayouts
    skinningWgsl
    standardShaderSource
    stencilDescriptor
    stencilStateFor
    textureByteLength
    unlitFragmentStageWgsl
    unlitShaderSource
    unlitVertexBufferLayouts
    writeComputeBuffer
    writeLightUniforms
    writeParticleSimulationParams
    writeShadowUniforms