From 3c5ce8a84a992d232d8b809a3d93d27e80dac3d0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 13 Jan 2025 11:09:10 +0000 Subject: [PATCH] Remove unused API function * Headless windows are used as immutable in tests so allowing resizing is unnecessary complication --- renderdoc/api/replay/renderdoc_replay.h | 11 ------- renderdoc/core/image_viewer.cpp | 4 --- renderdoc/core/replay_proxy.h | 5 --- renderdoc/driver/d3d11/d3d11_outputwindow.cpp | 21 ------------- renderdoc/driver/d3d11/d3d11_replay.h | 1 - renderdoc/driver/d3d12/d3d12_outputwindow.cpp | 24 -------------- renderdoc/driver/d3d12/d3d12_replay.h | 1 - renderdoc/driver/gl/gl_outputwindow.cpp | 31 ------------------- renderdoc/driver/gl/gl_replay.h | 1 - renderdoc/driver/vulkan/vk_outputwindow.cpp | 17 ---------- renderdoc/driver/vulkan/vk_replay.h | 1 - renderdoc/replay/dummy_driver.cpp | 4 --- renderdoc/replay/dummy_driver.h | 1 - renderdoc/replay/replay_driver.h | 1 - renderdoc/replay/replay_output.cpp | 23 +++----------- 15 files changed, 5 insertions(+), 141 deletions(-) diff --git a/renderdoc/api/replay/renderdoc_replay.h b/renderdoc/api/replay/renderdoc_replay.h index a25434c2d..dac8d1595 100644 --- a/renderdoc/api/replay/renderdoc_replay.h +++ b/renderdoc/api/replay/renderdoc_replay.h @@ -242,17 +242,6 @@ outputs. )"); virtual void SetMeshDisplay(const MeshDisplay &config) = 0; - DOCUMENT(R"(Sets the dimensions of the output, useful only for headless outputs that don't have a -backing window which don't have any implicit dimensions. This allows configuring a virtual viewport -which is useful for operations like picking vertices that depends on the output dimensions. - -.. note:: For outputs with backing windows, this will be ignored. - -:param int width: The width to use. -:param int height: The height to use. -)"); - virtual void SetDimensions(int32_t width, int32_t height) = 0; - DOCUMENT(R"(Read the output texture back as byte data. Primarily useful for headless outputs where the output data is not displayed anywhere natively. diff --git a/renderdoc/core/image_viewer.cpp b/renderdoc/core/image_viewer.cpp index bd6735e78..2d2c3764c 100644 --- a/renderdoc/core/image_viewer.cpp +++ b/renderdoc/core/image_viewer.cpp @@ -111,10 +111,6 @@ public: } void DestroyOutputWindow(uint64_t id) { m_Proxy->DestroyOutputWindow(id); } bool CheckResizeOutputWindow(uint64_t id) { return m_Proxy->CheckResizeOutputWindow(id); } - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) - { - m_Proxy->SetOutputWindowDimensions(id, w, h); - } void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) { m_Proxy->GetOutputWindowDimensions(id, w, h); diff --git a/renderdoc/core/replay_proxy.h b/renderdoc/core/replay_proxy.h index 7f4725868..945bc53f6 100644 --- a/renderdoc/core/replay_proxy.h +++ b/renderdoc/core/replay_proxy.h @@ -185,11 +185,6 @@ public: if(m_Proxy) return m_Proxy->GetOutputWindowDimensions(id, w, h); } - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) - { - if(m_Proxy) - m_Proxy->SetOutputWindowDimensions(id, w, h); - } void GetOutputWindowData(uint64_t id, bytebuf &retData) { if(m_Proxy) diff --git a/renderdoc/driver/d3d11/d3d11_outputwindow.cpp b/renderdoc/driver/d3d11/d3d11_outputwindow.cpp index 7be243b5d..c2efdd110 100644 --- a/renderdoc/driver/d3d11/d3d11_outputwindow.cpp +++ b/renderdoc/driver/d3d11/d3d11_outputwindow.cpp @@ -276,27 +276,6 @@ void D3D11Replay::GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) h = m_OutputWindows[id].height; } -void D3D11Replay::SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) -{ - if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) - return; - - OutputWindow &outw = m_OutputWindows[id]; - - // can't resize an output with an actual window backing - if(outw.wnd) - return; - - SAFE_RELEASE(outw.rtv); - SAFE_RELEASE(outw.dsv); - - outw.width = w; - outw.height = h; - - outw.MakeRTV(); - outw.MakeDSV(); -} - void D3D11Replay::GetOutputWindowData(uint64_t id, bytebuf &retData) { if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) diff --git a/renderdoc/driver/d3d11/d3d11_replay.h b/renderdoc/driver/d3d11/d3d11_replay.h index 89fe1d784..861d1bfc0 100644 --- a/renderdoc/driver/d3d11/d3d11_replay.h +++ b/renderdoc/driver/d3d11/d3d11_replay.h @@ -212,7 +212,6 @@ public: void DestroyOutputWindow(uint64_t id); bool CheckResizeOutputWindow(uint64_t id); void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h); - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h); void GetOutputWindowData(uint64_t id, bytebuf &retData); void ClearOutputWindowColor(uint64_t id, FloatVector col); void ClearOutputWindowDepth(uint64_t id, float depth, uint8_t stencil); diff --git a/renderdoc/driver/d3d12/d3d12_outputwindow.cpp b/renderdoc/driver/d3d12/d3d12_outputwindow.cpp index 61cf83388..fe24cea30 100644 --- a/renderdoc/driver/d3d12/d3d12_outputwindow.cpp +++ b/renderdoc/driver/d3d12/d3d12_outputwindow.cpp @@ -377,30 +377,6 @@ void D3D12Replay::GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) h = m_OutputWindows[id].height; } -void D3D12Replay::SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) -{ - if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) - return; - - OutputWindow &outw = m_OutputWindows[id]; - - // can't resize an output with an actual window backing - if(outw.wnd) - return; - - m_pDevice->ExecuteLists(); - m_pDevice->FlushLists(true); - - outw.width = w; - outw.height = h; - - outw.MakeRTV(false); - if(outw.depth) - outw.MakeDSV(); - - outw.bbIdx = 0; -} - void D3D12Replay::GetOutputWindowData(uint64_t id, bytebuf &retData) { if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) diff --git a/renderdoc/driver/d3d12/d3d12_replay.h b/renderdoc/driver/d3d12/d3d12_replay.h index 2d001a215..feae52bd6 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.h +++ b/renderdoc/driver/d3d12/d3d12_replay.h @@ -172,7 +172,6 @@ public: void DestroyOutputWindow(uint64_t id); bool CheckResizeOutputWindow(uint64_t id); void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h); - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h); void GetOutputWindowData(uint64_t id, bytebuf &retData); void ClearOutputWindowColor(uint64_t id, FloatVector col); void ClearOutputWindowDepth(uint64_t id, float depth, uint8_t stencil); diff --git a/renderdoc/driver/gl/gl_outputwindow.cpp b/renderdoc/driver/gl/gl_outputwindow.cpp index 035294bd7..c19f9252e 100644 --- a/renderdoc/driver/gl/gl_outputwindow.cpp +++ b/renderdoc/driver/gl/gl_outputwindow.cpp @@ -296,37 +296,6 @@ void GLReplay::GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) m_pDriver->m_Platform.GetOutputWindowDimensions(outw, w, h); } -void GLReplay::SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) -{ - if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) - return; - - OutputWindow &outw = m_OutputWindows[id]; - - // can't resize an output with an actual window backing - if(outw.system != WindowingSystem::Headless) - return; - - outw.width = w; - outw.height = h; - - MakeCurrentReplayContext(m_DebugCtx); - - WrappedOpenGL &drv = *m_pDriver; - - bool haddepth = false; - - drv.glDeleteTextures(1, &outw.BlitData.backbuffer); - if(outw.BlitData.depthstencil) - { - haddepth = true; - drv.glDeleteTextures(1, &outw.BlitData.depthstencil); - } - drv.glDeleteFramebuffers(1, &outw.BlitData.windowFBO); - - CreateOutputWindowBackbuffer(outw, haddepth); -} - void GLReplay::GetOutputWindowData(uint64_t id, bytebuf &retData) { if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) diff --git a/renderdoc/driver/gl/gl_replay.h b/renderdoc/driver/gl/gl_replay.h index ec0052a60..115e4cbbf 100644 --- a/renderdoc/driver/gl/gl_replay.h +++ b/renderdoc/driver/gl/gl_replay.h @@ -184,7 +184,6 @@ public: void DestroyOutputWindow(uint64_t id); bool CheckResizeOutputWindow(uint64_t id); void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h); - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h); void GetOutputWindowData(uint64_t id, bytebuf &retData); void ClearOutputWindowColor(uint64_t id, FloatVector col); void ClearOutputWindowDepth(uint64_t id, float depth, uint8_t stencil); diff --git a/renderdoc/driver/vulkan/vk_outputwindow.cpp b/renderdoc/driver/vulkan/vk_outputwindow.cpp index bc0aabdf8..c89195a24 100644 --- a/renderdoc/driver/vulkan/vk_outputwindow.cpp +++ b/renderdoc/driver/vulkan/vk_outputwindow.cpp @@ -869,23 +869,6 @@ void VulkanReplay::GetOutputWindowData(uint64_t id, bytebuf &retData) vt->FreeMemory(Unwrap(device), readbackMem, NULL); } -void VulkanReplay::SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) -{ - if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) - return; - - OutputWindow &outw = m_OutputWindows[id]; - - // can't resize an output with an actual window backing - if(outw.m_WindowSystem != WindowingSystem::Headless) - return; - - outw.width = w; - outw.height = h; - - outw.Create(m_pDriver, m_pDriver->GetDev(), outw.hasDepth); -} - bool VulkanReplay::CheckResizeOutputWindow(uint64_t id) { if(id == 0 || m_OutputWindows.find(id) == m_OutputWindows.end()) diff --git a/renderdoc/driver/vulkan/vk_replay.h b/renderdoc/driver/vulkan/vk_replay.h index 10c67fa01..bd4638330 100644 --- a/renderdoc/driver/vulkan/vk_replay.h +++ b/renderdoc/driver/vulkan/vk_replay.h @@ -369,7 +369,6 @@ public: void DestroyOutputWindow(uint64_t id); bool CheckResizeOutputWindow(uint64_t id); void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h); - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h); void GetOutputWindowData(uint64_t id, bytebuf &retData); void ClearOutputWindowColor(uint64_t id, FloatVector col); void ClearOutputWindowDepth(uint64_t id, float depth, uint8_t stencil); diff --git a/renderdoc/replay/dummy_driver.cpp b/renderdoc/replay/dummy_driver.cpp index 47a361d84..b33553003 100644 --- a/renderdoc/replay/dummy_driver.cpp +++ b/renderdoc/replay/dummy_driver.cpp @@ -423,10 +423,6 @@ bool DummyDriver::CheckResizeOutputWindow(uint64_t id) return false; } -void DummyDriver::SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) -{ -} - void DummyDriver::GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) { } diff --git a/renderdoc/replay/dummy_driver.h b/renderdoc/replay/dummy_driver.h index c8b4159d6..e4692a543 100644 --- a/renderdoc/replay/dummy_driver.h +++ b/renderdoc/replay/dummy_driver.h @@ -145,7 +145,6 @@ public: uint64_t MakeOutputWindow(WindowingData window, bool depth); void DestroyOutputWindow(uint64_t id); bool CheckResizeOutputWindow(uint64_t id); - void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h); void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h); void GetOutputWindowData(uint64_t id, bytebuf &retData); void ClearOutputWindowColor(uint64_t id, FloatVector col); diff --git a/renderdoc/replay/replay_driver.h b/renderdoc/replay/replay_driver.h index eaf901357..2a18388b4 100644 --- a/renderdoc/replay/replay_driver.h +++ b/renderdoc/replay/replay_driver.h @@ -266,7 +266,6 @@ public: virtual uint64_t MakeOutputWindow(WindowingData window, bool depth) = 0; virtual void DestroyOutputWindow(uint64_t id) = 0; virtual bool CheckResizeOutputWindow(uint64_t id) = 0; - virtual void SetOutputWindowDimensions(uint64_t id, int32_t w, int32_t h) = 0; virtual void GetOutputWindowDimensions(uint64_t id, int32_t &w, int32_t &h) = 0; virtual void GetOutputWindowData(uint64_t id, bytebuf &retData) = 0; virtual void ClearOutputWindowColor(uint64_t id, FloatVector col) = 0; diff --git a/renderdoc/replay/replay_output.cpp b/renderdoc/replay/replay_output.cpp index 1d6a9b491..fa3fac36d 100644 --- a/renderdoc/replay/replay_output.cpp +++ b/renderdoc/replay/replay_output.cpp @@ -149,16 +149,6 @@ void ReplayOutput::Shutdown() m_pController->ShutdownOutput(this); } -void ReplayOutput::SetDimensions(int32_t width, int32_t height) -{ - CHECK_REPLAY_THREAD(); - - m_pDevice->SetOutputWindowDimensions(m_MainOutput.outputID, width > 0 ? width : 1, - height > 0 ? height : 1); - m_pDevice->GetOutputWindowDimensions(m_MainOutput.outputID, m_Width, m_Height); - m_pController->FatalErrorCheck(); -} - bytebuf ReplayOutput::ReadbackOutputTexture() { CHECK_REPLAY_THREAD(); @@ -397,24 +387,21 @@ bytebuf ReplayOutput::DrawThumbnail(int32_t width, int32_t height, ResourceId te if(idx < 0) { - // resize oldest generator if we have hit the max + // release oldest generator if we have hit the max if(m_ThumbnailGenerators.size() == MaxThumbnailGenerators) { - outputID = m_ThumbnailGenerators.back().second; - m_pDevice->SetOutputWindowDimensions(outputID, width, height); + m_pDevice->DestroyOutputWindow(m_ThumbnailGenerators.back().second); m_ThumbnailGenerators.pop_back(); } - else - { - outputID = m_pDevice->MakeOutputWindow(CreateHeadlessWindowingData(width, height), false); - } + + outputID = m_pDevice->MakeOutputWindow(CreateHeadlessWindowingData(width, height), false); } else { // remove the found one, so it can get inserted into the front m_ThumbnailGenerators.erase(idx); } - // make this the most recent generator, so the oldest one will be kicked out + // make this the most recent generator, so the oldest one will be kicked out if we have too many m_ThumbnailGenerators.insert(0, {key, outputID}); bool depthMode = false;