diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.h b/renderdoc/driver/shaders/dxil/dxil_bytecode.h index ed4c23675..b41e2cd97 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.h +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.h @@ -1513,7 +1513,6 @@ public: rdcarray GetEntryPoints(); void FillEntryPointInterfaces(); size_t GetInstructionCount() const; - rdcstr GetResourceReferenceName(ResourceClass resClass, const BindingSlot &slot) const; void FillRayPayloads( Program *executable, rdcflatmap> diff --git a/renderdoc/driver/shaders/dxil/dxil_common.h b/renderdoc/driver/shaders/dxil/dxil_common.h index 799667b3b..8f018ee5a 100644 --- a/renderdoc/driver/shaders/dxil/dxil_common.h +++ b/renderdoc/driver/shaders/dxil/dxil_common.h @@ -146,19 +146,6 @@ enum class SamplerFeedbackType : uint8_t MipRegionUsed = 1, LastEntry = 2 }; - -struct BindingSlot -{ - BindingSlot() : shaderRegister(UINT32_MAX), registerSpace(UINT32_MAX) {} - BindingSlot(uint32_t shaderReg, uint32_t regSpace) - : shaderRegister(shaderReg), registerSpace(regSpace) - { - } - - uint32_t shaderRegister; - uint32_t registerSpace; -}; - }; // namespace DXIL DECLARE_STRINGISE_TYPE(DXIL::ComponentType); diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.h b/renderdoc/driver/shaders/dxil/dxil_debug.h index 60c1a34c5..7420e2997 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.h +++ b/renderdoc/driver/shaders/dxil/dxil_debug.h @@ -30,6 +30,29 @@ namespace DXILDebug { +struct BindingSlot +{ + BindingSlot() : shaderRegister(UINT32_MAX), registerSpace(UINT32_MAX) {} + BindingSlot(uint32_t shaderReg, uint32_t regSpace) + : shaderRegister(shaderReg), registerSpace(regSpace) + { + } + BindingSlot(const DXIL::ResourceReference &resRef) + : shaderRegister(resRef.resourceBase.regBase), registerSpace(resRef.resourceBase.space) + { + } + + bool operator<(const BindingSlot &o) const + { + if(registerSpace != o.registerSpace) + return registerSpace < o.registerSpace; + return shaderRegister < o.shaderRegister; + } + + uint32_t shaderRegister; + uint32_t registerSpace; +}; + struct Debugger : public DXBCContainerDebugger { Debugger() : DXBCContainerDebugger(true){}; diff --git a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp index 7afd912bb..4e21d384a 100644 --- a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp @@ -1752,26 +1752,6 @@ void Program::GetLocals(const DXBC::DXBCContainer *dxbc, size_t instruction, uin locals.clear(); } -rdcstr Program::GetResourceReferenceName(ResourceClass resClass, const BindingSlot &slot) const -{ - for(const ResourceReference &resRef : m_ResourceReferences) - { - if(resRef.resourceBase.resClass != resClass) - continue; - if(resRef.resourceBase.space != slot.registerSpace) - continue; - if(resRef.resourceBase.regBase > slot.shaderRegister) - continue; - if(resRef.resourceBase.regBase + resRef.resourceBase.regCount < slot.shaderRegister) - continue; - - return resRef.handleID; - } - RDCERR("Failed to find DXIL %s Resource Space %d Register %d", ToStr(resClass).c_str(), - slot.registerSpace, slot.shaderRegister); - return "UNKNOWN_RESOURCE_HANDLE"; -} - const ResourceReference *Program::GetResourceReference(const rdcstr &handleStr) const { if(m_ResourceHandles.count(handleStr) > 0)