From 742886b1b6496662eddbbdf5e581896d42607982 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Tue, 23 Jul 2024 10:32:48 +0100 Subject: [PATCH] Handle OpAccessChain with zero indexes in SPIRV Reflection It is legal to have zero indexes --- renderdoc/driver/shaders/spirv/spirv_reflect.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp index bac3f9051..13464cedc 100644 --- a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp @@ -1128,8 +1128,10 @@ void Reflector::MakeReflection(const GraphicsAPI sourceAPI, const ShaderStage st if(topLevelChildChain.find(access.base) != topLevelChildChain.end()) globalId = topLevelChildChain[access.base]; - usedStructChildren[globalId].insert( - EvaluateConstant(access.indexes[0], specInfo).value.u32v[0]); + // It is legal to have zero indexes + if(!access.indexes.empty()) + usedStructChildren[globalId].insert( + EvaluateConstant(access.indexes[0], specInfo).value.u32v[0]); } }