From 537a19f63924a7dce3d83873d67167e7e13a7d2e Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 2 Dec 2024 13:54:45 +0000 Subject: [PATCH] Verify callable shaders (assuming anyone ever uses them) --- renderdoc/driver/d3d12/d3d12_manager.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_manager.cpp b/renderdoc/driver/d3d12/d3d12_manager.cpp index 9d2878117..99bba7220 100644 --- a/renderdoc/driver/d3d12/d3d12_manager.cpp +++ b/renderdoc/driver/d3d12/d3d12_manager.cpp @@ -841,6 +841,19 @@ void D3D12RTManager::Verify(PatchedRayDispatch &r) resHeap, sampHeap); } + if(r.desc.CallableShaderTable.StartAddress) + { + if(r.desc.CallableShaderTable.StrideInBytes == 0) + r.desc.CallableShaderTable.StrideInBytes = r.desc.CallableShaderTable.SizeInBytes; + for(UINT64 i = 0; + i < r.desc.CallableShaderTable.SizeInBytes / r.desc.CallableShaderTable.StrideInBytes; i++) + VerifyRecord(r.desc.CallableShaderTable.StrideInBytes, + data + callOffs + r.desc.CallableShaderTable.StrideInBytes * i, + data + r.resources.patchScratchBuffer->Size() + callOffs + + r.desc.CallableShaderTable.StrideInBytes * i, + resHeap, sampHeap); + } + r.resources.readbackBuffer->Unmap(); }