From 811c6c6ecc7a741494b8390b0da3ea9e9ea8a6b8 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Fri, 23 Jan 2026 17:46:16 +1300 Subject: [PATCH] ShaderViewer uses GetShaderDebugVariable() when matching resource vars This matches how debug variables are matched This supports source mapping to resources which are a child member of a ShaderVariable i.e. an array element --- qrenderdoc/Windows/ShaderViewer.cpp | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/qrenderdoc/Windows/ShaderViewer.cpp b/qrenderdoc/Windows/ShaderViewer.cpp index 45c0ce874..6c120c97b 100644 --- a/qrenderdoc/Windows/ShaderViewer.cpp +++ b/qrenderdoc/Windows/ShaderViewer.cpp @@ -5408,27 +5408,15 @@ const ShaderVariable *ShaderViewer::GetDebugVariable(const DebugVariableReferenc { if(r.type == DebugVariableType::ReadOnlyResource) { - for(int i = 0; i < m_Trace->readOnlyResources.count(); i++) - if(m_Trace->readOnlyResources[i].name == r.name) - return &m_Trace->readOnlyResources[i]; - - return NULL; + return GetShaderDebugVariable(r.name, m_Trace->readOnlyResources); } else if(r.type == DebugVariableType::ReadWriteResource) { - for(int i = 0; i < m_Trace->readWriteResources.count(); i++) - if(m_Trace->readWriteResources[i].name == r.name) - return &m_Trace->readWriteResources[i]; - - return NULL; + return GetShaderDebugVariable(r.name, m_Trace->readWriteResources); } else if(r.type == DebugVariableType::Sampler) { - for(int i = 0; i < m_Trace->samplers.count(); i++) - if(m_Trace->samplers[i].name == r.name) - return &m_Trace->samplers[i]; - - return NULL; + return GetShaderDebugVariable(r.name, m_Trace->samplers); } else if(r.type == DebugVariableType::Input) {