From deaea309603b618845d939a84df19180570d4df2 Mon Sep 17 00:00:00 2001 From: Charlotte McElwain Date: Fri, 3 Jan 2025 18:55:59 -0800 Subject: [PATCH] Don't trigger change detection for view visibility in lighting. --- crates/bevy_pbr/src/light/mod.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/crates/bevy_pbr/src/light/mod.rs b/crates/bevy_pbr/src/light/mod.rs index 87543e1377b72..0790eef618f07 100644 --- a/crates/bevy_pbr/src/light/mod.rs +++ b/crates/bevy_pbr/src/light/mod.rs @@ -836,7 +836,9 @@ pub fn check_dir_light_mesh_visibility( for entities in defer_queue.iter_mut() { let mut iter = query.iter_many_mut(world, entities.iter()); while let Some(mut view_visibility) = iter.fetch_next() { - view_visibility.set(); + if !**view_visibility { + view_visibility.set(); + } } } }); @@ -959,12 +961,16 @@ pub fn check_point_light_mesh_visibility( if has_no_frustum_culling || frustum.intersects_obb(aabb, &model_to_world, true, true) { - view_visibility.set(); + if !**view_visibility { + view_visibility.set(); + } visible_entities.push(entity); } } } else { - view_visibility.set(); + if !**view_visibility { + view_visibility.set(); + } for visible_entities in cubemap_visible_entities_local_queue.iter_mut() { visible_entities.push(entity); @@ -1044,11 +1050,15 @@ pub fn check_point_light_mesh_visibility( if has_no_frustum_culling || frustum.intersects_obb(aabb, &model_to_world, true, true) { - view_visibility.set(); + if !**view_visibility { + view_visibility.set(); + } spot_visible_entities_local_queue.push(entity); } } else { - view_visibility.set(); + if !**view_visibility { + view_visibility.set(); + } spot_visible_entities_local_queue.push(entity); } },