[Bf-blender-cvs] [ec6170061e7] blender2.8: DRW: Add stats group to eevee and object mode.

Clément Foucault noreply at git.blender.org
Thu Jul 27 14:59:13 CEST 2017


Commit: ec6170061e726ee2c2700f48f9e47ebf7e3ec875
Author: Clément Foucault
Date:   Wed Jul 26 19:58:15 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBec6170061e726ee2c2700f48f9e47ebf7e3ec875

DRW: Add stats group to eevee and object mode.

===================================================================

M	source/blender/draw/engines/eevee/eevee_effects.c
M	source/blender/draw/engines/eevee/eevee_engine.c
M	source/blender/draw/engines/eevee/eevee_lightprobes.c
M	source/blender/draw/modes/object_mode.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index 95280c5f206..4de887f14fd 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -979,6 +979,7 @@ void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, GPUTexture *depth_src, int l
 
 	e_data.depth_src = depth_src;
 
+	DRW_stats_group_start("Min buffer");
 	/* Copy depth buffer to min texture top level */
 	DRW_framebuffer_texture_attach(fbl->downsample_fb, stl->g_data->minzbuffer, 0, 0);
 	DRW_framebuffer_bind(fbl->downsample_fb);
@@ -993,7 +994,9 @@ void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, GPUTexture *depth_src, int l
 
 	/* Create lower levels */
 	DRW_framebuffer_recursive_downsample(fbl->downsample_fb, stl->g_data->minzbuffer, 8, &min_downsample_cb, vedata);
+	DRW_stats_group_end();
 
+	DRW_stats_group_start("Max buffer");
 	/* Copy depth buffer to max texture top level */
 	DRW_framebuffer_texture_attach(fbl->downsample_fb, txl->maxzbuffer, 0, 0);
 	DRW_framebuffer_bind(fbl->downsample_fb);
@@ -1008,6 +1011,7 @@ void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, GPUTexture *depth_src, int l
 
 	/* Create lower levels */
 	DRW_framebuffer_recursive_downsample(fbl->downsample_fb, txl->maxzbuffer, 8, &max_downsample_cb, vedata);
+	DRW_stats_group_end();
 }
 
 /**
@@ -1017,8 +1021,10 @@ void EEVEE_downsample_buffer(EEVEE_Data *vedata, struct GPUFrameBuffer *fb_src,
 {
 	e_data.color_src = texture_src;
 
+	DRW_stats_group_start("Downsample buffer");
 	/* Create lower levels */
 	DRW_framebuffer_recursive_downsample(fb_src, texture_src, level, &simple_downsample_cb, vedata);
+	DRW_stats_group_end();
 }
 
 void EEVEE_effects_do_volumetrics(EEVEE_SceneLayerData *sldata, EEVEE_Data *vedata)
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index a1eb2cee125..2447a24e9de 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -150,10 +150,14 @@ static void EEVEE_draw_scene(void *vedata)
 
 	while (loop_ct--) {
 		/* Refresh shadows */
+		DRW_stats_group_start("Shadows");
 		EEVEE_draw_shadows(sldata, psl);
+		DRW_stats_group_end();
 
 		/* Refresh Probes */
+		DRW_stats_group_start("Probes Refresh");
 		EEVEE_lightprobes_refresh(sldata, vedata);
+		DRW_stats_group_end();
 
 		/* Attach depth to the hdr buffer and bind it */
 		DRW_framebuffer_texture_detach(dtxl->depth);
@@ -165,32 +169,46 @@ static void EEVEE_draw_scene(void *vedata)
 		DRW_draw_pass(psl->background_pass);
 
 		/* Depth prepass */
+		DRW_stats_group_start("Prepass");
 		DRW_draw_pass(psl->depth_pass);
 		DRW_draw_pass(psl->depth_pass_cull);
+		DRW_stats_group_end();
 
 		/* Create minmax texture */
+		DRW_stats_group_start("Main MinMax buffer");
 		EEVEE_create_minmax_buffer(vedata, dtxl->depth, -1);
+		DRW_stats_group_end();
 
 		/* Restore main FB */
 		DRW_framebuffer_bind(fbl->main);
 
 		/* Shading pass */
+		DRW_stats_group_start("Shading");
 		DRW_draw_pass(psl->probe_display);
 		EEVEE_draw_default_passes(psl);
 		DRW_draw_pass(psl->material_pass);
+		DRW_stats_group_end();
 
 		/* Screen Space Reflections */
+		DRW_stats_group_start("SSR");
 		EEVEE_effects_do_ssr(sldata, vedata);
+		DRW_stats_group_end();
 
 		/* Volumetrics */
+		DRW_stats_group_start("Volumetrics");
 		EEVEE_effects_do_volumetrics(sldata, vedata);
+		DRW_stats_group_end();
 
 		/* Transparent */
 		DRW_pass_sort_shgroup_z(psl->transparent_pass);
+		DRW_stats_group_start("Transparent");
 		DRW_draw_pass(psl->transparent_pass);
+		DRW_stats_group_end();
 
 		/* Post Process */
+		DRW_stats_group_start("Post FX");
 		EEVEE_draw_effects(vedata);
+		DRW_stats_group_end();
 	}
 }
 
diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c
index 869a9798ce2..e31c97f0b7d 100644
--- a/source/blender/draw/engines/eevee/eevee_lightprobes.c
+++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c
@@ -334,7 +334,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_SceneLayerData *sldata, EEVEE_Data *veda
 	memset(pinfo->probes_planar_ref, 0, sizeof(pinfo->probes_planar_ref));
 
 	{
-		psl->probe_background = DRW_pass_create("World Probe Pass", DRW_STATE_WRITE_COLOR);
+		psl->probe_background = DRW_pass_create("World Probe Background Pass", DRW_STATE_WRITE_COLOR);
 
 		struct Gwn_Batch *geom = DRW_cache_fullscreen_quad_get();
 		DRWShadingGroup *grp = NULL;
@@ -1342,9 +1342,11 @@ update_planar:
 	/* If there is at least one planar probe */
 	if (pinfo->num_planar > 0) {
 		const int max_lod = 9;
+		DRW_stats_group_start("Planar Probe Downsample");
 		DRW_framebuffer_recursive_downsample(vedata->fbl->downsample_fb, txl->planar_pool, max_lod, &downsample_planar, vedata);
 		/* For shading, save max level of the planar map */
 		pinfo->lod_planar_max = (float)(max_lod);
+		DRW_stats_group_end();
 	}
 }
 
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 173580adaef..70ee0dbc48b 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1815,6 +1815,7 @@ static void OBJECT_draw_scene(void *vedata)
 	float clearcol[4] = {0.0f, 0.0f, 0.0f, 0.0f};
 
 	if (DRW_state_is_fbo()) {
+		DRW_stats_group_start("Outlines");
 		/* attach temp textures */
 		DRW_framebuffer_texture_attach(fbl->outlines, e_data.outlines_depth_tx, 0, 0);
 		DRW_framebuffer_texture_attach(fbl->outlines, e_data.outlines_color_tx, 0, 0);
@@ -1825,6 +1826,7 @@ static void OBJECT_draw_scene(void *vedata)
 		DRW_framebuffer_clear(true, true, false, clearcol, 1.0f);
 		DRW_draw_pass(psl->outlines);
 
+
 		/* detach textures */
 		DRW_framebuffer_texture_detach(e_data.outlines_depth_tx);
 
@@ -1857,6 +1859,7 @@ static void OBJECT_draw_scene(void *vedata)
 
 		/* restore main framebuffer */
 		DRW_framebuffer_bind(dfbl->default_fb);
+		DRW_stats_group_end();
 	}
 
 	/* This needs to be drawn after the oultine */




More information about the Bf-blender-cvs mailing list