diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.h b/renderdoc/driver/shaders/dxil/dxil_bytecode.h index b45a60b70..e788f031e 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.h +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.h @@ -658,7 +658,7 @@ struct Constant : public ForwardReferencableValue if(flags & 0x10) return u32; // silently return 0 for NULL/Undef constants - if(flags & 0x06) + if(flags & 0x03) return 0U; RDCERR("Wrong type of constant being accessed"); return 0U; @@ -669,7 +669,7 @@ struct Constant : public ForwardReferencableValue if(flags & 0x10) return u64; // silently return 0 for NULL/Undef constants - if(flags & 0x06) + if(flags & 0x03) return 0U; RDCERR("Wrong type of constant being accessed"); return 0U; @@ -680,7 +680,7 @@ struct Constant : public ForwardReferencableValue if(flags & 0x10) return s64; // silently return 0 for NULL/Undef constants - if(flags & 0x06) + if(flags & 0x03) return 0; RDCERR("Wrong type of constant being accessed"); return 0U; diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index 392fae2f4..9353b3ec8 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -1875,7 +1875,10 @@ rdcstr Constant::toString(bool withType) const ret += ", "; if(withType) ret += type->inner->toString() + " "; - shaderValAppendToString(type, v, i, ret); + if(isCompound() && cast(members->at(i))->isUndef()) + ret += "undef"; + else + shaderValAppendToString(type, v, i, ret); } ret += ">"; }