mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-12 08:45:48 +00:00
DXIL Debugger foundation refactoring
Removed "rdcstr Program::GetResourceReferenceName(ResourceClass resClass, const BindingSlot &slot) const" Moved "DXIL::BindingSlot" to "DXILDebug::BindingSlot"
This commit is contained in:
@@ -1513,7 +1513,6 @@ public:
|
||||
rdcarray<ShaderEntryPoint> GetEntryPoints();
|
||||
void FillEntryPointInterfaces();
|
||||
size_t GetInstructionCount() const;
|
||||
rdcstr GetResourceReferenceName(ResourceClass resClass, const BindingSlot &slot) const;
|
||||
void FillRayPayloads(
|
||||
Program *executable,
|
||||
rdcflatmap<ShaderEntryPoint, rdcpair<DXBC::CBufferVariableType, DXBC::CBufferVariableType>>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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){};
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user