From 10878bb5a9116280bca49291e7a0b563f653da3c Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 1 Sep 2020 16:39:19 +0100 Subject: [PATCH] Never clamp to an invalid index even for invalid inputs * This prevents a crash as at least index 0 is always a valid scalar lookup. --- renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index 2acb96342..d02830f26 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -45,7 +45,7 @@ static void ClampScalars(rdcspv::DebugAPIWrapper *apiWrapper, const ShaderVariab MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning, StringFormat::Fmt("Invalid scalar index %u at %u-vector %s. Clamping to %u", scalar0, var.columns, var.name.c_str(), var.columns - 1)); - scalar0 = var.columns - 1; + scalar0 = RDCMIN(0U, uint32_t(var.columns - 1)); } } @@ -58,7 +58,7 @@ static void ClampScalars(rdcspv::DebugAPIWrapper *apiWrapper, const ShaderVariab MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning, StringFormat::Fmt("Invalid scalar index %u at matrix %s with %u columns. Clamping to %u", scalar0, var.columns, var.name.c_str(), var.columns - 1)); - scalar0 = var.columns - 1; + scalar0 = RDCMIN(0U, uint32_t(var.columns - 1)); } if(scalar1 > var.rows && scalar1 != ~0U) { @@ -66,7 +66,7 @@ static void ClampScalars(rdcspv::DebugAPIWrapper *apiWrapper, const ShaderVariab MessageCategory::Execution, MessageSeverity::High, MessageSource::RuntimeWarning, StringFormat::Fmt("Invalid scalar index %u at matrix %s with %u rows. Clamping to %u", scalar1, var.rows, var.name.c_str(), var.rows - 1)); - scalar1 = var.rows - 1; + scalar1 = RDCMIN(0U, uint32_t(var.rows - 1)); } }