From 464016bc29f973e24ff1f070be48f42d41575263 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 10 May 2024 15:50:02 +0100 Subject: [PATCH] Fix unwrapping of collection objects during capture --- renderdoc/driver/d3d12/d3d12_common.cpp | 7 ++++--- renderdoc/driver/d3d12/d3d12_common.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_common.cpp b/renderdoc/driver/d3d12/d3d12_common.cpp index 0ab90ce46..be988a6f2 100644 --- a/renderdoc/driver/d3d12/d3d12_common.cpp +++ b/renderdoc/driver/d3d12/d3d12_common.cpp @@ -1232,7 +1232,7 @@ D3D12_UNWRAPPED_STATE_OBJECT_DESC::D3D12_UNWRAPPED_STATE_OBJECT_DESC( } unwrappedRootsigObjs.resize(numRoots); - collObjs.resize(numColls); + unwrappedCollObjs.resize(numColls); rebasedAssocs.reserve(numAssocs); for(size_t i = 0, r = 0, c = 0; i < subobjects.size(); i++) @@ -1247,8 +1247,9 @@ D3D12_UNWRAPPED_STATE_OBJECT_DESC::D3D12_UNWRAPPED_STATE_OBJECT_DESC( else if(subobjects[i].Type == D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION) { D3D12_EXISTING_COLLECTION_DESC *coll = (D3D12_EXISTING_COLLECTION_DESC *)subobjects[i].pDesc; - collObjs[c] = *coll; - collObjs[c].pExistingCollection = Unwrap(collObjs[c].pExistingCollection); + unwrappedCollObjs[c] = *coll; + unwrappedCollObjs[c].pExistingCollection = Unwrap(unwrappedCollObjs[c].pExistingCollection); + subobjects[i].pDesc = &unwrappedCollObjs[c++]; } else if(subobjects[i].Type == D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION) { diff --git a/renderdoc/driver/d3d12/d3d12_common.h b/renderdoc/driver/d3d12/d3d12_common.h index 28daa9cf5..7f42891ab 100644 --- a/renderdoc/driver/d3d12/d3d12_common.h +++ b/renderdoc/driver/d3d12/d3d12_common.h @@ -647,7 +647,7 @@ private: rdcarray subobjects; rdcarray unwrappedRootsigObjs; rdcarray rebasedAssocs; - rdcarray collObjs; + rdcarray unwrappedCollObjs; }; // expanded version of D3D12_GRAPHICS_PIPELINE_STATE_DESC / D3D12_COMPUTE_PIPELINE_STATE_DESC with