Skip to content

Commit da0c391

Browse files
committed
added named scopes for renderer to improve debugging
1 parent f397270 commit da0c391

File tree

15 files changed

+131
-34
lines changed

15 files changed

+131
-34
lines changed

fyrox-impl/src/renderer/bloom/blur.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,14 @@ impl GaussianBlur {
8585

8686
pub(crate) fn render(
8787
&self,
88+
server: &dyn GraphicsServer,
8889
quad: &GpuGeometryBuffer,
8990
input: &GpuTexture,
9091
uniform_buffer_cache: &mut UniformBufferCache,
9192
renderer_resources: &RendererResources,
9293
) -> Result<RenderPassStatistics, FrameworkError> {
94+
let _debug_scope = server.begin_scope("GaussianBlur");
95+
9396
let mut stats = RenderPassStatistics::default();
9497

9598
let viewport = Rect::new(0, 0, self.width as i32, self.height as i32);

fyrox-impl/src/renderer/bloom/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,14 @@ impl BloomRenderer {
8080

8181
pub(crate) fn render(
8282
&self,
83+
server: &dyn GraphicsServer,
8384
hdr_scene_frame: &GpuTexture,
8485
uniform_buffer_cache: &mut UniformBufferCache,
8586
renderer_resources: &RendererResources,
8687
settings: &QualitySettings,
8788
) -> Result<RenderPassStatistics, FrameworkError> {
89+
let _debug_scope = server.begin_scope("Bloom");
90+
8891
let mut stats = RenderPassStatistics::default();
8992

9093
let viewport = Rect::new(0, 0, self.width as i32, self.height as i32);
@@ -115,6 +118,7 @@ impl BloomRenderer {
115118
)?;
116119

117120
stats += self.blur.render(
121+
server,
118122
&renderer_resources.quad,
119123
self.glow_texture(),
120124
uniform_buffer_cache,

fyrox-impl/src/renderer/convolution.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,13 @@ impl EnvironmentMapSpecularConvolution {
7676

7777
pub fn render(
7878
&self,
79+
server: &dyn GraphicsServer,
7980
environment_map: &GpuTexture,
8081
uniform_buffer_cache: &mut UniformBufferCache,
8182
renderer_resources: &RendererResources,
8283
) -> Result<RenderPassStatistics, FrameworkError> {
84+
let _debug_scope = server.begin_scope("");
85+
8386
let mut stats = RenderPassStatistics::default();
8487

8588
let projection_matrix =

fyrox-impl/src/renderer/debug_renderer.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,15 @@ impl DebugRenderer {
142142

143143
pub(crate) fn render(
144144
&mut self,
145+
server: &dyn GraphicsServer,
145146
uniform_buffer_cache: &mut UniformBufferCache,
146147
viewport: Rect<i32>,
147148
framebuffer: &GpuFrameBuffer,
148149
view_projection: Matrix4<f32>,
149150
renderer_resources: &RendererResources,
150151
) -> Result<RenderPassStatistics, FrameworkError> {
152+
let _debug_scope = server.begin_scope("DebugRendering");
153+
151154
let mut statistics = RenderPassStatistics::default();
152155

153156
let properties = PropertyGroup::from([property("worldViewProjection", &view_projection)]);

fyrox-impl/src/renderer/fxaa.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,23 @@ use crate::{
3131
RenderPassStatistics,
3232
},
3333
};
34+
use fyrox_graphics::server::GraphicsServer;
3435

3536
#[derive(Default)]
3637
pub struct FxaaRenderer {}
3738

3839
impl FxaaRenderer {
3940
pub(crate) fn render(
4041
&self,
42+
server: &dyn GraphicsServer,
4143
viewport: Rect<i32>,
4244
frame_texture: &GpuTexture,
4345
frame_buffer: &GpuFrameBuffer,
4446
uniform_buffer_cache: &mut UniformBufferCache,
4547
renderer_resources: &RendererResources,
4648
) -> Result<RenderPassStatistics, FrameworkError> {
49+
let _debug_scope = server.begin_scope("FXAA");
50+
4751
let mut statistics = RenderPassStatistics::default();
4852

4953
let frame_matrix = make_viewport_matrix(viewport);

fyrox-impl/src/renderer/gbuffer.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ impl GBuffer {
180180
&mut self,
181181
args: GBufferRenderContext,
182182
) -> Result<RenderPassStatistics, FrameworkError> {
183+
let _debug_scope = args.server.begin_scope("GBuffer");
184+
183185
let mut statistics = RenderPassStatistics::default();
184186

185187
let GBufferRenderContext {

fyrox-impl/src/renderer/hdr/mod.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,13 @@ impl HighDynamicRangeRenderer {
143143

144144
fn calculate_frame_luminance(
145145
&self,
146+
server: &dyn GraphicsServer,
146147
scene_frame: &GpuTexture,
147148
uniform_buffer_cache: &mut UniformBufferCache,
148149
renderer_resources: &RendererResources,
149150
) -> Result<DrawCallStatistics, FrameworkError> {
151+
let _debug_scope = server.begin_scope("CalculateFrameLuminance");
152+
150153
self.frame_luminance.clear();
151154

152155
let frame_matrix = self.frame_luminance.matrix();
@@ -184,10 +187,13 @@ impl HighDynamicRangeRenderer {
184187

185188
fn calculate_avg_frame_luminance(
186189
&self,
190+
server: &dyn GraphicsServer,
187191
uniform_buffer_cache: &mut UniformBufferCache,
188192
renderer_resources: &RendererResources,
189193
luminance_calculation_method: LuminanceCalculationMethod,
190194
) -> Result<RenderPassStatistics, FrameworkError> {
195+
let _debug_scope = server.begin_scope("CalculateAvgFrameLuminance");
196+
191197
let mut stats = RenderPassStatistics::default();
192198

193199
match luminance_calculation_method {
@@ -261,10 +267,13 @@ impl HighDynamicRangeRenderer {
261267

262268
fn adaptation(
263269
&self,
270+
server: &dyn GraphicsServer,
264271
dt: f32,
265272
uniform_buffer_cache: &mut UniformBufferCache,
266273
renderer_resources: &RendererResources,
267274
) -> Result<DrawCallStatistics, FrameworkError> {
275+
let _debug_scope = server.begin_scope("Adaptation");
276+
268277
let ctx = self.adaptation_chain.begin();
269278
let viewport = Rect::new(0, 0, ctx.lum_buffer.size as i32, ctx.lum_buffer.size as i32);
270279
let matrix = ctx.lum_buffer.matrix();
@@ -319,6 +328,8 @@ impl HighDynamicRangeRenderer {
319328
..
320329
} = args;
321330

331+
let _debug_scope = args.server.begin_scope("ToneMap");
332+
322333
let frame_matrix = make_viewport_matrix(viewport);
323334

324335
let color_grading_lut_tex = color_grading_lut
@@ -386,26 +397,35 @@ impl HighDynamicRangeRenderer {
386397
}
387398

388399
pub fn render(&self, args: HdrRendererArgs) -> Result<RenderPassStatistics, FrameworkError> {
400+
let _debug_scope = args.server.begin_scope("HDR");
389401
let mut stats = RenderPassStatistics::default();
390402
stats += self.calculate_frame_luminance(
403+
args.server,
391404
args.hdr_scene_frame,
392405
args.uniform_buffer_cache,
393406
args.renderer_resources,
394407
)?;
395408
stats += self.calculate_avg_frame_luminance(
409+
args.server,
396410
args.uniform_buffer_cache,
397411
args.renderer_resources,
398412
args.settings.hdr_settings.luminance_calculation_method,
399413
)?;
400414
if args.settings.hdr_settings.bloom_settings.use_bloom {
401415
stats += self.bloom_renderer.render(
416+
args.server,
402417
args.hdr_scene_frame,
403418
args.uniform_buffer_cache,
404419
args.renderer_resources,
405420
args.settings,
406421
)?;
407422
}
408-
stats += self.adaptation(args.dt, args.uniform_buffer_cache, args.renderer_resources)?;
423+
stats += self.adaptation(
424+
args.server,
425+
args.dt,
426+
args.uniform_buffer_cache,
427+
args.renderer_resources,
428+
)?;
409429
stats += self.map_hdr_to_ldr(args)?;
410430
Ok(stats)
411431
}

fyrox-impl/src/renderer/light.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ impl DeferredLightRenderer {
248248
&mut self,
249249
args: DeferredRendererContext,
250250
) -> Result<(RenderPassStatistics, LightingStatistics), FrameworkError> {
251+
let _debug_scope = args.server.begin_scope("DeferredLighting");
252+
251253
let mut pass_stats = RenderPassStatistics::default();
252254
let mut light_stats = LightingStatistics::default();
253255

@@ -298,6 +300,7 @@ impl DeferredLightRenderer {
298300
// Fill SSAO map.
299301
if settings.use_ssao {
300302
pass_stats += ssao_renderer.render(
303+
server,
301304
gbuffer,
302305
observer.position.projection_matrix,
303306
observer.position.view_matrix.basis(),
@@ -374,7 +377,12 @@ impl DeferredLightRenderer {
374377
pass_stats += environment_map_specular_convolution
375378
.as_ref()
376379
.unwrap()
377-
.render(environment_map, uniform_buffer_cache, renderer_resources)?;
380+
.render(
381+
server,
382+
environment_map,
383+
uniform_buffer_cache,
384+
renderer_resources,
385+
)?;
378386

379387
// Prepare the irradiance component of the probe.
380388
pass_stats += environment_map_irradiance_convolution.render(
@@ -724,7 +732,7 @@ impl DeferredLightRenderer {
724732
.render(PointShadowMapRenderContext {
725733
render_mask: observer.render_mask,
726734
elapsed_time,
727-
state: server,
735+
server,
728736
graph: &scene.graph,
729737
light_pos: light.position,
730738
light_radius,
@@ -744,7 +752,7 @@ impl DeferredLightRenderer {
744752
pass_stats += self.csm_renderer.render(CsmRenderContext {
745753
elapsed_time,
746754
frame_size: Vector2::new(gbuffer.width as f32, gbuffer.height as f32),
747-
state: server,
755+
server,
748756
graph: &scene.graph,
749757
light,
750758
observer,
@@ -1040,6 +1048,7 @@ impl DeferredLightRenderer {
10401048
// light source.
10411049
if settings.light_scatter_enabled && light.scatter_enabled {
10421050
pass_stats += self.light_volume.render_volume(
1051+
server,
10431052
light,
10441053
gbuffer,
10451054
observer.position.view_matrix,

fyrox-impl/src/renderer/light_volume.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ impl LightVolumeRenderer {
7474
#[allow(clippy::too_many_arguments)]
7575
pub(crate) fn render_volume(
7676
&mut self,
77+
server: &dyn GraphicsServer,
7778
light: &LightSource,
7879
gbuffer: &GBuffer,
7980
view: Matrix4<f32>,
@@ -85,6 +86,8 @@ impl LightVolumeRenderer {
8586
uniform_buffer_cache: &mut UniformBufferCache,
8687
renderer_resources: &RendererResources,
8788
) -> Result<RenderPassStatistics, FrameworkError> {
89+
let _debug_scope = server.begin_scope("LightVolume");
90+
8891
let mut stats = RenderPassStatistics::default();
8992

9093
let frame_matrix = make_viewport_matrix(viewport);

0 commit comments

Comments
 (0)