From c69d482f66cb5873bad82a35a8d291f661236139 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 8 Oct 2025 16:08:43 +0100 Subject: [PATCH] Remove race from D3D12 Shader Debug Zoo Interlocked tests --- .../demos/d3d12/d3d12_shader_debug_zoo.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp b/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp index 366206f4f..da646d8c9 100644 --- a/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_shader_debug_zoo.cpp @@ -224,7 +224,6 @@ float4 main(v2f IN) : SV_Target0 float tiny = IN.tinyVal; int intval = IN.intval; - int pixId = IN.s.x + 3 * IN.s.y; if(IN.tri == 0) return float4(log(negone), log(zero), log(posone), 1.0f); @@ -799,7 +798,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 10 + pixId; + intbufrwtest[u] = 10; InterlockedAdd(intbufrwtest[u], value, original); InterlockedAdd(intbufrwtest[u], -value, original); return intbufrwtest[u]; @@ -809,7 +808,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 20 + pixId; + intbufrwtest[u] = 20; InterlockedAnd(intbufrwtest[u], value, original); return intbufrwtest[u]; } @@ -818,7 +817,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 30 + pixId; + intbufrwtest[u] = 30; InterlockedOr(intbufrwtest[u], value, original); return intbufrwtest[u]; } @@ -827,7 +826,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 40 + pixId; + intbufrwtest[u] = 40; InterlockedXor(intbufrwtest[u], value, original); InterlockedXor(intbufrwtest[u], value, original); return intbufrwtest[u]; @@ -837,7 +836,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 50 + pixId; + intbufrwtest[u] = 50; InterlockedMin(intbufrwtest[u], value, original); return intbufrwtest[u]; } @@ -846,7 +845,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 60 + pixId; + intbufrwtest[u] = 60; InterlockedMax(intbufrwtest[u], value, original); return intbufrwtest[u]; } @@ -855,7 +854,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 70 + pixId; + intbufrwtest[u] = 70; InterlockedExchange(intbufrwtest[u], value, original); return intbufrwtest[u]; } @@ -864,7 +863,7 @@ float4 main(v2f IN) : SV_Target0 int value = IN.tri; int original; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 80 + pixId; + intbufrwtest[u] = 80; InterlockedCompareExchange(intbufrwtest[u], value, value+1, original); return intbufrwtest[u]; } @@ -872,7 +871,7 @@ float4 main(v2f IN) : SV_Target0 { int value = IN.tri; int u = mad(3, (IN.tri - 85), 17); - intbufrwtest[u] = 90 + pixId; + intbufrwtest[u] = 90; InterlockedCompareStore(intbufrwtest[u], value, value+1); return intbufrwtest[u]; }