diff --git a/source/renderer/OverlayRenderer.cpp b/source/renderer/OverlayRenderer.cpp index d2c3901590..dc5bf16aa5 100644 --- a/source/renderer/OverlayRenderer.cpp +++ b/source/renderer/OverlayRenderer.cpp @@ -372,9 +372,11 @@ void OverlayRenderer::PrepareForRendering() m->quadVertices.PrepareForRendering(); } -void OverlayRenderer::RenderOverlaysBeforeWater() +void OverlayRenderer::RenderOverlaysBeforeWater( + Renderer::Backend::GL::CDeviceCommandContext* deviceCommandContext) { PROFILE3_GPU("overlays (before)"); + GPU_SCOPED_LABEL(deviceCommandContext, "Render overlays before water"); #if CONFIG2_GLES #warning TODO: implement OverlayRenderer::RenderOverlaysBeforeWater for GLES diff --git a/source/renderer/OverlayRenderer.h b/source/renderer/OverlayRenderer.h index fc3fdbc62f..c0ecc6e836 100644 --- a/source/renderer/OverlayRenderer.h +++ b/source/renderer/OverlayRenderer.h @@ -100,7 +100,8 @@ public: * (i.e. rendered behind other objects in the normal 3D way) * and should be drawn before water (i.e. may be visible under the water) */ - void RenderOverlaysBeforeWater(); + void RenderOverlaysBeforeWater( + Renderer::Backend::GL::CDeviceCommandContext* deviceCommandContext); /** * Render all the submitted overlays that are embedded in the world diff --git a/source/renderer/SceneRenderer.cpp b/source/renderer/SceneRenderer.cpp index cc32377b7c..8143bf63a1 100644 --- a/source/renderer/SceneRenderer.cpp +++ b/source/renderer/SceneRenderer.cpp @@ -713,6 +713,9 @@ void CSceneRenderer::RenderRefractions( // Render terrain and models RenderPatches(deviceCommandContext, context, CULL_REFRACTIONS); ogl_WarnIfError(); + // Render debug-related terrain overlays to make it visible under water. + ITerrainOverlay::RenderOverlaysBeforeWater(deviceCommandContext); + ogl_WarnIfError(); RenderModels(deviceCommandContext, context, CULL_REFRACTIONS); ogl_WarnIfError(); RenderTransparentModels(deviceCommandContext, context, CULL_REFRACTIONS, TRANSPARENT_OPAQUE); @@ -900,7 +903,7 @@ void CSceneRenderer::RenderSubmissions( ogl_WarnIfError(); // render other debug-related overlays before water (so they can be seen when underwater) - m->overlayRenderer.RenderOverlaysBeforeWater(); + m->overlayRenderer.RenderOverlaysBeforeWater(deviceCommandContext); ogl_WarnIfError(); RenderModels(deviceCommandContext, context, cullGroup); diff --git a/source/renderer/TerrainOverlay.cpp b/source/renderer/TerrainOverlay.cpp index d1d892f379..16e1eb480b 100644 --- a/source/renderer/TerrainOverlay.cpp +++ b/source/renderer/TerrainOverlay.cpp @@ -71,6 +71,7 @@ void ITerrainOverlay::RenderOverlaysBeforeWater( return; PROFILE3_GPU("terrain overlays (before)"); + GPU_SCOPED_LABEL(deviceCommandContext, "Render terrain overlays before water"); for (size_t i = 0; i < g_TerrainOverlayList.size(); ++i) g_TerrainOverlayList[i].first->RenderBeforeWater(deviceCommandContext); @@ -83,6 +84,7 @@ void ITerrainOverlay::RenderOverlaysAfterWater( return; PROFILE3_GPU("terrain overlays (after)"); + GPU_SCOPED_LABEL(deviceCommandContext, "Render terrain overlays after water"); for (size_t i = 0; i < g_TerrainOverlayList.size(); ++i) g_TerrainOverlayList[i].first->RenderAfterWater(deviceCommandContext, cullGroup);