diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index 5e6b44f05..f9ad861fb 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -2030,28 +2030,35 @@ rdcstr Constant::toString(bool withType) const } else if(type->type == Type::Array) { - ret += "["; - for(size_t i = 0; i < members->size(); i++) + if(!members && !str.empty()) { - if(i > 0) - ret += ", "; - - if(Literal *l = cast(members->at(i))) - { - if(withType) - ret += type->inner->toString() + " "; - - ShaderValue v; - v.u64v[0] = l->literal; - - shaderValAppendToString(type->inner, v, 0, ret); - } - else - { - ret += members->at(i)->toString(withType); - } + ret += "c" + escapeString(str); + } + else + { + ret += "["; + for(size_t i = 0; i < members->size(); i++) + { + if(i > 0) + ret += ", "; + + if(Literal *l = cast(members->at(i))) + { + if(withType) + ret += type->inner->toString() + " "; + + ShaderValue v; + v.u64v[0] = l->literal; + + shaderValAppendToString(type->inner, v, 0, ret); + } + else + { + ret += members->at(i)->toString(withType); + } + } + ret += "]"; } - ret += "]"; } else if(type->type == Type::Struct) {