Tune the ShaderVariable consistency checks for resources

Do not check before/after equals existing value for ReadOnlyResource and ReadWriteResource
In the DXIL debugger for resources the same SSA ID might have different names
This commit is contained in:
Jake Turner
2025-11-11 10:37:32 +13:00
parent e2449b9eaf
commit c534b41eb6
2 changed files with 38 additions and 20 deletions
+24 -10
View File
@@ -2789,17 +2789,24 @@ void ShaderViewer::applyBackwardsChange()
if(v)
{
#if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
if(!ShaderVariableEqual(c.after, *v))
qCritical("ShaderVariableChange for '%s' after does not match existing entry",
c.before.name.c_str());
if(!(c.after.type == VarType::ReadOnlyResource || c.after.type == VarType::ReadWriteResource))
{
if(!ShaderVariableEqual(c.after, *v))
qCritical("ShaderVariableChange for '%s' after does not match existing entry",
c.before.name.c_str());
}
#endif // #if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
*v = c.before;
}
else
{
#if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
if(!(c.after == nullChange))
qCritical("ShaderVariableChange for '%s' does not have NULL after", c.before.name.c_str());
if(!(c.after.type == VarType::ReadOnlyResource || c.after.type == VarType::ReadWriteResource))
{
if(!(c.after == nullChange))
qCritical("ShaderVariableChange for '%s' does not have NULL after",
c.before.name.c_str());
}
#endif // #if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
m_Variables.insert(0, c.before);
}
@@ -2879,17 +2886,24 @@ void ShaderViewer::applyForwardsChange()
if(v)
{
#if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
if(!ShaderVariableEqual(c.before, *v))
qCritical("ShaderVariableChange for '%s' before does not match existing entry",
c.after.name.c_str());
if(!(c.after.type == VarType::ReadOnlyResource || c.after.type == VarType::ReadWriteResource))
{
if(!ShaderVariableEqual(c.before, *v))
qCritical("ShaderVariableChange for '%s' before does not match existing entry",
c.after.name.c_str());
}
#endif // #if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
*v = c.after;
}
else
{
#if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
if(!(c.before == nullChange))
qCritical("ShaderVariableChange for '%s' does not have NULL before", c.after.name.c_str());
if(!(c.after.type == VarType::ReadOnlyResource || c.after.type == VarType::ReadWriteResource))
{
if(!(c.before == nullChange) && c.before.type != VarType::ReadOnlyResource)
qCritical("ShaderVariableChange for '%s' does not have NULL before",
c.after.name.c_str());
}
#endif // #if SHADER_VARIABLE_CHANGE_CONSISTENCY_CHECKS
m_Variables.insert(0, c.after);
}