diff --git a/renderdoc/driver/d3d12/d3d12_replay.cpp b/renderdoc/driver/d3d12/d3d12_replay.cpp index 2d9a3dd93..465fc96ef 100644 --- a/renderdoc/driver/d3d12/d3d12_replay.cpp +++ b/renderdoc/driver/d3d12/d3d12_replay.cpp @@ -410,6 +410,9 @@ TextureDescription D3D12Replay::GetTexture(ResourceId id) rdcarray D3D12Replay::GetShaderEntryPoints(ResourceId shader) { + if(!WrappedID3D12Shader::IsShader(shader)) + return {}; + ID3D12DeviceChild *res = m_pDevice->GetResourceManager()->GetCurrentResource(shader); if(!res) diff --git a/renderdoc/driver/d3d12/d3d12_resources.h b/renderdoc/driver/d3d12/d3d12_resources.h index f42115102..22271cab3 100644 --- a/renderdoc/driver/d3d12/d3d12_resources.h +++ b/renderdoc/driver/d3d12/d3d12_resources.h @@ -714,6 +714,15 @@ public: shader->Release(); } + static bool IsShader(ResourceId id) + { + for(auto it = m_Shaders.begin(); it != m_Shaders.end(); ++it) + if(it->second->GetResourceID() == id) + return true; + + return false; + } + DXBCKey GetKey() { return m_Key; } D3D12_SHADER_BYTECODE GetDesc() {