Skip to content

Validation panic when loading a shader that accesses lighting data #13

@ProfLander

Description

@ProfLander

As rust-gpu doesn't support access specifiers for storage buffers, bevy panics with the following error when trying to load a shader that accesses its lighting data:

ERROR wgpu::backend::direct: Handling wgpu errors as fatal by default    
thread 'main' panicked at 'wgpu error: Validation Error

Caused by:
    In Device::create_render_pipeline
      note: label = `rust_gpu_pbr_opaque_mesh_pipeline`
    error matching FRAGMENT shader requirements against the pipeline
    shader global ResourceBinding { group: 0, binding: 6 } is not available in the layout pipeline layout
    storage class Storage { access: LOAD } doesn't match the shader Uniform

', /home/josh/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-0.14.2/src/backend/direct.rs:2403:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

This can be worked around by forcibly disabling storage buffers via WgpuSettings (which is default behaviour in the current BevyRustGpuPlugin), but precludes their usage entirely, which is not ideal given that read / write storage buffers are viable.

Upstream tracking issue: rust-gpu/#689

Metadata

Metadata

Assignees

No one assigned

    Labels

    upstreamIssue lies with an upstream repository

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions