Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Make StartupSet a base set #7574

Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revert "Make RenderSet a base set"
This reverts commit a01a0f0.
  • Loading branch information
TimJentzsch committed Feb 14, 2023
commit 7ffe2c5f2a3fcca2a8940f8239dccc578a26a937
4 changes: 2 additions & 2 deletions crates/bevy_core_pipeline/src/bloom/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ impl Plugin for BloomPlugin {

render_app
.init_resource::<BloomPipelines>()
.add_system(prepare_bloom_textures.in_base_set(RenderSet::Prepare))
.add_system(queue_bloom_bind_groups.in_base_set(RenderSet::Queue));
.add_system(prepare_bloom_textures.in_set(RenderSet::Prepare))
.add_system(queue_bloom_bind_groups.in_set(RenderSet::Queue));

{
let bloom_node = BloomNode::new(&mut render_app.world);
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_core_pipeline/src/core_2d/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,11 @@ impl Plugin for Core2dPlugin {
render_app
.init_resource::<DrawFunctions<Transparent2d>>()
.add_system_to_schedule(ExtractSchedule, extract_core_2d_camera_phases)
.add_system(sort_phase_system::<Transparent2d>.in_base_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<Transparent2d>.in_set(RenderSet::PhaseSort))
.add_system(
batch_phase_system::<Transparent2d>
.after(sort_phase_system::<Transparent2d>)
.in_base_set(RenderSet::PhaseSort),
.in_set(RenderSet::PhaseSort),
);

let pass_node_2d = MainPass2dNode::new(&mut render_app.world);
Expand Down
8 changes: 4 additions & 4 deletions crates/bevy_core_pipeline/src/core_3d/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@ impl Plugin for Core3dPlugin {
.init_resource::<DrawFunctions<AlphaMask3d>>()
.init_resource::<DrawFunctions<Transparent3d>>()
.add_system_to_schedule(ExtractSchedule, extract_core_3d_camera_phases)
.add_system(prepare_core_3d_depth_textures.in_base_set(RenderSet::Prepare))
.add_system(sort_phase_system::<Opaque3d>.in_base_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<AlphaMask3d>.in_base_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<Transparent3d>.in_base_set(RenderSet::PhaseSort));
.add_system(prepare_core_3d_depth_textures.in_set(RenderSet::Prepare))
.add_system(sort_phase_system::<Opaque3d>.in_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<AlphaMask3d>.in_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<Transparent3d>.in_set(RenderSet::PhaseSort));

let prepass_node = PrepassNode::new(&mut render_app.world);
let pass_node_3d = MainPass3dNode::new(&mut render_app.world);
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_core_pipeline/src/fxaa/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ impl Plugin for FxaaPlugin {
render_app
.init_resource::<FxaaPipeline>()
.init_resource::<SpecializedRenderPipelines<FxaaPipeline>>()
.add_system(prepare_fxaa_pipelines.in_base_set(RenderSet::Prepare));
.add_system(prepare_fxaa_pipelines.in_set(RenderSet::Prepare));

{
let fxaa_node = FxaaNode::new(&mut render_app.world);
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_core_pipeline/src/tonemapping/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ impl Plugin for TonemappingPlugin {
render_app
.init_resource::<TonemappingPipeline>()
.init_resource::<SpecializedRenderPipelines<TonemappingPipeline>>()
.add_system(queue_view_tonemapping_pipelines.in_base_set(RenderSet::Queue));
.add_system(queue_view_tonemapping_pipelines.in_set(RenderSet::Queue));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_core_pipeline/src/upscaling/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ impl Plugin for UpscalingPlugin {
render_app
.init_resource::<UpscalingPipeline>()
.init_resource::<SpecializedRenderPipelines<UpscalingPipeline>>()
.add_system(queue_view_upscaling_pipelines.in_base_set(RenderSet::Queue));
.add_system(queue_view_upscaling_pipelines.in_set(RenderSet::Queue));
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions crates/bevy_pbr/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -260,9 +260,9 @@ impl Plugin for PbrPlugin {

// Extract the required data from the main world
render_app
.configure_set(RenderLightSystems::PrepareLights.in_base_set(RenderSet::Prepare))
.configure_set(RenderLightSystems::PrepareClusters.in_base_set(RenderSet::Prepare))
.configure_set(RenderLightSystems::QueueShadows.in_base_set(RenderSet::Queue))
.configure_set(RenderLightSystems::PrepareLights.in_set(RenderSet::Prepare))
.configure_set(RenderLightSystems::PrepareClusters.in_set(RenderSet::Prepare))
.configure_set(RenderLightSystems::QueueShadows.in_set(RenderSet::Queue))
.add_systems_to_schedule(
ExtractSchedule,
(
Expand All @@ -288,8 +288,8 @@ impl Plugin for PbrPlugin {
.in_set(RenderLightSystems::PrepareClusters),
)
.add_system(render::queue_shadows.in_set(RenderLightSystems::QueueShadows))
.add_system(render::queue_shadow_view_bind_group.in_base_set(RenderSet::Queue))
.add_system(sort_phase_system::<Shadow>.in_base_set(RenderSet::PhaseSort))
.add_system(render::queue_shadow_view_bind_group.in_set(RenderSet::Queue))
.add_system(sort_phase_system::<Shadow>.in_set(RenderSet::PhaseSort))
.init_resource::<ShadowPipeline>()
.init_resource::<DrawFunctions<Shadow>>()
.init_resource::<LightMeta>()
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_pbr/src/material.rs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ where
.init_resource::<SpecializedMeshPipelines<MaterialPipeline<M>>>()
.add_system_to_schedule(ExtractSchedule, extract_materials::<M>)
.add_system(prepare_materials::<M>.after(PrepareAssetLabel::PreAssetPrepare))
.add_system(queue_material_meshes::<M>.in_base_set(RenderSet::Queue));
.add_system(queue_material_meshes::<M>.in_set(RenderSet::Queue));
}

if self.prepass_enabled {
Expand Down
10 changes: 5 additions & 5 deletions crates/bevy_pbr/src/prepass/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,11 @@ where

render_app
.add_system_to_schedule(ExtractSchedule, extract_camera_prepass_phase)
.add_system(prepare_prepass_textures.in_base_set(RenderSet::Prepare))
.add_system(queue_prepass_view_bind_group::<M>.in_base_set(RenderSet::Queue))
.add_system(queue_prepass_material_meshes::<M>.in_base_set(RenderSet::Queue))
.add_system(sort_phase_system::<Opaque3dPrepass>.in_base_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<AlphaMask3dPrepass>.in_base_set(RenderSet::PhaseSort))
.add_system(prepare_prepass_textures.in_set(RenderSet::Prepare))
.add_system(queue_prepass_view_bind_group::<M>.in_set(RenderSet::Queue))
.add_system(queue_prepass_material_meshes::<M>.in_set(RenderSet::Queue))
.add_system(sort_phase_system::<Opaque3dPrepass>.in_set(RenderSet::PhaseSort))
.add_system(sort_phase_system::<AlphaMask3dPrepass>.in_set(RenderSet::PhaseSort))
.init_resource::<PrepassPipeline<M>>()
.init_resource::<DrawFunctions<Opaque3dPrepass>>()
.init_resource::<DrawFunctions<AlphaMask3dPrepass>>()
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_pbr/src/render/fog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ impl Plugin for FogPlugin {
render_app
.init_resource::<FogMeta>()
.add_system(prepare_fog.in_set(RenderFogSystems::PrepareFog))
.configure_set(RenderFogSystems::PrepareFog.in_base_set(RenderSet::Prepare));
.configure_set(RenderFogSystems::PrepareFog.in_set(RenderSet::Prepare));
}
}
}
6 changes: 3 additions & 3 deletions crates/bevy_pbr/src/render/mesh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@ impl Plugin for MeshRenderPlugin {
.init_resource::<MeshPipeline>()
.init_resource::<SkinnedMeshUniform>()
.add_systems_to_schedule(ExtractSchedule, (extract_meshes, extract_skinned_meshes))
.add_system(prepare_skinned_meshes.in_base_set(RenderSet::Prepare))
.add_system(queue_mesh_bind_group.in_base_set(RenderSet::Queue))
.add_system(queue_mesh_view_bind_groups.in_base_set(RenderSet::Queue));
.add_system(prepare_skinned_meshes.in_set(RenderSet::Prepare))
.add_system(queue_mesh_bind_group.in_set(RenderSet::Queue))
.add_system(queue_mesh_view_bind_groups.in_set(RenderSet::Queue));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_pbr/src/wireframe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ impl Plugin for WireframePlugin {
.add_render_command::<Opaque3d, DrawWireframes>()
.init_resource::<WireframePipeline>()
.init_resource::<SpecializedMeshPipelines<WireframePipeline>>()
.add_system(queue_wireframes.in_base_set(RenderSet::Queue));
.add_system(queue_wireframes.in_set(RenderSet::Queue));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/extract_component.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ impl<C: Component + ShaderType + WriteInto + Clone> Plugin for UniformComponentP
if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
render_app
.insert_resource(ComponentUniforms::<C>::default())
.add_system(prepare_uniform_components::<C>.in_base_set(RenderSet::Prepare));
.add_system(prepare_uniform_components::<C>.in_set(RenderSet::Prepare));
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/globals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ impl Plugin for GlobalsPlugin {
.init_resource::<GlobalsBuffer>()
.init_resource::<Time>()
.add_systems_to_schedule(ExtractSchedule, (extract_frame_count, extract_time))
.add_system(prepare_globals_buffer.in_base_set(RenderSet::Prepare));
.add_system(prepare_globals_buffer.in_set(RenderSet::Prepare));
}
}
}
Expand Down
22 changes: 10 additions & 12 deletions crates/bevy_render/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ pub struct RenderPlugin {
/// that runs immediately after the matching system set.
/// These can be useful for ordering, but you almost never want to add your systems to these sets.
#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)]
#[system_set(base)]
pub enum RenderSet {
/// The copy of [`apply_system_buffers`] that runs at the begining of this schedule.
/// This is used for applying the commands from the [`ExtractSchedule`]
Expand Down Expand Up @@ -113,12 +112,12 @@ impl RenderSet {
let mut schedule = Schedule::new();

Copy link
Contributor

@maniwani maniwani Feb 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the render schedule have a default base set?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I went by Alice's comment:

I don't think the RenderSchedule should have one: there's no clear default.

But I can add one if needed :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at how rendering systems were defined and ordered, it wasn't at all clear what the correct "default" would be.

Copy link
Contributor

@maniwani maniwani Feb 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any errors that pop up if you add a system to a schedule that has base sets but doesn't pick one as default?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would I best test that?

Copy link
Contributor

@hymm hymm Feb 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be as simple as trying render_schedule.add_system(my_system). I'm pretty sure that should error with something like "my_system needs to be put into a base set", but worth checking.

edit: tested this and it doesn't error. Feels like it should or why bother changing them to be base sets.

Copy link
Contributor

@hymm hymm Feb 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might make sense to change this to only change the startup schedule to use base sets, but move changing the render schedule to a different pr. Feels like there's a missing configuration option to require that a base set be set, but not set a default set.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I reverted the RenderSet changes and updated the PR description.

// Create "stage-like" structure using buffer flushes + ordering
schedule.add_system(apply_system_buffers.in_base_set(ExtractCommands));
schedule.add_system(apply_system_buffers.in_base_set(PrepareFlush));
schedule.add_system(apply_system_buffers.in_base_set(QueueFlush));
schedule.add_system(apply_system_buffers.in_base_set(PhaseSortFlush));
schedule.add_system(apply_system_buffers.in_base_set(RenderFlush));
schedule.add_system(apply_system_buffers.in_base_set(CleanupFlush));
schedule.add_system(apply_system_buffers.in_set(ExtractCommands));
schedule.add_system(apply_system_buffers.in_set(PrepareFlush));
schedule.add_system(apply_system_buffers.in_set(QueueFlush));
schedule.add_system(apply_system_buffers.in_set(PhaseSortFlush));
schedule.add_system(apply_system_buffers.in_set(RenderFlush));
schedule.add_system(apply_system_buffers.in_set(CleanupFlush));

schedule.configure_set(ExtractCommands.before(Prepare));
schedule.configure_set(Prepare.after(ExtractCommands).before(PrepareFlush));
Expand Down Expand Up @@ -232,17 +231,16 @@ impl Plugin for RenderPlugin {

// This set applies the commands from the extract stage while the render schedule
// is running in parallel with the main app.
render_schedule
.add_system(apply_extract_commands.in_base_set(RenderSet::ExtractCommands));
render_schedule.add_system(apply_extract_commands.in_set(RenderSet::ExtractCommands));

render_schedule.add_system(
PipelineCache::process_pipeline_queue_system
.before(render_system)
.in_base_set(RenderSet::Render),
.in_set(RenderSet::Render),
);
render_schedule.add_system(render_system.in_base_set(RenderSet::Render));
render_schedule.add_system(render_system.in_set(RenderSet::Render));

render_schedule.add_system(World::clear_entities.in_base_set(RenderSet::Cleanup));
render_schedule.add_system(World::clear_entities.in_set(RenderSet::Cleanup));

render_app
.add_schedule(CoreSchedule::Main, render_schedule)
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/render_asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ impl<A: RenderAsset> Plugin for RenderAssetPlugin<A> {
PrepareAssetLabel::PostAssetPrepare,
)
.chain()
.in_base_set(RenderSet::Prepare),
.in_set(RenderSet::Prepare),
)
.init_resource::<ExtractedAssets<A>>()
.init_resource::<RenderAssets<A>>()
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/texture/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ impl Plugin for ImagePlugin {
.init_resource::<FallbackImage>()
.init_resource::<FallbackImageMsaaCache>()
.init_resource::<FallbackImageDepthCache>()
.add_system(update_texture_cache_system.in_base_set(RenderSet::Cleanup));
.add_system(update_texture_cache_system.in_set(RenderSet::Cleanup));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_render/src/view/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ impl Plugin for ViewPlugin {
if let Ok(render_app) = app.get_sub_app_mut(RenderApp) {
render_app
.init_resource::<ViewUniforms>()
.configure_set(ViewSet::PrepareUniforms.in_base_set(RenderSet::Prepare))
.configure_set(ViewSet::PrepareUniforms.in_set(RenderSet::Prepare))
.add_system(prepare_view_uniforms.in_set(ViewSet::PrepareUniforms))
.add_system(
prepare_view_targets
.after(WindowSystem::Prepare)
.in_base_set(RenderSet::Prepare),
.in_set(RenderSet::Prepare),
);
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_render/src/view/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ impl Plugin for WindowRenderPlugin {
.init_resource::<WindowSurfaces>()
.init_non_send_resource::<NonSendMarker>()
.add_system_to_schedule(ExtractSchedule, extract_windows)
.configure_set(WindowSystem::Prepare.in_base_set(RenderSet::Prepare))
.configure_set(WindowSystem::Prepare.in_set(RenderSet::Prepare))
.add_system(prepare_windows.in_set(WindowSystem::Prepare));
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_sprite/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ impl Plugin for SpritePlugin {
extract_sprite_events,
),
)
.add_system(queue_sprites.in_base_set(RenderSet::Queue));
.add_system(queue_sprites.in_set(RenderSet::Queue));
};
}
}
4 changes: 2 additions & 2 deletions crates/bevy_sprite/src/mesh2d/material.rs
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,9 @@ where
.add_system(
prepare_materials_2d::<M>
.after(PrepareAssetLabel::PreAssetPrepare)
.in_base_set(RenderSet::Prepare),
.in_set(RenderSet::Prepare),
)
.add_system(queue_material2d_meshes::<M>.in_base_set(RenderSet::Queue));
.add_system(queue_material2d_meshes::<M>.in_set(RenderSet::Queue));
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_sprite/src/mesh2d/mesh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ impl Plugin for Mesh2dRenderPlugin {
.init_resource::<Mesh2dPipeline>()
.init_resource::<SpecializedMeshPipelines<Mesh2dPipeline>>()
.add_system_to_schedule(ExtractSchedule, extract_mesh2d)
.add_system(queue_mesh2d_bind_group.in_base_set(RenderSet::Queue))
.add_system(queue_mesh2d_view_bind_groups.in_base_set(RenderSet::Queue));
.add_system(queue_mesh2d_bind_group.in_set(RenderSet::Queue))
.add_system(queue_mesh2d_view_bind_groups.in_set(RenderSet::Queue));
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions crates/bevy_ui/src/render/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ pub fn build_ui_render(app: &mut App) {
extract_text_uinodes.after(RenderUiSystem::ExtractNode),
),
)
.add_system(prepare_uinodes.in_base_set(RenderSet::Prepare))
.add_system(queue_uinodes.in_base_set(RenderSet::Queue))
.add_system(sort_phase_system::<TransparentUi>.in_base_set(RenderSet::PhaseSort));
.add_system(prepare_uinodes.in_set(RenderSet::Prepare))
.add_system(queue_uinodes.in_set(RenderSet::Queue))
.add_system(sort_phase_system::<TransparentUi>.in_set(RenderSet::PhaseSort));

// Render graph
let ui_graph_2d = get_ui_graph(render_app);
Expand Down
2 changes: 1 addition & 1 deletion examples/2d/mesh2d_manual.rs
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ impl Plugin for ColoredMesh2dPlugin {
.init_resource::<ColoredMesh2dPipeline>()
.init_resource::<SpecializedRenderPipelines<ColoredMesh2dPipeline>>()
.add_system_to_schedule(ExtractSchedule, extract_colored_mesh2d)
.add_system(queue_colored_mesh2d.in_base_set(RenderSet::Queue));
.add_system(queue_colored_mesh2d.in_set(RenderSet::Queue));
}
}

Expand Down
2 changes: 1 addition & 1 deletion examples/shader/compute_shader_game_of_life.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ impl Plugin for GameOfLifeComputePlugin {
let render_app = app.sub_app_mut(RenderApp);
render_app
.init_resource::<GameOfLifePipeline>()
.add_system(queue_bind_group.in_base_set(RenderSet::Queue));
.add_system(queue_bind_group.in_set(RenderSet::Queue));

let mut render_graph = render_app.world.resource_mut::<RenderGraph>();
render_graph.add_node("game_of_life", GameOfLifeNode::default());
Expand Down
4 changes: 2 additions & 2 deletions examples/shader/shader_instancing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ impl Plugin for CustomMaterialPlugin {
.add_render_command::<Transparent3d, DrawCustom>()
.init_resource::<CustomPipeline>()
.init_resource::<SpecializedMeshPipelines<CustomPipeline>>()
.add_system(queue_custom.in_base_set(RenderSet::Queue))
.add_system(prepare_instance_buffers.in_base_set(RenderSet::Prepare));
.add_system(queue_custom.in_set(RenderSet::Queue))
.add_system(prepare_instance_buffers.in_set(RenderSet::Prepare));
}
}

Expand Down
2 changes: 1 addition & 1 deletion examples/stress_tests/many_lights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ impl Plugin for LogVisibleLights {
Err(_) => return,
};

render_app.add_system(print_visible_light_count.in_base_set(RenderSet::Prepare));
render_app.add_system(print_visible_light_count.in_set(RenderSet::Prepare));
}
}

Expand Down