diff --git a/tests/hlsl/compute.shader_test b/tests/hlsl/compute.shader_test index d9e77ff29..cc6d6bbe6 100644 --- a/tests/hlsl/compute.shader_test +++ b/tests/hlsl/compute.shader_test @@ -19,4 +19,4 @@ void main() [test] dispatch 1 1 1 -probe uav 0 (0, 0) r (-123.0) +probe uav 0 (0, 0) f32(-123.0) diff --git a/tests/hlsl/depth-bounds.shader_test b/tests/hlsl/depth-bounds.shader_test index fcaac1266..8011b6216 100644 --- a/tests/hlsl/depth-bounds.shader_test +++ b/tests/hlsl/depth-bounds.shader_test @@ -37,29 +37,29 @@ depth greater equal clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 0.0 draw quad -probe (0, 0) rgba(0, 0, 0, 0) -probe uav 1 (0) r(0.0) +probe (0, 0) f32(0, 0, 0, 0) +probe uav 1 (0) f32(0.0) clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 0.3 draw quad -probe (0, 0) rgba(1, 1, 1, 1) -probe uav 1 (0) r(1.0) +probe (0, 0) f32(1, 1, 1, 1) +probe uav 1 (0) f32(1.0) clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 0.5 draw quad -probe (0, 0) rgba(1, 1, 1, 1) -probe uav 1 (0) r(1.0) +probe (0, 0) f32(1, 1, 1, 1) +probe uav 1 (0) f32(1.0) clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 0.6 draw quad -probe (0, 0) rgba(1, 1, 1, 1) -probe uav 1 (0) r(1.0) +probe (0, 0) f32(1, 1, 1, 1) +probe uav 1 (0) f32(1.0) clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 1.0 draw quad -probe (0, 0) rgba(0, 0, 0, 0) -probe uav 1 (0) r(0.0) +probe (0, 0) f32(0, 0, 0, 0) +probe uav 1 (0) f32(0.0) diff --git a/tests/hlsl/depth-out.shader_test b/tests/hlsl/depth-out.shader_test index 9f99ff78d..00395ab36 100644 --- a/tests/hlsl/depth-out.shader_test +++ b/tests/hlsl/depth-out.shader_test @@ -17,22 +17,22 @@ uniform 0 float 0.0 clear dsv 1.0 depth less draw quad -probe dsv (0,0) r (0.0) +probe dsv (0,0) f32(0.0) uniform 0 float 0.75 clear dsv 1.0 draw quad -probe dsv (0,0) r (0.75) +probe dsv (0,0) f32(0.75) clear dsv 0.5 depth greater draw quad -probe dsv (0,0) r (0.75) +probe dsv (0,0) f32(0.75) depth less clear dsv 0.5 draw quad -probe dsv (0,0) r (0.5) +probe dsv (0,0) f32(0.5) [require] @@ -66,15 +66,15 @@ clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 depth greater equal todo(sm<6) draw quad -probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0) -probe dsv (0,0) r (0.75) +probe (0, 0) f32(0.0, 1.0, 0.0, 1.0) +probe dsv (0,0) f32(0.75) uniform 0 float4 0.75 0.375 0.0 0.0 clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 todo(sm<6) draw quad -probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) -probe dsv (0,0) r (0.5) +probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) +probe dsv (0,0) f32(0.5) [pixel shader todo] @@ -92,19 +92,19 @@ clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 depth greater equal todo(sm<6) draw quad -probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0) -probe dsv (0,0) r (0.75) +probe (0, 0) f32(0.0, 1.0, 0.0, 1.0) +probe dsv (0,0) f32(0.75) uniform 0 float4 0.375 0.625 0.0 0.0 clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 todo(sm<6) draw quad -probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0) -probe dsv (0,0) r (0.625) +probe (0, 0) f32(0.0, 1.0, 0.0, 1.0) +probe dsv (0,0) f32(0.625) uniform 0 float4 0.375 0.375 0.0 0.0 clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 todo(sm<6) draw quad -probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) -probe dsv (0,0) r (0.5) +probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) +probe dsv (0,0) f32(0.5) diff --git a/tests/hlsl/discard.shader_test b/tests/hlsl/discard.shader_test index ae55fc42a..b2a1d5da0 100644 --- a/tests/hlsl/discard.shader_test +++ b/tests/hlsl/discard.shader_test @@ -11,10 +11,10 @@ float4 main() : sv_target [test] uniform 0 float4 1 2 3 4 todo(sm<4 | glsl) draw quad -probe (0, 0) rgba (1, 2, 3, 4) +probe (0, 0) f32(1, 2, 3, 4) uniform 0 float4 9 8 7 6 todo(sm<4 | glsl) draw quad -probe (0, 0) rgba (1, 2, 3, 4) +probe (0, 0) f32(1, 2, 3, 4) [require] shader model >= 3.0 @@ -31,14 +31,14 @@ float4 main(float4 pos : sv_position) : sv_target [test] todo(sm<4 | glsl | msl) draw quad -probe (0, 0) rgba (1, 0, 0, 1) -probe (1, 0) rgba (1, 2, 3, 4) -probe (0, 1) rgba (1, 2, 3, 4) -probe (1, 1) rgba (1, 0, 0, 1) -probe (2, 0) rgba (1, 0, 0, 1) -probe (3, 0) rgba (1, 2, 3, 4) -probe (2, 1) rgba (1, 2, 3, 4) -probe (3, 1) rgba (1, 0, 0, 1) +probe (0, 0) f32(1, 0, 0, 1) +probe (1, 0) f32(1, 2, 3, 4) +probe (0, 1) f32(1, 2, 3, 4) +probe (1, 1) f32(1, 0, 0, 1) +probe (2, 0) f32(1, 0, 0, 1) +probe (3, 0) f32(1, 2, 3, 4) +probe (2, 1) f32(1, 2, 3, 4) +probe (3, 1) f32(1, 0, 0, 1) [require] shader model >= 5.0 @@ -69,11 +69,11 @@ float4 main(float4 pos : sv_position) : sv_target [test] uniform 0 float4 1 2 3 4 todo(glsl) draw quad -probe (0, 0) rgba (1, 2, 3, 4) -probe uav 1 (0, 0) r (1.0) -probe uav 1 (1, 0) r (1.0) +probe (0, 0) f32(1, 2, 3, 4) +probe uav 1 (0, 0) f32(1.0) +probe uav 1 (1, 0) f32(1.0) uniform 0 float4 9 8 7 6 todo(glsl) draw quad -probe (0, 0) rgba (1, 2, 3, 4) -probe uav 1 (0, 0) r (2.0) -probe uav 1 (1, 0) r (1.0) +probe (0, 0) f32(1, 2, 3, 4) +probe uav 1 (0, 0) f32(2.0) +probe uav 1 (1, 0) f32(1.0) diff --git a/tests/hlsl/early-depth-stencil.shader_test b/tests/hlsl/early-depth-stencil.shader_test index 69529f134..78f703c50 100644 --- a/tests/hlsl/early-depth-stencil.shader_test +++ b/tests/hlsl/early-depth-stencil.shader_test @@ -27,5 +27,5 @@ depth greater equal clear rtv 0 0.0 0.0 0.0 0.0 clear dsv 0.5 todo(msl) draw quad -probe (0, 0) rgba(0, 0, 0, 0) -probe uav 1 (0) r(0.0) +probe (0, 0) f32(0, 0, 0, 0) +probe uav 1 (0) f32(0.0) diff --git a/tests/hlsl/function-overload.shader_test b/tests/hlsl/function-overload.shader_test index 882d2bdbe..b08839529 100644 --- a/tests/hlsl/function-overload.shader_test +++ b/tests/hlsl/function-overload.shader_test @@ -38,7 +38,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba (0.1, 0.2, 0.1, 0.2) +probe (0, 0) f32(0.1, 0.2, 0.1, 0.2) [pixel shader fail todo] @@ -79,7 +79,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(1.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(1.0, 2.0, 2.0, 2.0) % float and float1 can be defined separately... @@ -195,7 +195,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(1.0, 1.0, 1.0, 1.0) +probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) % Component type narrowing is preferred over component count narrowing. [pixel shader] @@ -209,7 +209,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(1.0, 1.0, 1.0, 1.0) +probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) % Let C be the common type that would be produced in an arithmetic expression % between the parameter and argument types. If C is the same as the parameter, the @@ -237,7 +237,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(0.0, 0.0, 0.0, 0.0) +probe (0, 0) f32(0.0, 0.0, 0.0, 0.0) % Let C be the common type that would be produced in an arithmetic expression % between the parameter and argument types. If C is the same as the argument, @@ -299,7 +299,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Let C be the common type that would be produced in an arithmetic expression % between the parameter and argument types. If C is "int" and the parameter is "uint", the @@ -326,7 +326,7 @@ float4 main() : sv_target [test] draw quad -todo(sm<6) probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +todo(sm<6) probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Same as above. @@ -349,7 +349,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % An exact match is preferred for minimum precision types as well. [pixel shader todo] @@ -363,7 +363,7 @@ float4 main() : sv_target [test] todo(sm<6) draw quad -probe (0, 0) rgba(1.0, 1.0, 1.0, 1.0) +probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) [require] % Need SM5 for doubles. @@ -395,7 +395,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Component type widening is preferred over component type narrowing. [pixel shader] @@ -409,7 +409,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Component count widening is preferred over component type narrowing. [pixel shader] @@ -423,7 +423,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Component count widening is preferred over component type class conversion. [pixel shader] @@ -437,7 +437,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Let C be the common type that would be produced in an arithmetic expression % between the parameter and argument types. If C has the same base type as the argument, % but with more components, it is preferred over all other cases. @@ -466,7 +466,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(2.0) +probe (0, 0) f32(2.0) [pixel shader] float func(uint4 x, double y) @@ -489,7 +489,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(1.0) +probe (0, 0) f32(1.0) [pixel shader] float func(uint4 x, double y) @@ -512,7 +512,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(1.0) +probe (0, 0) f32(1.0) [pixel shader] float func(half4 x, half y, half z, half a) @@ -535,7 +535,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(1.0) +probe (0, 0) f32(1.0) [require] % Reset @@ -559,7 +559,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(2.0, 2.0, 2.0, 2.0) +probe (0, 0) f32(2.0, 2.0, 2.0, 2.0) % Some matrices are implicitly compatible with vectors and will ambiguate with them. @@ -681,7 +681,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) rgba(42.0, 42.0, 42.0, 42.0) +probe (0, 0) f32(42.0, 42.0, 42.0, 42.0) [pixel shader] float func(float x, float y) @@ -703,7 +703,7 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(2.0) +probe (0, 0) f32(2.0) [pixel shader] float func(float3 a, float3 b, float3 c, float3 d) @@ -725,4 +725,4 @@ float4 main() : sv_target [test] draw quad -probe (0, 0) r(1.0) +probe (0, 0) f32(1.0) diff --git a/tests/hlsl/matrix-semantics.shader_test b/tests/hlsl/matrix-semantics.shader_test index b9efed53d..4a9773987 100644 --- a/tests/hlsl/matrix-semantics.shader_test +++ b/tests/hlsl/matrix-semantics.shader_test @@ -9,7 +9,7 @@ float4x1 main() : sv_target [test] draw quad -probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) +probe (0, 0) f32(1.0, 2.0, 3.0, 4.0) [pixel shader] row_major float1x4 main() : sv_target @@ -19,7 +19,7 @@ row_major float1x4 main() : sv_target [test] draw quad -probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) +probe (0, 0) f32(1.0, 2.0, 3.0, 4.0) [rtv 0] format r32-float @@ -45,10 +45,10 @@ row_major float4x1 main() : sv_target [test] todo(sm>=6) draw quad -probe rtv 0 (0,0) r (1.0) -probe rtv 1 (0,0) r (2.0) -probe rtv 2 (0,0) r (3.0) -probe rtv 3 (0,0) r (4.0) +probe rtv 0 (0,0) f32(1.0) +probe rtv 1 (0,0) f32(2.0) +probe rtv 2 (0,0) f32(3.0) +probe rtv 3 (0,0) f32(4.0) [pixel shader fail(sm>=6)] float1x4 main() : sv_target @@ -58,10 +58,10 @@ float1x4 main() : sv_target [test] todo(sm>=6) draw quad -probe rtv 0 (0,0) r (1.0) -probe rtv 1 (0,0) r (2.0) -probe rtv 2 (0,0) r (3.0) -probe rtv 3 (0,0) r (4.0) +probe rtv 0 (0,0) f32(1.0) +probe rtv 1 (0,0) f32(2.0) +probe rtv 2 (0,0) f32(3.0) +probe rtv 3 (0,0) f32(4.0) [pixel shader fail] void main(out float1x2 x : sv_target0, out float1x2 y : sv_target1) @@ -79,10 +79,10 @@ void main(out float1x2 x : sv_target0, out float1x2 y : sv_target2) [test] todo(sm>=6) draw quad -probe rtv 0 (0,0) r (1.0) -probe rtv 1 (0,0) r (2.0) -probe rtv 2 (0,0) r (5.0) -probe rtv 3 (0,0) r (6.0) +probe rtv 0 (0,0) f32(1.0) +probe rtv 1 (0,0) f32(2.0) +probe rtv 2 (0,0) f32(5.0) +probe rtv 3 (0,0) f32(6.0) [rtv 0] format r32g32b32a32-float @@ -97,6 +97,6 @@ void main(out row_major float1x4 x : sv_target0, out float1x2 y : sv_target1) [test] todo(sm>=6) draw quad -probe rtv 0 (0,0) rgba (1.0, 2.0, 3.0, 4.0) -probe rtv 1 (0,0) r (5.0) -probe rtv 2 (0,0) r (6.0) +probe rtv 0 (0,0) f32(1.0, 2.0, 3.0, 4.0) +probe rtv 1 (0,0) f32(5.0) +probe rtv 2 (0,0) f32(6.0) diff --git a/tests/hlsl/numthreads.shader_test b/tests/hlsl/numthreads.shader_test index 001158c5c..5e906b953 100644 --- a/tests/hlsl/numthreads.shader_test +++ b/tests/hlsl/numthreads.shader_test @@ -220,9 +220,9 @@ void main(uint2 id : sv_dispatchthreadid) [test] dispatch 1 1 1 -probe uav 0 (0, 0) r (2.0) -if(sm<6) probe uav 0 (0, 1) r (1.0) -if(sm<6) probe uav 0 (1, 0) r (2.0) -probe uav 0 (1, 1) r (1.0) -if(sm>=6) probe uav 0 (0, 1) r (2.0) -if(sm>=6) probe uav 0 (1, 0) r (1.0) +probe uav 0 (0, 0) f32(2.0) +if(sm<6) probe uav 0 (0, 1) f32(1.0) +if(sm<6) probe uav 0 (1, 0) f32(2.0) +probe uav 0 (1, 1) f32(1.0) +if(sm>=6) probe uav 0 (0, 1) f32(2.0) +if(sm>=6) probe uav 0 (1, 0) f32(1.0) diff --git a/tests/hlsl/rt-format-mismatch.shader_test b/tests/hlsl/rt-format-mismatch.shader_test index b4fc507be..912b3413b 100644 --- a/tests/hlsl/rt-format-mismatch.shader_test +++ b/tests/hlsl/rt-format-mismatch.shader_test @@ -50,7 +50,7 @@ float2 main() : sv_target [test] draw quad -probe (0, 0) rg (22.0, -22.0) +probe (0, 0) f32(22.0, -22.0) [rtv 0] format r32g32b32a32-uint @@ -94,7 +94,7 @@ float2 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) rg (22.0, -22.0) +todo(mvk) probe (0, 0) f32(22.0, -22.0) [rtv 0] format r32g32b32a32-sint @@ -138,7 +138,7 @@ float2 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) rg (22.0, -22.0) +todo(mvk) probe (0, 0) f32(22.0, -22.0) [rtv 0] format r32-uint @@ -152,7 +152,7 @@ float4 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) r (22.0) +todo(mvk) probe (0, 0) f32(22.0) [pixel shader] uint4 main() : sv_target @@ -182,7 +182,7 @@ float2 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) r (22.0) +todo(mvk) probe (0, 0) f32(22.0) % For the avoidance of doubt, 64 bit types cannot be used as target outputs. diff --git a/tests/hlsl/sm6-uav-rwtexture.shader_test b/tests/hlsl/sm6-uav-rwtexture.shader_test index 96f9abc36..a9b4136e4 100644 --- a/tests/hlsl/sm6-uav-rwtexture.shader_test +++ b/tests/hlsl/sm6-uav-rwtexture.shader_test @@ -27,7 +27,7 @@ float4 main() : sv_target [test] draw quad -probe uav 1 (0, 0) rgba (1.0, 2.0, 3.0, 4.0) +probe uav 1 (0, 0) f32(1.0, 2.0, 3.0, 4.0) [pixel shader fail] Texture2D u; @@ -54,11 +54,11 @@ float4 main() : sv_target [test] draw quad -probe uav 0 (0, 0) r (0.5) -probe uav 0 (0, 1) r (0.6) -probe uav 0 (1, 0) r (0.2) -probe uav 0 (1, 1) r (0.7) -probe uav 1 (0, 0) rgba (2.0, 1.0, 4.0, 3.0) +probe uav 0 (0, 0) f32(0.5) +probe uav 0 (0, 1) f32(0.6) +probe uav 0 (1, 0) f32(0.2) +probe uav 0 (1, 1) f32(0.7) +probe uav 1 (0, 0) f32(2.0, 1.0, 4.0, 3.0) [uav 2] @@ -77,7 +77,7 @@ float4 main() : sv_target1 [test] draw quad -probe uav 2 (0, 0) rgba (0.9, 0.8, 0.7, 0.6) +probe uav 2 (0, 0) f32(0.9, 0.8, 0.7, 0.6) % Uppercase register set name [pixel shader] @@ -91,7 +91,7 @@ float4 main() : sv_target1 [test] draw quad -probe uav 2 (0, 0) rgba (0.9, 0.8, 0.7, 0.6) +probe uav 2 (0, 0) f32(0.9, 0.8, 0.7, 0.6) % Test that we can declare and use an array of UAVs. @@ -117,8 +117,8 @@ float4 main() : sv_target1 [test] todo(mvk) draw quad -probe uav 1 (0, 0) rgba (1.1, 1.2, 1.3, 1.4) -probe uav 2 (0, 0) rgba (2.1, 2.2, 2.3, 2.4) +probe uav 1 (0, 0) f32(1.1, 1.2, 1.3, 1.4) +probe uav 2 (0, 0) f32(2.1, 2.2, 2.3, 2.4) % RWTexture1D types [pixel shader] diff --git a/tests/hlsl/tgsm.shader_test b/tests/hlsl/tgsm.shader_test index ea810f759..6865aeaa7 100644 --- a/tests/hlsl/tgsm.shader_test +++ b/tests/hlsl/tgsm.shader_test @@ -192,14 +192,14 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID, [test] uniform 0 uint 1 todo(sm<6) dispatch 2 1 1 -probe uav 1 (0) r (0.0) -probe uav 1 (1) r (0.0) -probe uav 1 (2) r (0.0) -probe uav 1 (3) r (0.0) -probe uav 1 (4) r (1.0) -probe uav 1 (5) r (2.0) -probe uav 1 (6) r (3.0) -probe uav 1 (7) r (4.0) +probe uav 1 (0) f32(0.0) +probe uav 1 (1) f32(0.0) +probe uav 1 (2) f32(0.0) +probe uav 1 (3) f32(0.0) +probe uav 1 (4) f32(1.0) +probe uav 1 (5) f32(2.0) +probe uav 1 (6) f32(3.0) +probe uav 1 (7) f32(4.0) probe uav 2 (0) i32(8) probe uav 2 (1) i32(4) probe uav 2 (2) i32(0) diff --git a/tests/hlsl/uav-load.shader_test b/tests/hlsl/uav-load.shader_test index febbb800c..0b534e16a 100644 --- a/tests/hlsl/uav-load.shader_test +++ b/tests/hlsl/uav-load.shader_test @@ -25,7 +25,7 @@ void main() [test] dispatch 1 1 1 -probe uav 0 (0, 0) r (0.6) -probe uav 0 (1, 0) r (0.6) -probe uav 0 (2, 0) r (0.6) -probe uav 1 (0, 0) r (0.5) +probe uav 0 (0, 0) f32(0.6) +probe uav 0 (1, 0) f32(0.6) +probe uav 0 (2, 0) f32(0.6) +probe uav 1 (0, 0) f32(0.5) diff --git a/tests/hlsl/uav-out-param.shader_test b/tests/hlsl/uav-out-param.shader_test index 4bfe8b377..8b543133b 100644 --- a/tests/hlsl/uav-out-param.shader_test +++ b/tests/hlsl/uav-out-param.shader_test @@ -27,7 +27,7 @@ void main() [test] todo(msl) dispatch 1 1 1 -probe uav 0 (0, 0) rgba (0.4, 0.1, 0.2, 0.3) +probe uav 0 (0, 0) f32(0.4, 0.1, 0.2, 0.3) [uav 0] format r32-float @@ -52,4 +52,4 @@ void main() [test] todo(msl) dispatch 1 1 1 -probe uav 0 (0, 0) r (0.2) +probe uav 0 (0, 0) f32(0.2) diff --git a/tests/hlsl/uav-rwbuffer.shader_test b/tests/hlsl/uav-rwbuffer.shader_test index 627287444..dc5d0d703 100644 --- a/tests/hlsl/uav-rwbuffer.shader_test +++ b/tests/hlsl/uav-rwbuffer.shader_test @@ -204,7 +204,7 @@ float4 main() : sv_target1 [test] todo(msl) draw quad -probe uav 2 (0) rgba (11.1, 12.2, 13.3, 14.4) +probe uav 2 (0) f32(11.1, 12.2, 13.3, 14.4) [require] shader model >= 6.2 @@ -228,7 +228,7 @@ void main() [test] uniform 0 uint4 0x4a204990 0x4b404ab0 0 0 dispatch 1 1 1 -probe uav 1 (0) rgba(11.125, 12.25, 13.375, 14.5) +probe uav 1 (0) f32(11.125, 12.25, 13.375, 14.5) [compute shader] uniform half4 h; @@ -243,7 +243,7 @@ void main() [test] uniform 0 uint4 0x4a204990 0x4b404ab0 0 0 dispatch 1 1 1 -probe uav 1 (0) rgba(11.125, 12.25, 13.375, 14.5) +probe uav 1 (0) f32(11.125, 12.25, 13.375, 14.5) [compute shader] uniform half h; @@ -258,7 +258,7 @@ void main() [test] uniform 0 uint 0x4990 dispatch 1 1 1 -probe uav 1 (0) r(11.125) +probe uav 1 (0) f32(11.125) [uav 1] format r32g32b32a32-uint diff --git a/tests/hlsl/uav-rwbyteaddressbuffer.shader_test b/tests/hlsl/uav-rwbyteaddressbuffer.shader_test index d3ed1950f..ea8aa5246 100644 --- a/tests/hlsl/uav-rwbyteaddressbuffer.shader_test +++ b/tests/hlsl/uav-rwbyteaddressbuffer.shader_test @@ -21,7 +21,7 @@ float4 main() : sv_target todo(glsl | msl) draw quad probe uav 1 (0) i32(10) if(sm<6) probe uav 1 (1) i32(11) -if(sm>=6) probe uav 1 (1) r (11.1) +if(sm>=6) probe uav 1 (1) f32(11.1) [pixel shader] RWByteAddressBuffer u : register(u1); diff --git a/tests/hlsl/uav-rwtexture.shader_test b/tests/hlsl/uav-rwtexture.shader_test index 624386a0e..c49fdf834 100644 --- a/tests/hlsl/uav-rwtexture.shader_test +++ b/tests/hlsl/uav-rwtexture.shader_test @@ -54,11 +54,11 @@ float4 main() : sv_target [test] draw quad -probe uav 1 (0, 0) r (0.5) -probe uav 1 (0, 1) r (0.6) -probe uav 1 (1, 0) r (0.2) -probe uav 1 (1, 1) r (0.7) -probe uav 2 (0, 0) rgba (2.0, 1.0, 4.0, 3.0) +probe uav 1 (0, 0) f32(0.5) +probe uav 1 (0, 1) f32(0.6) +probe uav 1 (1, 0) f32(0.2) +probe uav 1 (1, 1) f32(0.7) +probe uav 2 (0, 0) f32(2.0, 1.0, 4.0, 3.0) % UAVs are implicitly allocated starting from the highest render target slot. @@ -105,7 +105,7 @@ float4 main() : sv_target1 [test] draw quad -probe uav 2 (0, 0) rgba (0.9, 0.8, 0.7, 0.6) +probe uav 2 (0, 0) f32(0.9, 0.8, 0.7, 0.6) [uav 3] @@ -125,7 +125,7 @@ float4 main() : sv_target1 [test] draw quad -probe uav 3 (0, 0) rgba (0.9, 0.8, 0.7, 0.6) +probe uav 3 (0, 0) f32(0.9, 0.8, 0.7, 0.6) % Uppercase register set name [pixel shader] @@ -139,7 +139,7 @@ float4 main() : sv_target1 [test] draw quad -probe uav 3 (0, 0) rgba (0.9, 0.8, 0.7, 0.6) +probe uav 3 (0, 0) f32(0.9, 0.8, 0.7, 0.6) % Test that we can declare and use an array of UAVs. @@ -167,8 +167,8 @@ float4 main() : sv_target1 [test] draw quad -probe uav 2 (0, 0) rgba (1.1, 1.2, 1.3, 1.4) -probe uav 3 (0, 0) rgba (2.1, 2.2, 2.3, 2.4) +probe uav 2 (0, 0) f32(1.1, 1.2, 1.3, 1.4) +probe uav 3 (0, 0) f32(2.1, 2.2, 2.3, 2.4) % RWTexture1D types [pixel shader] diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 2a01ed0ab..af77df402 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -821,6 +821,21 @@ static void read_uint(const char **line, unsigned int *u, bool is_uniform) *line = rest; } +static void read_f32(const char **line, float *f) +{ + char *rest; + float val; + + errno = 0; + val = strtof(*line, &rest); + + if (errno != 0 || rest == *line) + fatal_error("Malformed f32 constant '%s'.\n", *line); + + *f = val; + *line = rest; +} + static void read_int4(const char **line, struct ivec4 *v) { read_int(line, &v->x, true); @@ -1342,6 +1357,56 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) check_readback_data_uint(rb, &box, v.x, 0); } } + else if (match_string(line, "f32", &line)) + { + struct vec4 v; + + if (*line != '(') + fatal_error("Malformed probe arguments '%s'.\n", line); + ++line; + + read_f32(&line, &v.x); + while (isspace(*line)) + ++line; + if (*line == ',') + { + ++line; + read_f32(&line, &v.y); + while (isspace(*line)) + ++line; + if (*line == ',') + { + ++line; + read_f32(&line, &v.z); + + while (isspace(*line)) + ++line; + if (*line != ',') + fatal_error("Malformed probe arguments '%s'.\n", line); + ++line; + read_f32(&line, &v.w); + + if (sscanf(line, " ) %u", &ulps) < 1) + ulps = 0; + todo_if(runner->is_todo) bug_if(runner->is_bug) + check_readback_data_vec4(rb, &rect, &v, ulps); + } + else + { + if (sscanf(line, " ) %u", &ulps) < 1) + ulps = 0; + todo_if(runner->is_todo) bug_if(runner->is_bug) + check_readback_data_vec2(rb, &rect, &v, ulps); + } + } + else + { + if (sscanf(line, " ) %u", &ulps) < 1) + ulps = 0; + todo_if(runner->is_todo) bug_if(runner->is_bug) + check_readback_data_float(rb, &rect, v.x, ulps); + } + } else if (match_string(line, "rgba", &line)) { struct vec4 v; @@ -1354,30 +1419,6 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) todo_if(runner->is_todo) bug_if(runner->is_bug) check_readback_data_vec4(rb, &rect, &v, ulps); } - else if (match_string(line, "rg", &line)) - { - struct vec4 v; - - ret = sscanf(line, "( %f , %f ) %u", &v.x, &v.y, &ulps); - if (ret < 2) - fatal_error("Malformed probe arguments '%s'.\n", line); - if (ret < 3) - ulps = 0; - todo_if(runner->is_todo) bug_if(runner->is_bug) - check_readback_data_vec2(rb, &rect, &v, ulps); - } - else if (match_string(line, "r", &line)) - { - float expect; - - ret = sscanf(line, "( %f ) %u", &expect, &ulps); - if (ret < 1) - fatal_error("Malformed probe arguments '%s'.\n", line); - if (ret < 2) - ulps = 0; - todo_if(runner->is_todo) bug_if(runner->is_bug) - check_readback_data_float(rb, &rect, expect, ulps); - } else { fatal_error("Malformed probe arguments '%s'.\n", line);