Only try to fetch embedded implicit root signature from ShaderEntrys

This commit is contained in:
baldurk
2024-08-14 11:54:07 +01:00
parent 647313ae14
commit 304e636b4a
+8 -8
View File
@@ -490,8 +490,6 @@ bool WrappedID3D12Device::Serialise_CreateGraphicsPipelineState(
wrapped->graphics = new D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC(Descriptor);
wrapped->FetchRootSig(GetShaderCache());
D3D12_SHADER_BYTECODE *shaders[] = {
&wrapped->graphics->VS, &wrapped->graphics->HS, &wrapped->graphics->DS,
&wrapped->graphics->GS, &wrapped->graphics->PS,
@@ -524,6 +522,8 @@ bool WrappedID3D12Device::Serialise_CreateGraphicsPipelineState(
}
}
wrapped->FetchRootSig(GetShaderCache());
if(wrapped->graphics->InputLayout.NumElements)
{
wrapped->graphics->InputLayout.pInputElementDescs =
@@ -639,8 +639,6 @@ void WrappedID3D12Device::ProcessCreatedGraphicsPSO(ID3D12PipelineState *real,
wrapped->graphics = new D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC(*pDesc);
wrapped->FetchRootSig(GetShaderCache());
D3D12_SHADER_BYTECODE *shaders[] = {
&wrapped->graphics->VS, &wrapped->graphics->HS, &wrapped->graphics->DS,
&wrapped->graphics->GS, &wrapped->graphics->PS, &wrapped->graphics->AS,
@@ -664,6 +662,8 @@ void WrappedID3D12Device::ProcessCreatedGraphicsPSO(ID3D12PipelineState *real,
}
}
wrapped->FetchRootSig(GetShaderCache());
if(wrapped->graphics->InputLayout.NumElements)
{
wrapped->graphics->InputLayout.pInputElementDescs =
@@ -782,11 +782,11 @@ bool WrappedID3D12Device::Serialise_CreateComputePipelineState(
wrapped->compute = new D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC(Descriptor);
wrapped->FetchRootSig(GetShaderCache());
WrappedID3D12Shader *entry = WrappedID3D12Shader::AddShader(wrapped->compute->CS, this);
entry->AddRef();
wrapped->FetchRootSig(GetShaderCache());
if(m_GlobalEXTUAV != ~0U)
entry->SetShaderExtSlot(m_GlobalEXTUAV, m_GlobalEXTUAVSpace);
@@ -866,11 +866,11 @@ void WrappedID3D12Device::ProcessCreatedComputePSO(ID3D12PipelineState *real, ui
wrapped->compute = new D3D12_EXPANDED_PIPELINE_STATE_STREAM_DESC(*pDesc);
wrapped->FetchRootSig(GetShaderCache());
WrappedID3D12Shader *sh = WrappedID3D12Shader::AddShader(wrapped->compute->CS, this);
sh->AddRef();
wrapped->compute->CS.pShaderBytecode = sh;
wrapped->FetchRootSig(GetShaderCache());
}
*ppPipelineState = (ID3D12PipelineState *)wrapped;