mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Ensure view instancing array is properly copied in D3D12 pipeline desc
This commit is contained in:
@@ -141,6 +141,20 @@ bool WrappedID3D12Device::Serialise_CreatePipelineState(SerialiserType &ser,
|
||||
{
|
||||
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
|
||||
}
|
||||
|
||||
if(wrapped->graphics->ViewInstancing.ViewInstanceCount)
|
||||
{
|
||||
wrapped->graphics->ViewInstancing.pViewInstanceLocations =
|
||||
new D3D12_VIEW_INSTANCE_LOCATION[wrapped->graphics->ViewInstancing.ViewInstanceCount];
|
||||
memcpy((void *)wrapped->graphics->ViewInstancing.pViewInstanceLocations,
|
||||
Descriptor.ViewInstancing.pViewInstanceLocations,
|
||||
sizeof(D3D12_VIEW_INSTANCE_LOCATION) *
|
||||
wrapped->graphics->ViewInstancing.ViewInstanceCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
wrapped->graphics->ViewInstancing.pViewInstanceLocations = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
GetResourceManager()->AddLiveResource(pPipelineState, ret);
|
||||
@@ -265,6 +279,20 @@ HRESULT WrappedID3D12Device::CreatePipelineState(const D3D12_PIPELINE_STATE_STRE
|
||||
{
|
||||
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
|
||||
}
|
||||
|
||||
if(wrapped->graphics->ViewInstancing.ViewInstanceCount)
|
||||
{
|
||||
wrapped->graphics->ViewInstancing.pViewInstanceLocations =
|
||||
new D3D12_VIEW_INSTANCE_LOCATION[wrapped->graphics->ViewInstancing.ViewInstanceCount];
|
||||
memcpy((void *)wrapped->graphics->ViewInstancing.pViewInstanceLocations,
|
||||
expandedDesc.ViewInstancing.pViewInstanceLocations,
|
||||
sizeof(D3D12_VIEW_INSTANCE_LOCATION) *
|
||||
wrapped->graphics->ViewInstancing.ViewInstanceCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
wrapped->graphics->ViewInstancing.pViewInstanceLocations = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -801,6 +801,7 @@ public:
|
||||
SAFE_DELETE_ARRAY(graphics->InputLayout.pInputElementDescs);
|
||||
SAFE_DELETE_ARRAY(graphics->StreamOutput.pSODeclaration);
|
||||
SAFE_DELETE_ARRAY(graphics->StreamOutput.pBufferStrides);
|
||||
SAFE_DELETE_ARRAY(graphics->ViewInstancing.pViewInstanceLocations);
|
||||
|
||||
SAFE_DELETE(graphics);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user