From 944b38dc1fb5b906b170feb6bae562fae5b8c4e5 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 20 Jul 2023 14:39:15 +0100 Subject: [PATCH] Use innertype id to look up image type. Closes #2970 Fixes incorrect shader debugging for ImageFetch operation on arrays on buffers (and certain scenarios of arrays of textures). --- renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index 1735efe2c..038a720da 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -1257,11 +1257,13 @@ ShaderDebugTrace *Debugger::BeginDebug(DebugAPIWrapper *api, const ShaderStage s // sampler, so accessing the original type might be non-trivial at point of access uint32_t texType = DebugAPIWrapper::Float_Texture; - Id imgid = type.InnerType(); + Id imgid = innertype->id; if(innertype->type == DataType::SampledImageType) imgid = sampledImageTypes[imgid].baseId; + RDCASSERT(imageTypes[imgid].dim != Dim::Max); + if(imageTypes[imgid].dim == Dim::Buffer) texType |= DebugAPIWrapper::Buffer_Texture;