Ignore swizzles on resources and ensure no OOB swizzles are processed

This commit is contained in:
baldurk
2026-07-01 11:17:07 +01:00
parent 30daa3833a
commit 2fc0bc04cb
+11
View File
@@ -3499,6 +3499,7 @@ const RDTreeWidgetItem *ShaderViewer::evaluateVar(const RDTreeWidgetItem *item,
}
else
{
// out of bounds swizzle
return NULL;
}
}
@@ -3625,7 +3626,12 @@ const RDTreeWidgetItem *ShaderViewer::evaluateVar(const RDTreeWidgetItem *item,
if(ret.type == VarType::Sampler || ret.type == VarType::ReadOnlyResource ||
ret.type == VarType::ReadWriteResource)
{
dataSize = 16;
// ignore swizzle for resources - some representations like DXBC will generate these for
// instructions but it's not a 'real' swizzle to evaluate
swizzle = ~0U;
}
// only support swizzling on vectors
if(swizzle != ~0U && (ret.rows > 1 || mapping.variables.size() > 4))
@@ -3650,6 +3656,11 @@ const RDTreeWidgetItem *ShaderViewer::evaluateVar(const RDTreeWidgetItem *item,
{
ret.columns = i + 1;
}
else
{
// out of bounds swizzle
return NULL;
}
}
const DebugVariableReference &r = mapping.variables[swiz_i];