bevy/crates/bevy_pbr/src/render
Patrick Walton 56784de769
Fix the ordering of the systems introduced in #18734. (#18825)
There's still a race resulting in blank materials whenever a material of
type A is added on the same frame that a material of type B is removed.
PR #18734 improved the situation, but ultimately didn't fix the race
because of two issues:

1. The `late_sweep_material_instances` system was never scheduled. This
PR fixes the problem by scheduling that system.

2. `early_sweep_material_instances` needs to be called after *every*
material type has been extracted, not just when the material of *that*
type has been extracted. The `chain()` added during the review process
in PR #18734 broke this logic. This PR reverts that and fixes the
ordering by introducing a new `SystemSet` that contains all material
extraction systems.

I also took the opportunity to switch a manual reference to
`AssetId::<StandardMaterial>::invalid()` to the new
`DUMMY_MESH_MATERIAL` constant for clarity.

Because this is a bug that can affect any application that switches
material types in a single frame, I think this should be uplifted to
Bevy 0.16.
2025-04-14 21:17:48 +00:00
..
build_indirect_params.wgsl Split out the IndirectParametersMetadata into CPU-populated and GPU-populated buffers. (#17863) 2025-02-18 00:53:44 +00:00
clustered_forward.wgsl Implement basic clustered decal projectors. (#17315) 2025-01-26 20:13:39 +00:00
fog.rs Weak handle migration (#17695) 2025-02-05 22:44:20 +00:00
fog.wgsl update shader imports (#10180) 2023-10-21 11:51:58 +00:00
forward_io.wgsl Add UV channel selection to StandardMaterial (#13200) 2024-05-13 18:23:09 +00:00
gpu_preprocess.rs Initialize pre-processing pipelines only when culling is enabled. (#18759) 2025-04-09 21:31:29 +00:00
light.rs Make sure the mesh actually exists before we try to specialize. (#18836) 2025-04-14 19:09:02 +00:00
mesh_bindings.rs Allow clippy::too_many_arguments to lint without warnings (#17249) 2025-01-09 07:26:15 +00:00
mesh_bindings.wgsl Fix meshlet shaders for bindless mode. (#16825) 2024-12-24 02:39:18 +00:00
mesh_functions.wgsl Helper function for getting inverse model matrix in WGSL shaders (#10462) 2025-03-06 16:43:22 +00:00
mesh_preprocess.wgsl Fix false positive GPU frustum culling (#17939) 2025-02-20 05:35:21 +00:00
mesh_types.wgsl Retain skins from frame to frame. (#17818) 2025-02-18 00:56:04 +00:00
mesh_view_bindings.rs Partially fix panics when setting WGPU_SETTINGS_PRIO=webgl2 (#18113) 2025-03-09 20:14:27 +00:00
mesh_view_bindings.wgsl Implement basic clustered decal projectors. (#17315) 2025-01-26 20:13:39 +00:00
mesh_view_types.wgsl Revert "Replace Ambient Lights with Environment Map Lights (#17482)" (#18167) 2025-03-05 23:08:46 +00:00
mesh.rs Fix the ordering of the systems introduced in #18734. (#18825) 2025-04-14 21:17:48 +00:00
mesh.wgsl Batch skinned meshes on platforms where storage buffers are available. (#16599) 2024-12-10 17:50:03 +00:00
mod.rs Expose symbols needed to replicate SetMeshBindGroup in ecosystem crates. (#18613) 2025-03-31 18:27:40 +00:00
morph.rs Expose symbols needed to replicate SetMeshBindGroup in ecosystem crates. (#18613) 2025-03-31 18:27:40 +00:00
morph.wgsl Implement motion vectors and TAA for skinned meshes and meshes with morph targets. (#13572) 2024-05-31 17:02:28 +00:00
occlusion_culling.wgsl Implement experimental GPU two-phase occlusion culling for the standard 3D mesh pipeline. (#17413) 2025-01-27 05:02:46 +00:00
parallax_mapping.wgsl Use global binding arrays for bindless resources. (#17898) 2025-02-21 05:55:36 +00:00
pbr_ambient.wgsl Revert "Replace Ambient Lights with Environment Map Lights (#17482)" (#18167) 2025-03-05 23:08:46 +00:00
pbr_bindings.wgsl Make the StandardMaterial bindless index table have a fixed size regardless of the features that are enabled. (#18771) 2025-04-09 20:39:42 +00:00
pbr_fragment.wgsl Use global binding arrays for bindless resources. (#17898) 2025-02-21 05:55:36 +00:00
pbr_functions.wgsl Fix diffuse transmission for anisotropic materials (#18610) 2025-03-30 02:39:10 +00:00
pbr_lighting.wgsl Introduce support for mixed lighting by allowing lights to opt out of contributing diffuse light to lightmapped objects. (#16761) 2024-12-16 23:48:33 +00:00
pbr_prepass_functions.wgsl Fix shader pre-pass compile failure when using AlphaMode::Blend and a Mesh without UVs (0.16.0-rc.2) (#18602) 2025-03-30 01:25:42 +00:00
pbr_prepass.wgsl Add missing bindless imports in pbr_prepass.wgsl. (#18110) 2025-03-02 09:12:18 +00:00
pbr_transmission.wgsl Update typos (#17126) 2025-01-03 17:44:26 +00:00
pbr_types.wgsl Add support for specular tints and maps per the KHR_materials_specular glTF extension. (#14069) 2025-01-26 20:38:46 +00:00
pbr.wgsl Implement basic clustered decal projectors. (#17315) 2025-01-26 20:13:39 +00:00
reset_indirect_batch_sets.wgsl Implement experimental GPU two-phase occlusion culling for the standard 3D mesh pipeline. (#17413) 2025-01-27 05:02:46 +00:00
rgb9e5.wgsl Deferred Renderer (#9258) 2023-10-12 22:10:38 +00:00
shadow_sampling.wgsl Upgrade to wgpu v24 (#17542) 2025-02-09 19:40:53 +00:00
shadows.wgsl Implement percentage-closer soft shadows (PCSS). (#13497) 2024-09-18 18:07:17 +00:00
skin.rs Rename bevy_platform_support to bevy_platform (#18813) 2025-04-11 23:13:28 +00:00
skinning.wgsl Fix motion vector computation after #17688. (#17717) 2025-02-18 09:34:19 +00:00
utils.wgsl Per-meshlet compressed vertex data (#15643) 2024-10-08 18:42:55 +00:00
view_transformations.wgsl Implement experimental GPU two-phase occlusion culling for the standard 3D mesh pipeline. (#17413) 2025-01-27 05:02:46 +00:00
wireframe.wgsl Add binned 2d/3d Wireframe render phase (#18587) 2025-04-09 21:34:53 +00:00