From d46b29a916a17b00f9b1ef6998cd2437656b4473 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Fri, 20 Sep 2024 10:05:20 +0100 Subject: [PATCH] Added uint32_t ssaID to DXIL::GlobalVar Changed GlobalVar::align from uint64_t -> uint32_t to make space for the new member --- renderdoc/driver/shaders/dxil/dxil_bytecode.h | 6 ++++-- renderdoc/driver/shaders/dxil/dxil_bytecode_editor.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) 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);