From 5ac9de0a20ee089f0ce2e6564de8eda166ac8d3a Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 9 May 2022 15:19:33 +0100 Subject: [PATCH] Show truncation in fixed variables explicitly instead of showing 0s --- qrenderdoc/Code/BufferFormatter.cpp | 9 +++++++++ renderdoc/api/replay/renderdoc_tostr.inl | 1 + renderdoc/api/replay/replay_enums.h | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/qrenderdoc/Code/BufferFormatter.cpp b/qrenderdoc/Code/BufferFormatter.cpp index 78eaed928..9247995a6 100644 --- a/qrenderdoc/Code/BufferFormatter.cpp +++ b/qrenderdoc/Code/BufferFormatter.cpp @@ -2430,6 +2430,7 @@ static void FillShaderVarData(ShaderVariable &var, const ShaderConstant &elem, c { var.name = elem.name; var.value = ShaderValue(); + var.flags |= ShaderVariableFlags::Truncated; return; } @@ -3120,6 +3121,14 @@ QString TypeString(const ShaderVariable &v) template static QString RowValuesToString(int cols, ShaderVariableFlags flags, el x, el y, el z, el w) { + if(flags & ShaderVariableFlags::Truncated) + { + QString ret = lit("---"); + for(int i = 1; i < cols; i++) + ret += lit(", ---"); + return ret; + } + const bool hex = bool(flags & ShaderVariableFlags::HexDisplay); if(bool(flags & ShaderVariableFlags::BinaryDisplay)) diff --git a/renderdoc/api/replay/renderdoc_tostr.inl b/renderdoc/api/replay/renderdoc_tostr.inl index c05b30c98..4ea2afe76 100644 --- a/renderdoc/api/replay/renderdoc_tostr.inl +++ b/renderdoc/api/replay/renderdoc_tostr.inl @@ -1124,6 +1124,7 @@ rdcstr DoStringise(const ShaderVariableFlags &el) STRINGISE_BITFIELD_CLASS_BIT(R10G10B10A2); STRINGISE_BITFIELD_CLASS_BIT(UNorm); STRINGISE_BITFIELD_CLASS_BIT(SNorm); + STRINGISE_BITFIELD_CLASS_BIT(Truncated); } END_BITFIELD_STRINGISE(); } diff --git a/renderdoc/api/replay/replay_enums.h b/renderdoc/api/replay/replay_enums.h index 6888d15ea..9c4b7e294 100644 --- a/renderdoc/api/replay/replay_enums.h +++ b/renderdoc/api/replay/replay_enums.h @@ -4311,6 +4311,10 @@ displayed .. data:: SNorm This value should be treated as signed normalised floating point values when interpreting. + +.. data:: Truncated + + This value was truncated when reading - the available range was exhausted. )"); enum class ShaderVariableFlags : uint32_t { @@ -4323,6 +4327,7 @@ enum class ShaderVariableFlags : uint32_t R10G10B10A2 = 0x0020, UNorm = 0x0040, SNorm = 0x0080, + Truncated = 0x0100, }; BITMASK_OPERATORS(ShaderVariableFlags);