diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.h b/renderdoc/driver/shaders/dxil/dxil_bytecode.h index b7e1dae3d..50b22229a 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.h +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.h @@ -1092,10 +1092,12 @@ struct GlobalVar : public ForwardReferencableValue static constexpr ValueKind Kind = ValueKind::GlobalVar; GlobalVar() : ForwardReferencableValue(Kind) {} rdcstr name; - uint64_t align = 0; + const Constant *initialiser = NULL; + uint32_t align = 0; int32_t section = -1; GlobalFlags flags = GlobalFlags::NoFlags; - const Constant *initialiser = NULL; + // unique global ID used by the debugger and disassembly similar to Instruction member variable slot + uint32_t ssaId = ~0U; }; struct DIBase diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode_editor.cpp b/renderdoc/driver/shaders/dxil/dxil_bytecode_editor.cpp index c953f5d75..cfbb0a181 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode_editor.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode_editor.cpp @@ -598,7 +598,7 @@ bytebuf ProgramEditor::EncodeProgram() for(size_t i = 0; i < m_GlobalVars.size(); i++) { - cfg.maxAlign = RDCMAX(m_GlobalVars[i]->align, cfg.maxAlign); + cfg.maxAlign = RDCMAX((uint64_t)m_GlobalVars[i]->align, cfg.maxAlign); RDCASSERT(m_GlobalVars[i]->type->type == Type::Pointer); uint32_t typeIndex = uint32_t(getTypeID(m_GlobalVars[i]->type->inner)); cfg.maxGlobalType = RDCMAX(typeIndex, cfg.maxGlobalType);