From bdd479a5d4d5e040338a9290c80d58faf6da9250 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 5 Dec 2024 11:32:20 +0000 Subject: [PATCH] Use RT indirect estimate directly --- renderdoc/driver/d3d12/d3d12_manager.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_manager.cpp b/renderdoc/driver/d3d12/d3d12_manager.cpp index a7aac603c..be6d5e5a4 100644 --- a/renderdoc/driver/d3d12/d3d12_manager.cpp +++ b/renderdoc/driver/d3d12/d3d12_manager.cpp @@ -38,7 +38,8 @@ #include "data/hlsl/hlsl_cbuffers.h" RDOC_CONFIG(uint32_t, D3D12_Debug_RT_IndirectEstimateOverride, 0, - "Override how many bytes are reserved for shader tables in each indirect ray dispatch"); + "Override how many bytes are reserved for shader tables in each indirect ray dispatch " + "(will be multiplied by MaxCommandCount)"); RDOC_CONFIG(uint32_t, D3D12_Debug_RT_MaxVertexIncrement, 1000, "Amount to add to the API-provided max vertex when building a BLAS with an index " "buffer, to account for incorrectly set values by application."); @@ -1687,7 +1688,7 @@ PatchedRayDispatch D3D12RTManager::PatchIndirectRayDispatch( uint32_t patchDataSize = RDCMAX(64U, 20 * 1024 * 1024 * MaxCommandCount); if(D3D12_Debug_RT_IndirectEstimateOverride() > 0) - patchDataSize = RDCMAX(patchDataSize, D3D12_Debug_RT_IndirectEstimateOverride()); + patchDataSize = D3D12_Debug_RT_IndirectEstimateOverride() * MaxCommandCount; m_GPUBufferAllocator.Alloc(D3D12GpuBufferHeapType::DefaultHeapWithUav, D3D12GpuBufferHeapMemoryFlag::Default, patchDataSize,