Add Setup Shadows render timestamp for the visual profiler
- Rename shadow timestamp to clarify it's for directional and spot shadows. - Fix Render OmniLight Shadows timestamp being visible even when no omnilight shadows are being rendered.
This commit is contained in:
@@ -1523,6 +1523,8 @@ void RenderForwardClustered::_pre_opaque_render(RenderDataRD *p_render_data, boo
|
||||
rb_data = rb->get_custom_data(RB_SCOPE_FORWARD_CLUSTERED);
|
||||
}
|
||||
|
||||
RENDER_TIMESTAMP("Setup Shadows");
|
||||
|
||||
if (rb.is_valid() && p_use_gi && rb->has_custom_data(RB_SCOPE_SDFGI)) {
|
||||
Ref<RendererRD::GI::SDFGI> sdfgi = rb->get_custom_data(RB_SCOPE_SDFGI);
|
||||
sdfgi->store_probes();
|
||||
@@ -1552,10 +1554,12 @@ void RenderForwardClustered::_pre_opaque_render(RenderDataRD *p_render_data, boo
|
||||
}
|
||||
}
|
||||
|
||||
RENDER_TIMESTAMP("Render OmniLight Shadows");
|
||||
// Cube shadows are rendered in their own way.
|
||||
for (const int &index : p_render_data->cube_shadows) {
|
||||
_render_shadow_pass(p_render_data->render_shadows[index].light, p_render_data->shadow_atlas, p_render_data->render_shadows[index].pass, p_render_data->render_shadows[index].instances, lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, true, true, true, p_render_data->render_info, viewport_size, p_render_data->scene_data->cam_transform);
|
||||
if (p_render_data->cube_shadows.size()) {
|
||||
RENDER_TIMESTAMP("Render OmniLight Shadows");
|
||||
// Cube shadows are rendered in their own way.
|
||||
for (const int &index : p_render_data->cube_shadows) {
|
||||
_render_shadow_pass(p_render_data->render_shadows[index].light, p_render_data->shadow_atlas, p_render_data->render_shadows[index].pass, p_render_data->render_shadows[index].instances, lod_distance_multiplier, p_render_data->scene_data->screen_mesh_lod_threshold, true, true, true, p_render_data->render_info, viewport_size, p_render_data->scene_data->cam_transform);
|
||||
}
|
||||
}
|
||||
|
||||
if (p_render_data->directional_shadows.size()) {
|
||||
@@ -1572,9 +1576,9 @@ void RenderForwardClustered::_pre_opaque_render(RenderDataRD *p_render_data, boo
|
||||
bool render_gi = rb.is_valid() && p_use_gi;
|
||||
|
||||
if (render_shadows && render_gi) {
|
||||
RENDER_TIMESTAMP("Render GI + Render Shadows (Parallel)");
|
||||
RENDER_TIMESTAMP("Render GI + Render Directional/SpotLight Shadows (Parallel)");
|
||||
} else if (render_shadows) {
|
||||
RENDER_TIMESTAMP("Render Shadows");
|
||||
RENDER_TIMESTAMP("Render Directional/SpotLight Shadows");
|
||||
} else if (render_gi) {
|
||||
RENDER_TIMESTAMP("Render GI");
|
||||
}
|
||||
|
||||
@@ -767,6 +767,8 @@ void RenderForwardMobile::_setup_lightmaps(const RenderDataRD *p_render_data, co
|
||||
void RenderForwardMobile::_pre_opaque_render(RenderDataRD *p_render_data) {
|
||||
RendererRD::LightStorage *light_storage = RendererRD::LightStorage::get_singleton();
|
||||
|
||||
RENDER_TIMESTAMP("Setup Shadows");
|
||||
|
||||
p_render_data->cube_shadows.clear();
|
||||
p_render_data->shadows.clear();
|
||||
p_render_data->directional_shadows.clear();
|
||||
|
||||
Reference in New Issue
Block a user