diff --git a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp index dcbcbf9b3..7b427ad9a 100644 --- a/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_debug_setup.cpp @@ -1794,7 +1794,8 @@ void Debugger::CalcActiveMask(rdcarray &activeMask) rdcarray inConverge; inConverge.resize(activeMask.size()); for(size_t i = 0; i < workgroup.size(); i++) - inConverge[i] = (workgroup[i].callstack.back()->curBlock == convergeBlock); + inConverge[i] = (!workgroup[i].callstack.empty() && + workgroup[i].callstack.back()->curBlock == convergeBlock); // is any thread active, but not converged? bool anyActiveNotConverged = false;