diff --git a/crates/bevy_core_pipeline/src/bloom/settings.rs b/crates/bevy_core_pipeline/src/bloom/settings.rs index 3fc35dc4d5105..effa135677f3b 100644 --- a/crates/bevy_core_pipeline/src/bloom/settings.rs +++ b/crates/bevy_core_pipeline/src/bloom/settings.rs @@ -226,7 +226,9 @@ impl ExtractComponent for Bloom { camera.is_active, camera.hdr, ) { - (Some(URect { min: origin, .. }), Some(size), Some(target_size), true, true) => { + (Some(URect { min: origin, .. }), Some(size), Some(target_size), true, true) + if size.x != 0 && size.y != 0 => + { let threshold = bloom.prefilter.threshold; let threshold_softness = bloom.prefilter.threshold_softness; let knee = threshold * threshold_softness.clamp(0.0, 1.0); diff --git a/crates/bevy_pbr/src/cluster/assign.rs b/crates/bevy_pbr/src/cluster/assign.rs index 046011cb097b7..4c3e22febed65 100644 --- a/crates/bevy_pbr/src/cluster/assign.rs +++ b/crates/bevy_pbr/src/cluster/assign.rs @@ -218,9 +218,12 @@ pub(crate) fn assign_objects_to_clusters( continue; } - let Some(screen_size) = camera.physical_viewport_size() else { - clusters.clear(); - continue; + let screen_size = match camera.physical_viewport_size() { + Some(screen_size) if screen_size.x != 0 && screen_size.y != 0 => screen_size, + _ => { + clusters.clear(); + continue; + } }; let mut requested_cluster_dimensions = config.dimensions_for_screen_size(screen_size); diff --git a/crates/bevy_render/src/camera/camera.rs b/crates/bevy_render/src/camera/camera.rs index b34dcb4717f65..e39a5e58bf2c4 100644 --- a/crates/bevy_render/src/camera/camera.rs +++ b/crates/bevy_render/src/camera/camera.rs @@ -965,10 +965,14 @@ pub fn camera_system( } camera.computed.target_info = new_computed_target_info; if let Some(size) = camera.logical_viewport_size() { - camera_projection.update(size.x, size.y); - camera.computed.clip_from_view = match &camera.sub_camera_view { - Some(sub_view) => camera_projection.get_clip_from_view_for_sub(sub_view), - None => camera_projection.get_clip_from_view(), + if size.x != 0.0 && size.y != 0.0 { + camera_projection.update(size.x, size.y); + camera.computed.clip_from_view = match &camera.sub_camera_view { + Some(sub_view) => { + camera_projection.get_clip_from_view_for_sub(sub_view) + } + None => camera_projection.get_clip_from_view(), + } } } }