Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ use std::sync::Mutex;

use crate::contrast_adaptive_sharpening::ViewCasPipeline;
use bevy_ecs::prelude::*;
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
diagnostic::RecordDiagnostics,
extract_component::{ComponentUniforms, DynamicUniformIndex},
render_graph::{Node, NodeRunError, RenderGraphContext},
render_resource::{
Expand Down Expand Up @@ -67,6 +69,7 @@ impl Node for CasNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let view_target = target.post_process_write();
Expand Down Expand Up @@ -113,12 +116,14 @@ impl Node for CasNode {
let mut render_pass = render_context
.command_encoder()
.begin_render_pass(&pass_descriptor);
#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "contrast_adaptive_sharpening");

render_pass.set_pipeline(pipeline);
render_pass.set_bind_group(0, bind_group, &[uniform_index.index()]);
render_pass.draw(0..3, 0..1);

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);

Ok(())
Expand Down
10 changes: 9 additions & 1 deletion crates/bevy_anti_alias/src/dlss/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ use super::{
use bevy_camera::MainPassResolutionOverride;
use bevy_core_pipeline::prepass::ViewPrepassTextures;
use bevy_ecs::{query::QueryItem, world::World};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::TemporalJitter,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
renderer::{RenderAdapter, RenderContext},
view::ViewTarget,
Expand Down Expand Up @@ -70,17 +72,20 @@ impl ViewNode for DlssNode<DlssSuperResolutionFeature> {
motion_vector_scale: Some(-render_resolution.as_vec2()),
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();
let command_encoder = render_context.command_encoder();
let mut dlss_context = dlss_context.context.lock().unwrap();

command_encoder.push_debug_group("dlss_super_resolution");
#[cfg(not(target_os = "macos"))]
let time_span = diagnostics.time_span(command_encoder, "dlss_super_resolution");

dlss_context
.render(render_parameters, command_encoder, &adapter)
.expect("Failed to render DLSS Super Resolution");

#[cfg(not(target_os = "macos"))]
time_span.end(command_encoder);
command_encoder.pop_debug_group();

Expand Down Expand Up @@ -146,17 +151,20 @@ impl ViewNode for DlssNode<DlssRayReconstructionFeature> {
motion_vector_scale: Some(-render_resolution.as_vec2()),
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();
let command_encoder = render_context.command_encoder();
let mut dlss_context = dlss_context.context.lock().unwrap();

command_encoder.push_debug_group("dlss_ray_reconstruction");
#[cfg(not(target_os = "macos"))]
let time_span = diagnostics.time_span(command_encoder, "dlss_ray_reconstruction");

dlss_context
.render(render_parameters, command_encoder, &adapter)
.expect("Failed to render DLSS Ray Reconstruction");

#[cfg(not(target_os = "macos"))]
time_span.end(command_encoder);
command_encoder.pop_debug_group();

Expand Down
7 changes: 6 additions & 1 deletion crates/bevy_anti_alias/src/fxaa/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ use std::sync::Mutex;

use crate::fxaa::{CameraFxaaPipeline, Fxaa, FxaaPipeline};
use bevy_ecs::{prelude::*, query::QueryItem};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_resource::{
BindGroup, BindGroupEntries, Operations, PipelineCache, RenderPassColorAttachment,
Expand Down Expand Up @@ -43,6 +45,7 @@ impl ViewNode for FxaaNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let post_process = target.post_process_write();
Expand Down Expand Up @@ -79,12 +82,14 @@ impl ViewNode for FxaaNode {
let mut render_pass = render_context
.command_encoder()
.begin_render_pass(&pass_descriptor);
#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "fxaa");

render_pass.set_pipeline(pipeline);
render_pass.set_bind_group(0, bind_group, &[]);
render_pass.draw(0..3, 0..1);

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);

Ok(())
Expand Down
7 changes: 6 additions & 1 deletion crates/bevy_anti_alias/src/smaa/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ use bevy_ecs::{
use bevy_image::{BevyDefault, Image, ToExtents};
use bevy_math::{vec4, Vec4};
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
extract_component::{ExtractComponent, ExtractComponentPlugin},
render_asset::RenderAssets,
render_graph::{
Expand Down Expand Up @@ -846,8 +848,10 @@ impl ViewNode for SmaaNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();
render_context.command_encoder().push_debug_group("smaa");
#[cfg(not(target_os = "macos"))]
let time_span = diagnostics.time_span(render_context.command_encoder(), "smaa");

// Fetch the framebuffer textures.
Expand Down Expand Up @@ -893,6 +897,7 @@ impl ViewNode for SmaaNode {
destination,
);

#[cfg(not(target_os = "macos"))]
time_span.end(render_context.command_encoder());
render_context.command_encoder().pop_debug_group();

Expand Down
7 changes: 6 additions & 1 deletion crates/bevy_anti_alias/src/taa/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ use bevy_ecs::{
use bevy_image::{BevyDefault as _, ToExtents};
use bevy_math::vec2;
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::{ExtractedCamera, MipBias, TemporalJitter},
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, RenderGraphExt, ViewNode, ViewNodeRunner},
render_resource::{
binding_types::{sampler, texture_2d, texture_depth_2d},
Expand Down Expand Up @@ -179,6 +181,7 @@ impl ViewNode for TemporalAntiAliasNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let view_target = view_target.post_process_write();
Expand Down Expand Up @@ -217,6 +220,7 @@ impl ViewNode for TemporalAntiAliasNode {
timestamp_writes: None,
occlusion_query_set: None,
});
#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut taa_pass, "taa");

taa_pass.set_render_pipeline(taa_pipeline);
Expand All @@ -226,6 +230,7 @@ impl ViewNode for TemporalAntiAliasNode {
}
taa_pass.draw(0..3, 0..1);

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut taa_pass);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
use crate::core_2d::Opaque2d;
use bevy_ecs::{prelude::World, query::QueryItem};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_phase::{TrackedRenderPass, ViewBinnedRenderPhases},
render_resource::{CommandEncoderDescriptor, RenderPassDescriptor, StoreOp},
Expand Down Expand Up @@ -41,6 +43,7 @@ impl ViewNode for MainOpaquePass2dNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let color_attachments = [Some(target.get_color_attachment())];
Expand Down Expand Up @@ -72,6 +75,7 @@ impl ViewNode for MainOpaquePass2dNode {
occlusion_query_set: None,
});
let mut render_pass = TrackedRenderPass::new(&render_device, render_pass);
#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "main_opaque_pass_2d");

if let Some(viewport) = camera.viewport.as_ref() {
Expand All @@ -96,6 +100,7 @@ impl ViewNode for MainOpaquePass2dNode {
}
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
drop(render_pass);
command_encoder.finish()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
use crate::core_2d::Transparent2d;
use bevy_ecs::prelude::*;
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_phase::{TrackedRenderPass, ViewSortedRenderPhases},
render_resource::{CommandEncoderDescriptor, RenderPassDescriptor, StoreOp},
Expand Down Expand Up @@ -42,6 +44,7 @@ impl ViewNode for MainTransparentPass2dNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let color_attachments = [Some(target.get_color_attachment())];
Expand Down Expand Up @@ -74,6 +77,7 @@ impl ViewNode for MainTransparentPass2dNode {
});
let mut render_pass = TrackedRenderPass::new(&render_device, render_pass);

#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "main_transparent_pass_2d");

if let Some(viewport) = camera.viewport.as_ref() {
Expand All @@ -92,6 +96,7 @@ impl ViewNode for MainTransparentPass2dNode {
}
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ use crate::{
};
use bevy_camera::{MainPassResolutionOverride, Viewport};
use bevy_ecs::{prelude::World, query::QueryItem};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_phase::{TrackedRenderPass, ViewBinnedRenderPhases},
render_resource::{CommandEncoderDescriptor, PipelineCache, RenderPassDescriptor, StoreOp},
Expand Down Expand Up @@ -65,6 +67,7 @@ impl ViewNode for MainOpaquePass3dNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let color_attachments = [Some(target.get_color_attachment())];
Expand All @@ -90,6 +93,7 @@ impl ViewNode for MainOpaquePass3dNode {
occlusion_query_set: None,
});
let mut render_pass = TrackedRenderPass::new(&render_device, render_pass);
#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "main_opaque_pass_3d");

if let Some(viewport) =
Expand Down Expand Up @@ -132,6 +136,7 @@ impl ViewNode for MainOpaquePass3dNode {
}
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
drop(render_pass);
command_encoder.finish()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ use crate::core_3d::Transmissive3d;
use bevy_camera::{Camera3d, MainPassResolutionOverride, Viewport};
use bevy_ecs::{prelude::*, query::QueryItem};
use bevy_image::ToExtents;
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_phase::ViewSortedRenderPhases,
render_resource::{RenderPassDescriptor, StoreOp},
Expand Down Expand Up @@ -54,6 +56,7 @@ impl ViewNode for MainTransmissivePass3dNode {
return Ok(());
};

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let physical_target_size = camera.physical_target_size.unwrap();
Expand Down Expand Up @@ -98,6 +101,7 @@ impl ViewNode for MainTransmissivePass3dNode {

let mut render_pass =
render_context.begin_tracked_render_pass(render_pass_descriptor.clone());
#[cfg(not(target_os = "macos"))]
let pass_span =
diagnostics.pass_span(&mut render_pass, "main_transmissive_pass_3d");

Expand All @@ -112,11 +116,13 @@ impl ViewNode for MainTransmissivePass3dNode {
error!("Error encountered while rendering the transmissive phase {err:?}");
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
}
} else {
let mut render_pass =
render_context.begin_tracked_render_pass(render_pass_descriptor);
#[cfg(not(target_os = "macos"))]
let pass_span =
diagnostics.pass_span(&mut render_pass, "main_transmissive_pass_3d");

Expand All @@ -131,6 +137,7 @@ impl ViewNode for MainTransmissivePass3dNode {
error!("Error encountered while rendering the transmissive phase {err:?}");
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
use crate::core_3d::Transparent3d;
use bevy_camera::{MainPassResolutionOverride, Viewport};
use bevy_ecs::{prelude::*, query::QueryItem};
// render diagnostics are not supported on mac; gating to prevent potential flickering (GH Issue #22257)
#[cfg(not(target_os = "macos"))]
use bevy_render::diagnostic::RecordDiagnostics;
use bevy_render::{
camera::ExtractedCamera,
diagnostic::RecordDiagnostics,
render_graph::{NodeRunError, RenderGraphContext, ViewNode},
render_phase::ViewSortedRenderPhases,
render_resource::{RenderPassDescriptor, StoreOp},
Expand Down Expand Up @@ -52,6 +54,7 @@ impl ViewNode for MainTransparentPass3dNode {
#[cfg(feature = "trace")]
let _main_transparent_pass_3d_span = info_span!("main_transparent_pass_3d").entered();

#[cfg(not(target_os = "macos"))]
let diagnostics = render_context.diagnostic_recorder();

let mut render_pass = render_context.begin_tracked_render_pass(RenderPassDescriptor {
Expand All @@ -68,6 +71,7 @@ impl ViewNode for MainTransparentPass3dNode {
occlusion_query_set: None,
});

#[cfg(not(target_os = "macos"))]
let pass_span = diagnostics.pass_span(&mut render_pass, "main_transparent_pass_3d");

if let Some(viewport) =
Expand All @@ -80,6 +84,7 @@ impl ViewNode for MainTransparentPass3dNode {
error!("Error encountered while rendering the transparent phase {err:?}");
}

#[cfg(not(target_os = "macos"))]
pass_span.end(&mut render_pass);
}

Expand Down
Loading