From 7b3e1cd3f6dd012690348c0cdb9d3aa00c5be578 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Sat, 8 Mar 2025 17:08:44 +0000 Subject: [PATCH] Free the debugger trace in multiple places during D3D12 shader tests --- util/test/tests/D3D12/D3D12_Shader_DebugData_Zoo.py | 5 ++--- util/test/tests/D3D12/D3D12_Shader_Debug_Zoo.py | 9 +++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/util/test/tests/D3D12/D3D12_Shader_DebugData_Zoo.py b/util/test/tests/D3D12/D3D12_Shader_DebugData_Zoo.py index 93ee3c4dc..2b90dfba0 100644 --- a/util/test/tests/D3D12/D3D12_Shader_DebugData_Zoo.py +++ b/util/test/tests/D3D12/D3D12_Shader_DebugData_Zoo.py @@ -89,6 +89,7 @@ class D3D12_Shader_DebugData_Zoo(rdtest.TestCase): cycles, variables = self.process_trace(trace) output = self.find_output_source_var(trace, rd.ShaderBuiltin.Undefined, 1) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) actual = debugged.value.u32v[0] expected = instId if not rdtest.value_compare(actual, expected): @@ -109,11 +110,8 @@ class D3D12_Shader_DebugData_Zoo(rdtest.TestCase): for test in range(action.numInstances): # Debug the shader trace: rd.ShaderDebugTrace = self.controller.DebugPixel(4 * test, 0, rd.DebugPixelInputs()) - cycles, variables = self.process_trace(trace) - output = self.find_output_source_var(trace, rd.ShaderBuiltin.ColorOutput, 0) - debugged = self.evaluate_source_var(output, variables) try: @@ -174,6 +172,7 @@ class D3D12_Shader_DebugData_Zoo(rdtest.TestCase): if cycles == 0: rdtest.log.error("Shader debug cycle count was zero") failed = True + self.controller.FreeTrace(trace) continue # Result is stored in RWStructuredBuffer bufOut : register(u0); diff --git a/util/test/tests/D3D12/D3D12_Shader_Debug_Zoo.py b/util/test/tests/D3D12/D3D12_Shader_Debug_Zoo.py index 7d8f54580..445f22f9f 100644 --- a/util/test/tests/D3D12/D3D12_Shader_Debug_Zoo.py +++ b/util/test/tests/D3D12/D3D12_Shader_Debug_Zoo.py @@ -39,6 +39,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): cycles, variables = self.process_trace(trace) output = self.find_output_source_var(trace, rd.ShaderBuiltin.Undefined, 3) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) actual = debugged.value.u32v[0] expected = instId if not rdtest.value_compare(actual, expected): @@ -65,6 +66,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): output = self.find_output_source_var(trace, rd.ShaderBuiltin.ColorOutput, 0) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) try: self.check_pixel_value(pipe.GetOutputTargets()[0].resource, 4 * test, 0, debugged.value.f32v[0:4]) @@ -75,8 +77,6 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): rdtest.log.error("Test {} did not match. {}".format(test, str(ex))) failed = True continue - finally: - self.controller.FreeTrace(trace) rdtest.log.success("Test {} matched as expected".format(test)) @@ -104,6 +104,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): output = self.find_output_source_var(trace, rd.ShaderBuiltin.ColorOutput, 0) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) # Validate the debug output result try: @@ -132,6 +133,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): cycles, variables = self.process_trace(trace) output = self.find_output_source_var(trace, rd.ShaderBuiltin.Undefined, 1) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) actual = debugged.value.f32v[0:4] expected = [0.3, 0.5, 0.8, 1.0] @@ -153,6 +155,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): cycles, variables = self.process_trace(trace) output = self.find_output_source_var(trace, rd.ShaderBuiltin.ColorOutput, 0) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) # Validate the debug output result try: @@ -180,6 +183,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): output = self.find_output_source_var(trace, rd.ShaderBuiltin.Position, 0) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) actual = debugged.value.f32v[0:4] expected = [-0.5, -0.5, 0.0, 1.0] @@ -200,6 +204,7 @@ class D3D12_Shader_Debug_Zoo(rdtest.TestCase): output = self.find_output_source_var(trace, rd.ShaderBuiltin.ColorOutput, 0) debugged = self.evaluate_source_var(output, variables) + self.controller.FreeTrace(trace) # Validate the debug output result try: