Skip to content

Commit af6629c

Browse files
authored
Move specialize_* to QueueMeshes. (bevyengine#17719)
# Objective Things were breaking post-cs. ## Solution `specialize_mesh_materials` must run after `collect_meshes_for_gpu_building`. Therefore, its placement in the `PrepareAssets` set didn't make sense (also more generally). To fix, we put this class of system in ~`PrepareResources`~ `QueueMeshes`, although it potentially could use a more descriptive location. We may want to review the placement of `check_views_need_specialization` which is also currently in `PrepareAssets`.
1 parent 2d62026 commit af6629c

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

crates/bevy_pbr/src/material.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -314,9 +314,10 @@ where
314314
Render,
315315
(
316316
specialize_material_meshes::<M>
317-
.in_set(RenderSet::PrepareAssets)
317+
.in_set(RenderSet::PrepareMeshes)
318318
.after(prepare_assets::<PreparedMaterial<M>>)
319-
.after(prepare_assets::<RenderMesh>),
319+
.after(prepare_assets::<RenderMesh>)
320+
.after(collect_meshes_for_gpu_building),
320321
queue_material_meshes::<M>
321322
.in_set(RenderSet::QueueMeshes)
322323
.after(prepare_assets::<PreparedMaterial<M>>),
@@ -339,7 +340,7 @@ where
339340
(
340341
check_views_lights_need_specialization.in_set(RenderSet::PrepareAssets),
341342
specialize_shadows::<M>
342-
.in_set(RenderSet::PrepareAssets)
343+
.in_set(RenderSet::PrepareMeshes)
343344
.after(prepare_assets::<PreparedMaterial<M>>),
344345
queue_shadows::<M>
345346
.in_set(RenderSet::QueueMeshes)

crates/bevy_pbr/src/prepass/mod.rs

+11-10
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ mod prepass_bindings;
22

33
use crate::{
44
alpha_mode_pipeline_key, binding_arrays_are_usable, buffer_layout,
5-
material_bind_groups::MaterialBindGroupAllocator, queue_material_meshes,
6-
setup_morph_and_skinning_defs, skin, DrawMesh, EntitySpecializationTicks, Material,
7-
MaterialPipeline, MaterialPipelineKey, MeshLayouts, MeshPipeline, MeshPipelineKey,
8-
OpaqueRendererMethod, PreparedMaterial, RenderLightmaps, RenderMaterialInstances,
9-
RenderMeshInstanceFlags, RenderMeshInstances, RenderPhaseType, SetMaterialBindGroup,
10-
SetMeshBindGroup, ShadowView, StandardMaterial,
5+
collect_meshes_for_gpu_building, material_bind_groups::MaterialBindGroupAllocator,
6+
queue_material_meshes, setup_morph_and_skinning_defs, skin, DrawMesh,
7+
EntitySpecializationTicks, Material, MaterialPipeline, MaterialPipelineKey, MeshLayouts,
8+
MeshPipeline, MeshPipelineKey, OpaqueRendererMethod, PreparedMaterial, RenderLightmaps,
9+
RenderMaterialInstances, RenderMeshInstanceFlags, RenderMeshInstances, RenderPhaseType,
10+
SetMaterialBindGroup, SetMeshBindGroup, ShadowView, StandardMaterial,
1111
};
1212
use bevy_app::{App, Plugin, PreUpdate};
1313
use bevy_render::{
@@ -61,7 +61,7 @@ use bevy_ecs::system::SystemChangeTick;
6161
use bevy_platform_support::collections::HashMap;
6262
use bevy_render::sync_world::{MainEntity, MainEntityHashMap};
6363
use bevy_render::view::RenderVisibleEntities;
64-
use bevy_render::RenderSet::PrepareAssets;
64+
use bevy_render::RenderSet::{PrepareAssets, PrepareResources};
6565
use core::{hash::Hash, marker::PhantomData};
6666

6767
pub const PREPASS_SHADER_HANDLE: Handle<Shader> =
@@ -190,7 +190,7 @@ where
190190
.add_systems(ExtractSchedule, extract_camera_previous_view_data)
191191
.add_systems(
192192
Render,
193-
prepare_previous_view_uniforms.in_set(RenderSet::PrepareResources),
193+
prepare_previous_view_uniforms.in_set(PrepareResources),
194194
);
195195
}
196196

@@ -207,9 +207,10 @@ where
207207
(
208208
check_prepass_views_need_specialization.in_set(PrepareAssets),
209209
specialize_prepass_material_meshes::<M>
210-
.in_set(PrepareAssets)
210+
.in_set(RenderSet::PrepareMeshes)
211211
.after(prepare_assets::<PreparedMaterial<M>>)
212-
.after(prepare_assets::<RenderMesh>),
212+
.after(prepare_assets::<RenderMesh>)
213+
.after(collect_meshes_for_gpu_building),
213214
queue_prepass_material_meshes::<M>
214215
.in_set(RenderSet::QueueMeshes)
215216
.after(prepare_assets::<PreparedMaterial<M>>)

crates/bevy_sprite/src/mesh2d/material.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ where
287287
Render,
288288
(
289289
specialize_material2d_meshes::<M>
290-
.in_set(RenderSet::PrepareAssets)
290+
.in_set(RenderSet::PrepareMeshes)
291291
.after(prepare_assets::<PreparedMaterial2d<M>>)
292292
.after(prepare_assets::<RenderMesh>),
293293
queue_material2d_meshes::<M>

0 commit comments

Comments
 (0)