[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