Ignore stream-out parameters if no stream-out is enabled on D3D12

This commit is contained in:
baldurk
2021-01-13 15:54:10 +00:00
parent ec50e9005a
commit edc0d1d46f
+31 -24
View File
@@ -132,22 +132,25 @@ bool WrappedID3D12Device::Serialise_CreatePipelineState(SerialiserType &ser,
memcpy((void *)wrapped->graphics->StreamOutput.pSODeclaration,
Descriptor.StreamOutput.pSODeclaration,
sizeof(D3D12_SO_DECLARATION_ENTRY) * wrapped->graphics->StreamOutput.NumEntries);
}
else
{
wrapped->graphics->StreamOutput.pSODeclaration = NULL;
}
if(wrapped->graphics->StreamOutput.NumStrides)
{
wrapped->graphics->StreamOutput.pBufferStrides =
new UINT[wrapped->graphics->StreamOutput.NumStrides];
memcpy((void *)wrapped->graphics->StreamOutput.pBufferStrides,
Descriptor.StreamOutput.pBufferStrides,
sizeof(UINT) * wrapped->graphics->StreamOutput.NumStrides);
if(wrapped->graphics->StreamOutput.NumStrides)
{
wrapped->graphics->StreamOutput.pBufferStrides =
new UINT[wrapped->graphics->StreamOutput.NumStrides];
memcpy((void *)wrapped->graphics->StreamOutput.pBufferStrides,
Descriptor.StreamOutput.pBufferStrides,
sizeof(UINT) * wrapped->graphics->StreamOutput.NumStrides);
}
else
{
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
}
}
else
{
wrapped->graphics->StreamOutput.NumEntries = 0;
wrapped->graphics->StreamOutput.NumStrides = 0;
wrapped->graphics->StreamOutput.pSODeclaration = NULL;
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
}
@@ -305,22 +308,26 @@ HRESULT WrappedID3D12Device::CreatePipelineState(const D3D12_PIPELINE_STATE_STRE
memcpy((void *)wrapped->graphics->StreamOutput.pSODeclaration,
expandedDesc.StreamOutput.pSODeclaration,
sizeof(D3D12_SO_DECLARATION_ENTRY) * wrapped->graphics->StreamOutput.NumEntries);
}
else
{
wrapped->graphics->StreamOutput.pSODeclaration = NULL;
}
if(wrapped->graphics->StreamOutput.NumStrides)
{
wrapped->graphics->StreamOutput.pBufferStrides =
new UINT[wrapped->graphics->StreamOutput.NumStrides];
memcpy((void *)wrapped->graphics->StreamOutput.pBufferStrides,
expandedDesc.StreamOutput.pBufferStrides,
sizeof(UINT) * wrapped->graphics->StreamOutput.NumStrides);
if(wrapped->graphics->StreamOutput.NumStrides)
{
wrapped->graphics->StreamOutput.pBufferStrides =
new UINT[wrapped->graphics->StreamOutput.NumStrides];
memcpy((void *)wrapped->graphics->StreamOutput.pBufferStrides,
expandedDesc.StreamOutput.pBufferStrides,
sizeof(UINT) * wrapped->graphics->StreamOutput.NumStrides);
}
else
{
wrapped->graphics->StreamOutput.NumStrides = 0;
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
}
}
else
{
wrapped->graphics->StreamOutput.NumStrides = 0;
wrapped->graphics->StreamOutput.NumEntries = 0;
wrapped->graphics->StreamOutput.pSODeclaration = NULL;
wrapped->graphics->StreamOutput.pBufferStrides = NULL;
}