From a8e92eeb6a8e1481f2650d27d13283bf9d2c8521 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Tue, 28 Oct 2025 15:24:05 +0000 Subject: [PATCH] DXIL DXOp::UMin/UMax fix incorrect assert --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 8fc47527d..e98c2edd3 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -159,6 +159,11 @@ static bool IsUnsignedIntegerType(VarType type) } } +static bool IsIntegerType(VarType type) +{ + return IsSignedIntegerType(type) || IsUnsignedIntegerType(type); +} + static bool IsEncodedPointer(const ShaderVariable &var) { if(var.type != VarType::GPUPointer) @@ -2875,7 +2880,8 @@ bool ThreadState::ExecuteInstruction(const rdcarray &workgroup) ShaderVariable b; RDCASSERT(GetShaderVariable(inst.args[1], opCode, dxOpCode, a)); RDCASSERT(GetShaderVariable(inst.args[2], opCode, dxOpCode, b)); - RDCASSERT(IsUnsignedIntegerType(a.type)); + // LLVM does not make unsigned types + RDCASSERT(IsIntegerType(a.type)); RDCASSERTEQUAL(a.type, b.type); RDCASSERTEQUAL(result.type, a.type); const uint32_t c = 0;