-
-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Labels
A-RenderingDrawing game state to the screenDrawing game state to the screenC-BugAn unexpected or incorrect behaviorAn unexpected or incorrect behaviorO-MacOSSpecific to the MacOS (Apple) desktop operating systemSpecific to the MacOS (Apple) desktop operating systemS-Needs-DesignThis issue requires design work to think about how it would best be accomplishedThis issue requires design work to think about how it would best be accomplished
Milestone
Description
Bevy version
Relevant system information
SystemInfo { os: "MacOS 15.0 ", kernel: "24.0.0", cpu: "Apple M1 Max", core_count: "10", memory: "32.0 GiB" }`
AdapterInfo { name: "Apple M1 Max", vendor: 0, device: 0, device_type: IntegratedGpu, driver: "", driver_info: "", backend: Metal }
What you did
cargo run --example 3d_scene --features pbr_transmission_textures
What went wrong
Resource limit exceeded: StageInfo { stage: Fragment, counters: ResourceData { buffers: 13, textures: 38, samplers: 17 }, pc_buffer: None, pc_limit: 0, sizes_buffer: Some(12), need_sizes_buffer: true, resources: {ResourceBinding { group: 0, binding: 0 }: BindTarget { buffer: Some(0), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 1 }: BindTarget { buffer: Some(1), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 2 }: BindTarget { buffer: None, texture: Some(0), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 3 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(0)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 4 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(1)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 5 }: BindTarget { buffer: None, texture: Some(1), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 6 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(2)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 7 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(3)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 8 }: BindTarget { buffer: Some(2), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 9 }: BindTarget { buffer: Some(3), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 10 }: BindTarget { buffer: Some(4), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 11 }: BindTarget { buffer: Some(5), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 12 }: BindTarget { buffer: Some(6), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 13 }: BindTarget { buffer: Some(7), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 15 }: BindTarget { buffer: Some(8), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 16 }: BindTarget { buffer: None, texture: Some(2), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 17 }: BindTarget { buffer: None, texture: Some(3), sampler: None, binding_array_size: Some(8), mutable: false }, ResourceBinding { group: 0, binding: 18 }: BindTarget { buffer: None, texture: Some(11), sampler: None, binding_array_size: Some(8), mutable: false }, ResourceBinding { group: 0, binding: 19 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(4)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 20 }: BindTarget { buffer: Some(9), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 21 }: BindTarget { buffer: None, texture: Some(19), sampler: None, binding_array_size: Some(8), mutable: false }, ResourceBinding { group: 0, binding: 22 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(5)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 23 }: BindTarget { buffer: None, texture: Some(27), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 24 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(6)), binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 29 }: BindTarget { buffer: None, texture: Some(28), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 0, binding: 30 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(7)), binding_array_size: None, mutable: false }, ResourceBinding { group: 1, binding: 0 }: BindTarget { buffer: Some(10), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 0 }: BindTarget { buffer: Some(11), texture: None, sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 1 }: BindTarget { buffer: None, texture: Some(29), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 2 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(8)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 3 }: BindTarget { buffer: None, texture: Some(30), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 4 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(9)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 5 }: BindTarget { buffer: None, texture: Some(31), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 6 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(10)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 7 }: BindTarget { buffer: None, texture: Some(32), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 8 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(11)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 9 }: BindTarget { buffer: None, texture: Some(33), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 10 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(12)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 11 }: BindTarget { buffer: None, texture: Some(34), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 12 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(13)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 15 }: BindTarget { buffer: None, texture: Some(35), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 16 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(14)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 17 }: BindTarget { buffer: None, texture: Some(36), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 18 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(15)), binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 19 }: BindTarget { buffer: None, texture: Some(37), sampler: None, binding_array_size: None, mutable: false }, ResourceBinding { group: 2, binding: 20 }: BindTarget { buffer: None, texture: None, sampler: Some(Resource(16)), binding_array_size: None, mutable: false }} }
2024-09-21T03:11:45.569610Z ERROR log: Handling wgpu errors as fatal by default
Additional information
Looks like we're exceeding the limit on bindings. We might need to gate PCSS bindings on a feature flag, or change how we set up the bindings to only bind the actually used textures/samplers.
Edit: Looking a bit more into it, it looks like we're not hitting the texture limit. The limit is exclusively on samplers, maybe we can virtualize the samplers, as suggested here: google/filament#5788
Metadata
Metadata
Assignees
Labels
A-RenderingDrawing game state to the screenDrawing game state to the screenC-BugAn unexpected or incorrect behaviorAn unexpected or incorrect behaviorO-MacOSSpecific to the MacOS (Apple) desktop operating systemSpecific to the MacOS (Apple) desktop operating systemS-Needs-DesignThis issue requires design work to think about how it would best be accomplishedThis issue requires design work to think about how it would best be accomplished