From 04a0fdb53806dbd2eab0ebf85caade358e435a7e Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 5 Apr 2023 17:33:44 +0100 Subject: [PATCH] Add marker regions for GL pixel history --- renderdoc/driver/gl/gl_pixelhistory.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/gl/gl_pixelhistory.cpp b/renderdoc/driver/gl/gl_pixelhistory.cpp index 1bddabb11..a5364e7cb 100644 --- a/renderdoc/driver/gl/gl_pixelhistory.cpp +++ b/renderdoc/driver/gl/gl_pixelhistory.cpp @@ -744,6 +744,7 @@ rdcarray QueryModifyingEvents(WrappedOpenGL *driver, GLPixelHistoryR const rdcarray &events, int x, int y, int mipLevel, rdcarray &history) { + GLMarkerRegion region("QueryModifyingEvents"); rdcarray modEvents; rdcarray occlusionQueries; std::set ignoredEvents; @@ -926,6 +927,7 @@ void QueryPostModPixelValues(WrappedOpenGL *driver, GLPixelHistoryResources &res rdcarray &history, uint32_t numSamples, uint32_t sampleIndex) { + GLMarkerRegion region("QueryPostModPixelValues"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); CopyFramebuffer copyFramebuffer; RDCEraseEl(copyFramebuffer); @@ -1109,6 +1111,7 @@ std::map QueryNumFragmentsByEvent( const rdcarray &modEvents, rdcarray &history, int x, int y, uint32_t numSamples, uint32_t sampleIndex, uint32_t width, uint32_t height) { + GLMarkerRegion region("QueryNumFragmentsByEvent"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); std::map eventFragments; @@ -1301,6 +1304,7 @@ void QueryFailedTests(WrappedOpenGL *driver, GLPixelHistoryResources &resources, const rdcarray &modEvents, int x, int y, rdcarray &history, uint32_t sampleIndex) { + GLMarkerRegion region("QueryFailedTests"); for(size_t i = 0; i < modEvents.size(); ++i) { OpenGLTest failedTest = OpenGLTest::NumTests; @@ -1354,6 +1358,7 @@ void QueryShaderOutPerFragment(WrappedOpenGL *driver, GLReplay *replay, uint32_t numSamples, uint32_t sampleIndex, uint32_t width, uint32_t height) { + GLMarkerRegion region("QueryShaderOutPerFragment"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); for(size_t i = 0; i < modEvents.size(); ++i) { @@ -1517,6 +1522,7 @@ void QueryPostModPerFragment(WrappedOpenGL *driver, GLReplay *replay, const std::map &eventFragments, uint32_t numSamples, uint32_t sampleIndex, uint32_t width, uint32_t height) { + GLMarkerRegion region("QueryPostModPerFragment"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); for(size_t i = 0; i < modEvents.size(); i++) @@ -1757,6 +1763,7 @@ void QueryPrimitiveIdPerFragment(WrappedOpenGL *driver, GLReplay *replay, bool usingFloatForPrimitiveId, uint32_t numSamples, uint32_t sampleIndex) { + GLMarkerRegion region("QueryPrimitiveIdPerFragment"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); for(size_t i = 0; i < modEvents.size(); i++) @@ -1909,6 +1916,7 @@ void CalculateFragmentDepthTests(WrappedOpenGL *driver, GLPixelHistoryResources rdcarray &history, const std::map &eventFragments) { + GLMarkerRegion region("CalculateFragmentDepthTests"); driver->ReplayLog(0, modEvents[0].eventId, eReplay_WithoutDraw); size_t historyIndex = 0; for(size_t i = 0; i < modEvents.size(); ++i) @@ -1981,8 +1989,6 @@ rdcarray GLReplay::PixelHistory(rdcarray events, flippedY, ToStr(target).c_str(), sub.mip, sub.slice, sub.sample, ToStr(typeCast).c_str(), events.size()); - RDCDEBUG("%s", regionName.c_str()); - uint32_t sampleIdx = sub.sample; if(sampleIdx > textureDesc.msSamp) @@ -2002,6 +2008,10 @@ rdcarray GLReplay::PixelHistory(rdcarray events, MakeCurrentReplayContext(&m_ReplayCtx); + m_pDriver->ReplayMarkers(false); + + GLMarkerRegion region(regionName); + int glslVersion = DebugData.glslVersion; bool usingFloatForPrimitiveId = glslVersion < 330; @@ -2014,6 +2024,7 @@ rdcarray GLReplay::PixelHistory(rdcarray events, if(modEvents.empty()) { PixelHistoryDestroyResources(m_pDriver, resources); + m_pDriver->ReplayMarkers(true); return history; } @@ -2065,5 +2076,6 @@ rdcarray GLReplay::PixelHistory(rdcarray events, CalculateFragmentDepthTests(m_pDriver, resources, modEvents, history, eventFragments); PixelHistoryDestroyResources(m_pDriver, resources); + m_pDriver->ReplayMarkers(true); return history; }