D3D11 & D3D12 rebuild reflection when reloading shaders to match Vulkan

- Changing PDB search path will now reload all built shaders to get any newly found PDB data tracked and ready to be embedded into the RDC file
This commit is contained in:
Jake Turner committed 2026-10-23 13:01:28 +01:00
1 parent 2c84beae9b
commit fef0760490
2 files changed
+12

No files matched your search

@@ -159,6 +159,7 @@ void WrappedShader::ReloadShaderDebugInformation()
void WrappedShader::ShaderEntry::Reload()
{
bool wasBuilt = m_Built;
m_Built = false;
*m_Details = ShaderReflection();
m_Access.clear();
@@ -169,6 +170,11 @@ void WrappedShader::ShaderEntry::Reload()
m_Bytecode = m_DXBCFile->GetShaderBlob();
}
SAFE_DELETE(m_DXBCFile);
if(wasBuilt && (GetDXBC() != NULL))
{
BuildReflection();
m_Built = true;
}
}
UINT GetSubresourceCount(ID3D11Resource *res)
@@ -650,9 +650,15 @@ void WrappedID3D12PipelineState::ShaderEntry::ReloadShaderDebugInformation()
void WrappedID3D12PipelineState::ShaderEntry::Reload()
{
bool wasBuilt = m_Built;
m_Built = false;
*m_Details = ShaderReflection();
SAFE_DELETE(m_DXBCFile);
if(wasBuilt && (GetDXBC() != NULL))
{
BuildReflection();
m_Built = true;
}
}
rdcpair<uint32_t, uint32_t> FindMatchingRootParameter(const D3D12RootSignature &sig,