diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.h b/renderdoc/driver/shaders/dxil/dxil_bytecode.h index e4958bbd5..5f1b9032d 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.h +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.h @@ -41,6 +41,12 @@ namespace LLVMBC struct BlockOrRecord; }; +namespace DXILDebug +{ +class Debugger; +struct ThreadState; +}; + namespace DXIL { struct BumpAllocator @@ -1498,6 +1504,8 @@ struct ResourceReference class Program : public DXBC::IDebugInfo { + friend DXILDebug::Debugger; + friend DXILDebug::ThreadState; public: Program(const byte *bytes, size_t length); Program(const Program &o) = delete; @@ -1667,6 +1675,8 @@ bool getival(const Value *v, T &out) return false; } +bool isUndef(const Value *v); + }; // namespace DXIL DECLARE_REFLECTION_ENUM(DXIL::Attribute); diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.h b/renderdoc/driver/shaders/dxil/dxil_debug.h index 7420e2997..1e5d0670e 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.h +++ b/renderdoc/driver/shaders/dxil/dxil_debug.h @@ -30,6 +30,9 @@ namespace DXILDebug { +typedef rdcstr Id; +class Debugger; +struct GlobalState; struct BindingSlot { BindingSlot() : shaderRegister(UINT32_MAX), registerSpace(UINT32_MAX) {} @@ -53,8 +56,22 @@ struct BindingSlot uint32_t registerSpace; }; -struct Debugger : public DXBCContainerDebugger +class DebugAPIWrapper { +}; + +struct ThreadState +{ +}; + +struct GlobalState +{ + GlobalState() = default; +}; + +class Debugger : public DXBCContainerDebugger +{ +public: Debugger() : DXBCContainerDebugger(true){}; };