Add D3D12 driver support for ReloadShaderDebugInformation()

This commit is contained in:
Jake Turner
2026-02-05 06:58:41 +13:00
parent 88c8de7841
commit c097a8b024
2 changed files with 21 additions and 0 deletions
@@ -637,6 +637,24 @@ void WrappedID3D12PipelineState::ShaderEntry::BuildReflection()
m_Details->resourceId = GetResourceID();
}
void WrappedID3D12PipelineState::ShaderEntry::ReloadShaderDebugInformation()
{
for(auto it = m_Shaders.begin(); it != m_Shaders.end(); ++it)
{
ShaderEntry *shad = it->second;
if(ResourceIDGen::IsReplayOnlyID(shad->GetResourceID()))
continue;
shad->Reload();
}
}
void WrappedID3D12PipelineState::ShaderEntry::Reload()
{
m_Built = false;
*m_Details = ShaderReflection();
SAFE_DELETE(m_DXBCFile);
}
rdcpair<uint32_t, uint32_t> FindMatchingRootParameter(const D3D12RootSignature &sig,
D3D12_SHADER_VISIBILITY visibility,
D3D12_DESCRIPTOR_RANGE_TYPE rangeType,
+3
View File
@@ -945,6 +945,8 @@ public:
return false;
}
static void ReloadShaderDebugInformation();
static void GetReflections(rdcarray<const ShaderReflection *> &refls)
{
refls.clear();
@@ -1010,6 +1012,7 @@ public:
private:
void BuildReflection();
void Reload();
DXBCKey m_Key;