diff --git a/util/test/rdtest/testcase.py b/util/test/rdtest/testcase.py index f0b021cae..7e66b5ab0 100644 --- a/util/test/rdtest/testcase.py +++ b/util/test/rdtest/testcase.py @@ -35,8 +35,20 @@ class ShaderVariableCheck: return self + def truncated(self): + if not (self.var.flags & rd.ShaderVariableFlags.Truncated): + raise TestFailureException(f"Variable {self.var.name} is not truncated") + + count = self.var.columns + if list(self.var.value.u32v[0:count]) != [0] * count: + raise TestFailureException(f"Truncated variable {self.var.name} doesn't have 0 values") + def value(self, value_: List[float] | List[int]): count = len(value_) + + if self.var.flags & rd.ShaderVariableFlags.Truncated: + raise TestFailureException(f"Variable {self.var.name} is truncated but we're checking its value") + if isinstance(value_[0], float): vals = [] if self.var.type == rd.VarType.Float: diff --git a/util/test/tests/D3D11/D3D11_Parameter_Zoo.py b/util/test/tests/D3D11/D3D11_Parameter_Zoo.py index 8591b02f7..53b5bf637 100644 --- a/util/test/tests/D3D11/D3D11_Parameter_Zoo.py +++ b/util/test/tests/D3D11/D3D11_Parameter_Zoo.py @@ -31,7 +31,7 @@ class D3D11_Parameter_Zoo(rdtest.TestCase): pipe.GetShaderEntryPoint(stage), 0, cbuf.resource, cbuf.byteOffset, cbuf.byteSize)) - var_check.check('cbuf_zero').rows(1).cols(4).value([0.0, 0.0, 0.0, 0.0]) + var_check.check('cbuf_zero').rows(1).cols(4).truncated() tex = rd.TextureDisplay() tex.overlay = rd.DebugOverlay.Drawcall diff --git a/util/test/tests/Vulkan/VK_Robustness2.py b/util/test/tests/Vulkan/VK_Robustness2.py index 242c72c16..a3172530c 100644 --- a/util/test/tests/Vulkan/VK_Robustness2.py +++ b/util/test/tests/Vulkan/VK_Robustness2.py @@ -89,7 +89,7 @@ class VK_Robustness2(rdtest.TestCase): cbuf.resource, cbuf.byteOffset, cbuf.byteSize)) if cb.bufferBacked: - var_check.check('data').type(rd.VarType.Float).rows(1).cols(4).value([0.0, 0.0, 0.0, 0.0]) + var_check.check('data').type(rd.VarType.Float).rows(1).cols(4).truncated() else: val = [0, 0, 0, 0] if self.find_action('robustBufferAccess2') is not None: