diff --git a/tests/hlsl/abs.shader_test b/tests/hlsl/abs.shader_test index 84274a7fb..a3cd300ef 100644 --- a/tests/hlsl/abs.shader_test +++ b/tests/hlsl/abs.shader_test @@ -26,10 +26,10 @@ float4 main() : sv_target [test] uniform 0 float 2.0 draw quad -probe (0, 0) rgba(2, 8, 3, 1) +todo(msl & sm>=6) probe (0, 0) f32(2, 8, 3, 1) uniform 0 float -1.0 draw quad -probe (0, 0) rgba(1, 8, 3, 1) +todo(msl & sm>=6) probe (0, 0) f32(1, 8, 3, 1) [pixel shader] uniform float4 u; diff --git a/tests/hlsl/all.shader_test b/tests/hlsl/all.shader_test index 51b41a3d7..71267e33e 100644 --- a/tests/hlsl/all.shader_test +++ b/tests/hlsl/all.shader_test @@ -11,17 +11,17 @@ float4 main() : sv_target [test] uniform 0 float4 -1.1 1.6 1.3 0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [test] uniform 0 float4 0.0 1.6 1.3 0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [test] uniform 0 float4 1.0 0.0 1.3 0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -34,12 +34,12 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [test] uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -53,11 +53,11 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 2.0 0.0 0.0 uniform 4 float4 3.0 4.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [test] uniform 0 float4 1.0 2.0 0.0 0.0 uniform 4 float4 0.0 4.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) diff --git a/tests/hlsl/any.shader_test b/tests/hlsl/any.shader_test index c939b7cde..a6714d5ea 100644 --- a/tests/hlsl/any.shader_test +++ b/tests/hlsl/any.shader_test @@ -8,25 +8,25 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 1.0 1.0 1.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 0.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 0.0 0.0 1.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 0.0 0.0 0.0 1.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) uniform 0 float4 -1.0 -1.0 -1.0 -1.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) [pixel shader] @@ -39,13 +39,13 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -60,27 +60,27 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1 1 1 1 if(sm>=4) uniform 0 uint4 1 1 1 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 0 1 0 0 if(sm>=4) uniform 0 uint4 0 1 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 0 0 1 0 if(sm>=4) uniform 0 uint4 0 0 1 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 0 0 0 1 if(sm>=4) uniform 0 uint4 0 0 0 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -94,9 +94,9 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) diff --git a/tests/hlsl/arithmetic-float-uniform.shader_test b/tests/hlsl/arithmetic-float-uniform.shader_test index f1ae21c55..5c25bd6d7 100644 --- a/tests/hlsl/arithmetic-float-uniform.shader_test +++ b/tests/hlsl/arithmetic-float-uniform.shader_test @@ -43,7 +43,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 42.0 5.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.0, -2.0, 2.0, -2.0) 16 @@ -59,7 +59,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 45.0 5.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) @@ -74,7 +74,7 @@ float4 main() : sv_target [test] uniform 0 float4 5.0 -42.1 4.0 45.0 uniform 4 float4 15.0 -5.0 4.1 5.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (5.0, -2.1, 4.0, 0.0) 6 @@ -124,7 +124,7 @@ float4 main() : sv_target uniform 0 float4 1.00000007 -42.1 4.0 45.0 uniform 4 float4 1.625 -5.0 4.125 5.0 uniform 8 float4 1.00000007 -1.0 0.5 -0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.62500048, 209.5, 17.0, 224.5) 1 [require] @@ -279,7 +279,7 @@ if(sm>=6) uniform 0 uint 0 if(sm>=6) uniform 4 uint 0 if(sm>=6) uniform 8 uint 0x4180 if(sm>=6) uniform 12 uint 0x4180 -draw quad +todo(msl & sm>=6) draw quad todo(sm>=6) probe (0, 0) rgba(-1.5, 65.0, 1.25, 67.75) [pixel shader] @@ -327,7 +327,7 @@ if(sm>=6) uniform 0 uint 0xc100 if(sm>=6) uniform 4 uint 0x4300 if(sm>=6) uniform 8 uint 0x3800 if(sm>=6) uniform 12 uint 0xc480 -draw quad +todo(msl & sm>=6) draw quad todo(sm>=6) probe (0, 0) rgba(3.75, 19.25, -0.75, -24.75) [pixel shader] @@ -348,7 +348,7 @@ if(sm>=6) uniform 0 uint 0x4280 if(sm>=6) uniform 4 uint 0xe3ff if(sm>=6) uniform 8 uint 0xc780 if(sm>=6) uniform 12 uint 0x3000 -draw quad +todo(msl & sm>=6) draw quad % The computation is potentially done in f16, but ULPs are relative to the f32 result. todo(sm>=6) probe (0, 0) rgba (0.004962, 2047.0, -0.011451, -0.25) 8192 diff --git a/tests/hlsl/arithmetic-int-uniform.shader_test b/tests/hlsl/arithmetic-int-uniform.shader_test index ff668d16d..0922c7f81 100644 --- a/tests/hlsl/arithmetic-int-uniform.shader_test +++ b/tests/hlsl/arithmetic-int-uniform.shader_test @@ -99,7 +99,7 @@ float4 main() : SV_TARGET [test] uniform 0 float4 5.0 -7.0 0.0 -10.0 draw quad -probe (0, 0) rgba (5.0, 7.0, 0.0, 10.0) +todo(msl & sm>=6) probe (0, 0) f32(5.0, 7.0, 0.0, 10.0) [pixel shader] uniform float4 a; @@ -244,7 +244,7 @@ float4 main() : SV_TARGET [test] uniform 0 int64_t2 5000000000 -7000000000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (5.0e9, 7.0e9, 0.0, 0.0) [pixel shader] @@ -325,7 +325,7 @@ uniform 0 uint 0 uniform 4 uint 0 uniform 8 uint 0xffd uniform 12 uint 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) i32(1, -0xfff, 0xffe, -0xffe) [pixel shader] @@ -344,14 +344,14 @@ uniform 4 uint 0xffe % i is allocated differently between SM4-5 and SM6 uniform 5 uint 2 uniform 8 uint 2 -draw quad +todo(msl & sm>=6) draw quad % In D3D12 with SM5 all reads to the array return 0 if(sm>=6 | !d3d12) probe (0, 0) u32(0xfffff803, 0x1ffd, 0, 0) uniform 0 uint 0 uniform 4 uint 0 uniform 5 uint 0 uniform 8 uint 0 -draw quad +todo(msl & sm>=6) draw quad if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 0, 0) [pixel shader] @@ -368,7 +368,7 @@ uniform 0 uint 7 uniform 4 uint 0xfffffff7 uniform 8 uint 0xfffffff9 uniform 12 uint 9 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) i32(-21, -45, 21, 45) [pixel shader fail todo] diff --git a/tests/hlsl/arithmetic-uint.shader_test b/tests/hlsl/arithmetic-uint.shader_test index 933c22dd0..9552a8925 100644 --- a/tests/hlsl/arithmetic-uint.shader_test +++ b/tests/hlsl/arithmetic-uint.shader_test @@ -124,11 +124,11 @@ uint4 main() : sv_target [test] uniform 0 uint 0 uniform 4 uint 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0xfff, 0x7ff, 0, 0) uniform 0 uint 1 uniform 4 uint 0xfff -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x1000, 0x17fe, 0, 0) [pixel shader] @@ -147,14 +147,14 @@ uniform 4 uint 0xffe % i is allocated differently between SM4-5 and SM6 uniform 5 uint 2 uniform 8 uint 2 -draw quad +todo(msl & sm>=6) draw quad % In D3D12 with SM5 all reads to the array return 0 if(sm>=6 | !d3d12) probe (0, 0) u32(0x801, 0x1ffd, 0, 0) uniform 0 uint 0 uniform 4 uint 0 uniform 5 uint 0 uniform 8 uint 0 -draw quad +todo(msl & sm>=6) draw quad if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 0, 0) [pixel shader] @@ -171,7 +171,7 @@ uniform 0 uint 7 uniform 4 uint 9 uniform 8 uint 0xff9 uniform 12 uint 0xff7 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(21, 45, 0x2feb, 0x4fd3) [pixel shader] diff --git a/tests/hlsl/bitwise-assignment.shader_test b/tests/hlsl/bitwise-assignment.shader_test index 3545fcb8e..4ad1d931e 100644 --- a/tests/hlsl/bitwise-assignment.shader_test +++ b/tests/hlsl/bitwise-assignment.shader_test @@ -36,7 +36,7 @@ float4 main() : SV_TARGET [test] uniform 0 uint4 1 0 0 0 draw quad -probe (0, 0) rgba (2, -6, 2, -6) +todo(msl & sm>=6) probe (0, 0) f32(2, -6, 2, -6) [pixel shader] uniform uint4 nonconst; @@ -73,7 +73,7 @@ float4 main() : SV_TARGET [test] uniform 0 uint4 2 0 0 0 draw quad -probe (0, 0) rgba (20, -48, 20, -48) +todo(msl & sm>=6) probe (0, 0) f32(20, -48, 20, -48) [pixel shader fail] % Make sure that bitshifts DON'T work with floats diff --git a/tests/hlsl/bitwise.shader_test b/tests/hlsl/bitwise.shader_test index 39a54667e..e372a88b1 100644 --- a/tests/hlsl/bitwise.shader_test +++ b/tests/hlsl/bitwise.shader_test @@ -226,13 +226,13 @@ uint4 main() : sv_target [test] uniform 0 uint4 0 0 0 0 -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad probe (0, 0) u32(0, 0xffffffff, 0xffffffff, 0xffffffff) uniform 0 uint4 0xffffffff 0xffffffff 0 0 -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad probe (0, 0) u32(32, 0, 31, 0xffffffff) uniform 0 uint4 0xcccccccc 0xcccccccc 0 0 -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad probe (0, 0) u32(16, 2, 31, 29) [rtv 0] diff --git a/tests/hlsl/bool-cast.shader_test b/tests/hlsl/bool-cast.shader_test index 6aeec9537..c8936eb00 100644 --- a/tests/hlsl/bool-cast.shader_test +++ b/tests/hlsl/bool-cast.shader_test @@ -27,7 +27,7 @@ float4 main() : SV_TARGET uniform 0 float4 0.0 0.0 2.0 4.0 if(sm<4) uniform 4 float4 0 1 0 10 if(sm>=4) uniform 4 int4 0 1 0 10 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 10.0, 1.0, 11.0) @@ -42,5 +42,5 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1.0 1.0 1.0 0.0 if(sm>=4) uniform 0 uint4 0x00000001 0x00000002 0x80000000 0x00000000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.0, 2.0, 0.0) diff --git a/tests/hlsl/bool-semantics.shader_test b/tests/hlsl/bool-semantics.shader_test index b04ee1a1f..c42f7ce15 100644 --- a/tests/hlsl/bool-semantics.shader_test +++ b/tests/hlsl/bool-semantics.shader_test @@ -49,5 +49,5 @@ float4 main(struct input i) : sv_target } [test] -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0, 0, 640, 480) rgba (0.0, 2.0, 2.0, 2.0) diff --git a/tests/hlsl/calculate-lod.shader_test b/tests/hlsl/calculate-lod.shader_test index 715b792c9..792c584b8 100644 --- a/tests/hlsl/calculate-lod.shader_test +++ b/tests/hlsl/calculate-lod.shader_test @@ -33,7 +33,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad bug(mvk<1.2.11) probe (0, 0, 640, 480) rgba (2.0, 1.0, 0.0, 14.0) @@ -50,7 +50,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad bug(mvk<1.2.11) probe (0, 0, 640, 480) rgba (2.0, 2.0, 0.0, 0.0) @@ -67,7 +67,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad bug(mvk<1.2.11) probe (0, 0, 640, 480) rgba (2.0, 1.0, 0.0, 14.0) @@ -84,5 +84,5 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl & sm>=6) draw quad bug(mvk<1.2.11) probe (0, 0, 640, 480) rgba (45.0, 50.0, -14.0, -47.0) diff --git a/tests/hlsl/cast-to-float.shader_test b/tests/hlsl/cast-to-float.shader_test index e1f9f9cd7..2c7360aef 100644 --- a/tests/hlsl/cast-to-float.shader_test +++ b/tests/hlsl/cast-to-float.shader_test @@ -18,7 +18,7 @@ if(sm>=4) uniform 0 int -1 if(sm>=4) uniform 1 uint 3 if(sm>=4) uniform 2 int -2 if(sm>=4) uniform 3 float 0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) diff --git a/tests/hlsl/cast-to-half.shader_test b/tests/hlsl/cast-to-half.shader_test index a6846c084..ba078048a 100644 --- a/tests/hlsl/cast-to-half.shader_test +++ b/tests/hlsl/cast-to-half.shader_test @@ -18,7 +18,7 @@ if(sm>=4) uniform 0 int -1 if(sm>=4) uniform 1 uint 3 if(sm>=4) uniform 2 int -2 if(sm>=4) uniform 3 float 0.5 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) diff --git a/tests/hlsl/cast-to-int.shader_test b/tests/hlsl/cast-to-int.shader_test index ec76a4820..7e2687a1e 100644 --- a/tests/hlsl/cast-to-int.shader_test +++ b/tests/hlsl/cast-to-int.shader_test @@ -11,7 +11,7 @@ float4 main() : sv_target [test] uniform 0 float4 10.3 -11.6 12.8 13.1 draw quad -probe (0, 0) rgba(10, -11, 12, 0) +todo(msl & sm>=6) probe (0, 0) f32(10, -11, 12, 0) [vertex shader] @@ -32,7 +32,7 @@ float4 main(float4 t1 : TEXCOORD1) : sv_target [test] uniform 0 float4 -0.4 -0.7 -12.8 14.8 draw quad -probe (0, 0) rgba(0, 0, -12, 14) +todo(msl & sm>=6) probe (0, 0) f32(0, 0, -12, 14) [pixel shader] @@ -61,7 +61,7 @@ if(sm>=4) uniform 0 float 2.6 if(sm>=4) uniform 1 int -2 if(sm>=4) uniform 2 int -2 if(sm>=4) uniform 3 float -3.6 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) diff --git a/tests/hlsl/cast-to-uint.shader_test b/tests/hlsl/cast-to-uint.shader_test index caf786cc6..94d30b0ef 100644 --- a/tests/hlsl/cast-to-uint.shader_test +++ b/tests/hlsl/cast-to-uint.shader_test @@ -25,7 +25,7 @@ uniform 0 float 2.6 uniform 1 int 2 uniform 2 int -2 uniform 3 float -3.6 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) diff --git a/tests/hlsl/cbuffer.shader_test b/tests/hlsl/cbuffer.shader_test index d649f3475..04ff6c6dc 100644 --- a/tests/hlsl/cbuffer.shader_test +++ b/tests/hlsl/cbuffer.shader_test @@ -619,7 +619,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -850,7 +850,7 @@ uniform 4 float4 4.0 5.0 6.0 7.0 uniform 8 float4 8.0 9.0 10.0 11.0 uniform 12 float4 12.0 13.0 14.0 15.0 uniform 16 float4 16.0 17.0 18.0 19.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (124.0, 135.0, 146.0, 150.5) [require] diff --git a/tests/hlsl/ceil.shader_test b/tests/hlsl/ceil.shader_test index 7f3a47407..b898f6907 100644 --- a/tests/hlsl/ceil.shader_test +++ b/tests/hlsl/ceil.shader_test @@ -52,4 +52,4 @@ float4 main() : sv_target if(sm<4) uniform 0 float4 -1 6 7 3 if(sm>=4) uniform 0 int4 -1 6 7 3 draw quad -probe (0, 0) rgba (6.0, 7.0, -1.0, 3.0) 4 +todo(msl & sm>=6) probe (0, 0) f32(6.0, 7.0, -1.0, 3.0) 4 diff --git a/tests/hlsl/cf-cond-types.shader_test b/tests/hlsl/cf-cond-types.shader_test index ce49600a2..f14c639df 100644 --- a/tests/hlsl/cf-cond-types.shader_test +++ b/tests/hlsl/cf-cond-types.shader_test @@ -124,8 +124,8 @@ float4 main() : sv_target [test] uniform 0 float4 -2.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 -0.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) diff --git a/tests/hlsl/clip-cull-distance.shader_test b/tests/hlsl/clip-cull-distance.shader_test index 01677524f..77797fc8a 100644 --- a/tests/hlsl/clip-cull-distance.shader_test +++ b/tests/hlsl/clip-cull-distance.shader_test @@ -48,7 +48,7 @@ float4 main(const in float4 position : SV_Position) : SV_Target [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0) [vb 1] @@ -59,7 +59,7 @@ probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0) [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0) [vb 1] @@ -70,7 +70,7 @@ probe (0, 0, 640, 480) rgba(0.0, 1.0, 0.0, 1.0) [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe (0, 0, 640, 480) rgba(1.0, 1.0, 1.0, 1.0) [vb 1] @@ -81,7 +81,7 @@ probe (0, 0, 640, 480) rgba(1.0, 1.0, 1.0, 1.0) [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 240) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (480, 240) rgba(1.0, 1.0, 1.0, 1.0) @@ -93,7 +93,7 @@ probe rtv 0 (480, 240) rgba(1.0, 1.0, 1.0, 1.0) [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (320, 120) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (320, 360) rgba(1.0, 1.0, 1.0, 1.0) @@ -122,7 +122,7 @@ void main(uint id : SV_VertexID, out vs_out o) [test] clear rtv 0 1.0 1.0 0.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 120) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) @@ -158,7 +158,7 @@ void main(uint id : SV_VertexID, out vs_out o) [test] clear rtv 0 1.0 1.0 0.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 120) rgba(0.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) @@ -195,7 +195,7 @@ void main(uint id : SV_VertexID, out vs_out o) [test] clear rtv 0 1.0 1.0 0.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) @@ -236,7 +236,7 @@ void main(uint id : SV_VertexID, out vs_out o) [test] clear rtv 0 1.0 1.0 0.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) @@ -284,7 +284,7 @@ void main(uint id : SV_VertexID, out vs_out o) [test] clear rtv 0 1.0 1.0 0.0 1.0 -todo(sm<6) draw triangle strip 4 +todo(sm<6 | msl) draw triangle strip 4 probe rtv 0 (160, 120) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 240) rgba(1.0, 1.0, 0.0, 1.0) probe rtv 0 (160, 360) rgba(1.0, 1.0, 0.0, 1.0) diff --git a/tests/hlsl/clip.shader_test b/tests/hlsl/clip.shader_test index bb7597cfd..03dd8ce48 100644 --- a/tests/hlsl/clip.shader_test +++ b/tests/hlsl/clip.shader_test @@ -9,20 +9,20 @@ float4 main() : sv_target [test] uniform 0 float4 1 2 3 4 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (1, 2, 3, 4) uniform 0 float4 9 8 7 6 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (9, 8, 7, 6) uniform 0 float4 -1 8 7 6 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (9, 8, 7, 6) uniform 0 float4 9 0 7 6 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (9, 0, 7, 6) uniform 0 float4 3 -8 3 0 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (9, 0, 7, 6) uniform 0 float4 3 3 3 -1 -todo(glsl) draw quad +todo(glsl | msl & sm>=6) draw quad probe (0, 0) rgba (9, 0, 7, 6) diff --git a/tests/hlsl/conditional.shader_test b/tests/hlsl/conditional.shader_test index 38dafa017..26c29485d 100644 --- a/tests/hlsl/conditional.shader_test +++ b/tests/hlsl/conditional.shader_test @@ -11,10 +11,10 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.9, 0.8, 0.7, 0.6) uniform 0 float4 0.1 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) [pixel shader todo(sm<4)] @@ -43,7 +43,7 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.9, 0.8, 0.7, 0.6) [pixel shader fail(sm<6)] @@ -87,10 +87,10 @@ float4 main() : sv_target [test] uniform 0 float -2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 2, 3, 4) uniform 0 float 10 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10, 20, 30, 40) @@ -108,7 +108,7 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.9, 0.8, 0.7, 0.6) [pixel shader] @@ -145,19 +145,19 @@ if(sm<4) uniform 0 float 8 if(sm<4) uniform 4 float 9 if(sm>=4) uniform 0 int 8 if(sm>=4) uniform 1 int 9 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0) if(sm<4) uniform 0 float -3 if(sm<4) uniform 4 float -4 if(sm>=4) uniform 0 int -3 if(sm>=4) uniform 1 int -4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float 7 if(sm<4) uniform 4 float 7 if(sm>=4) uniform 0 int 7 if(sm>=4) uniform 1 int 7 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -177,19 +177,19 @@ if(sm<4) uniform 0 float 8 if(sm<4) uniform 4 float 9 if(sm>=4) uniform 0 int 8 if(sm>=4) uniform 1 int 9 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0) if(sm<4) uniform 0 float -3 if(sm<4) uniform 4 float -4 if(sm>=4) uniform 0 int -3 if(sm>=4) uniform 1 int -4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) if(sm<4) uniform 0 float 7 if(sm<4) uniform 4 float 7 if(sm>=4) uniform 0 int 7 if(sm>=4) uniform 1 int 7 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0) @@ -209,13 +209,13 @@ if(sm<4) uniform 0 float -3 if(sm<4) uniform 4 float -2 if(sm>=4) uniform 0 int -3 if(sm>=4) uniform 1 int -2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0) if(sm<4) uniform 0 float 4 if(sm<4) uniform 4 float 4 if(sm>=4) uniform 0 int 4 if(sm>=4) uniform 1 int 4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -243,10 +243,10 @@ float4 main() : sv_target [test] uniform 0 float -2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 4.0) uniform 0 float 4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) @@ -267,13 +267,13 @@ float4 main() : sv_target [test] uniform 0 float 2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 4.0) uniform 0 float 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 0.0, 4.0) uniform 0 float 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 0.0, 4.0) % Test 16-bit phi instructions. diff --git a/tests/hlsl/d3dcolor-to-ubyte4.shader_test b/tests/hlsl/d3dcolor-to-ubyte4.shader_test index 3d4b59d73..aa4e9fc4a 100644 --- a/tests/hlsl/d3dcolor-to-ubyte4.shader_test +++ b/tests/hlsl/d3dcolor-to-ubyte4.shader_test @@ -12,7 +12,7 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 draw quad -probe (0, 0) rgba (1912.0, 1657.0, -127.0, 867.0) 1 +todo(msl & sm>=6) probe (0, 0) f32(1912.0, 1657.0, -127.0, 867.0) 1 [pixel shader] uniform float4 u; @@ -25,4 +25,4 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 7.5 3.4 draw quad -probe (0, 0) rgba (-127.0, -127.0, -127.0, -127.0) 1 +todo(msl & sm>=6) probe (0, 0) f32(-127.0, -127.0, -127.0, -127.0) 1 diff --git a/tests/hlsl/depth-out.shader_test b/tests/hlsl/depth-out.shader_test index 00395ab36..9ff37227c 100644 --- a/tests/hlsl/depth-out.shader_test +++ b/tests/hlsl/depth-out.shader_test @@ -65,14 +65,14 @@ uniform 0 float4 0.75 0.75 0.0 0.0 clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 depth greater equal -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad 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 +todo(sm<6 | msl) draw quad probe (0, 0) f32(1.0, 1.0, 1.0, 1.0) probe dsv (0,0) f32(0.5) @@ -91,20 +91,20 @@ uniform 0 float4 0.75 0.75 0.0 0.0 clear rtv 0 1.0 1.0 1.0 1.0 clear dsv 0.5 depth greater equal -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad 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 +todo(sm<6 | msl) draw quad 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 +todo(sm<6 | msl) draw quad 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 5325ffba2..d71c6ec27 100644 --- a/tests/hlsl/discard.shader_test +++ b/tests/hlsl/discard.shader_test @@ -10,10 +10,10 @@ float4 main() : sv_target [test] uniform 0 float4 1 2 3 4 -todo(sm<4 | glsl) draw quad +todo(sm<4 | glsl | msl & sm>=6) draw quad probe (0, 0) f32(1, 2, 3, 4) uniform 0 float4 9 8 7 6 -todo(sm<4 | glsl) draw quad +todo(sm<4 | glsl | msl & sm>=6) draw quad probe (0, 0) f32(1, 2, 3, 4) [require] @@ -30,7 +30,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -todo(sm<4 | glsl) draw quad +todo(sm<4 | glsl | msl & sm>=6) draw quad probe (0, 0) f32(1, 0, 0, 1) probe (1, 0) f32(1, 2, 3, 4) probe (0, 1) f32(1, 2, 3, 4) diff --git a/tests/hlsl/entry-point-semantics.shader_test b/tests/hlsl/entry-point-semantics.shader_test index 4de4519a6..8c3f0ef59 100644 --- a/tests/hlsl/entry-point-semantics.shader_test +++ b/tests/hlsl/entry-point-semantics.shader_test @@ -95,7 +95,7 @@ float4 main(in apple a) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad bug(mvk & sm>=6) probe (0, 0) rgba (10.0, 20.0, 30.0, 40.0) @@ -112,7 +112,7 @@ float4 main(in apple a) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 11.0, 30.0, 31.0) @@ -222,7 +222,7 @@ float4 main(in float4 tex0 : TEXCOORD0, in float4 tex1 : TEXCOORD1) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 10.0, 20.0) @@ -297,7 +297,7 @@ float4 main(in float4 a : TEXCOORD0, in float3 b : TEXCOORD1) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 11.0, 20.0, 21.0) diff --git a/tests/hlsl/eval-attrib.shader_test b/tests/hlsl/eval-attrib.shader_test index d78d83bb1..496f4fe10 100644 --- a/tests/hlsl/eval-attrib.shader_test +++ b/tests/hlsl/eval-attrib.shader_test @@ -40,7 +40,7 @@ float4 main(float4 pos : SV_Position, uint sample_idx : SV_SampleIndex) : SV_Tar [test] clear rtv 0 1.0 1.0 1.0 1.0 -draw triangle list 3 +todo(msl & sm>=6) draw triangle list 3 todo(vulkan | opengl | d3d12) probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) todo(vulkan | opengl | d3d12) probe (639, 0) rgba(0.0, 0.0, 0.0, 0.0) todo(vulkan | opengl | d3d12) probe ( 0, 479) rgba(0.25, 0.25, 0.25, 0.25) @@ -72,7 +72,7 @@ float4 main(centroid float4 pos : SV_Position, uint sample_idx : SV_SampleIndex) [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(glsl) draw triangle list 3 +todo(glsl | msl & sm>=6) draw triangle list 3 todo probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) todo(vulkan | opengl | d3d12) probe (638, 0) rgba(0.0, 0.0, 0.0, 0.0) todo probe ( 0, 478) rgba(0.25, 0.25, 0.25, 0.25) @@ -98,7 +98,7 @@ float4 main(sample float4 pos : SV_Position, uint sample_idx : SV_SampleIndex) : [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle list 3 +todo(sm<6 | msl) draw triangle list 3 probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) probe (639, 0) rgba(0.0, 0.0, 0.0, 0.0) probe ( 0, 479) rgba(0.25, 0.25, 0.25, 0.25) @@ -117,7 +117,7 @@ float4 main(float4 pos : SV_Position, float2 attr : ATTR, uint sample_idx : SV_S [test] clear rtv 0 1.0 1.0 1.0 1.0 -draw triangle list 3 +todo(msl & sm>=6) draw triangle list 3 probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) probe (639, 0) rgba(0.0, 0.0, 0.0, 0.0) probe ( 0, 479) rgba(0.25, 0.25, 0.25, 0.25) @@ -181,7 +181,7 @@ float4 main(float4 pos : SV_Position, sample float2 attr : ATTR, [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle list 3 +todo(sm<6 | msl) draw triangle list 3 probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) probe (639, 0) rgba(0.0, 0.0, 0.0, 0.0) probe ( 0, 479) rgba(0.25, 0.25, 0.25, 0.25) @@ -211,7 +211,7 @@ float4 main(float4 pos : SV_Position, float2 attr : ATTR, [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle list 3 +todo(sm<6 | msl) draw triangle list 3 todo(llvmpipe) probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) probe (638, 0) rgba(0.0, 0.0, 0.0, 0.0) probe ( 0, 478) rgba(0.25, 0.25, 0.25, 0.25) @@ -252,7 +252,7 @@ float4 main(float4 pos : SV_Position, float2 attr : ATTR, [test] clear rtv 0 1.0 1.0 1.0 1.0 -todo(sm<6) draw triangle list 3 +todo(sm<6 | msl) draw triangle list 3 probe ( 0, 0) rgba(0.25, 0.25, 0.25, 0.25) probe (639, 0) rgba(0.0, 0.0, 0.0, 0.0) probe ( 0, 479) rgba(0.25, 0.25, 0.25, 0.25) diff --git a/tests/hlsl/f16tof32.shader_test b/tests/hlsl/f16tof32.shader_test index c4572f76c..1ae07abe7 100644 --- a/tests/hlsl/f16tof32.shader_test +++ b/tests/hlsl/f16tof32.shader_test @@ -11,77 +11,77 @@ float4 main() : sv_target [test] uniform 0 uint 0x5140 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(42.0, 42.0, 42.0, 42.0) % zero uniform 0 uint 0x0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(0.0, 0.0, 0.0, 0.0) % negative zero uniform 0 uint 0x8000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(-0.0, -0.0, -0.0, -0.0) % subnormal number uniform 0 uint 0x1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(5.9604645e-08, 5.9604645e-08, 5.9604645e-08, 5.9604645e-08) % subnormal number uniform 0 uint 0x2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.1920929e-07, 1.1920929e-07, 1.1920929e-07, 1.1920929e-07) % subnormal number uniform 0 uint 0x4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(2.3841858e-07, 2.3841858e-07, 2.3841858e-07, 2.3841858e-07) % subnormal number uniform 0 uint 0x8 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(4.7683716e-07, 4.7683716e-07, 4.7683716e-07, 4.7683716e-07) % subnormal number uniform 0 uint 0x10 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(9.536743e-07, 9.536743e-07, 9.536743e-07, 9.536743e-07) % subnormal number uniform 0 uint 0x20 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.9073486e-06, 1.9073486e-06, 1.9073486e-06, 1.9073486e-06) % subnormal number uniform 0 uint 0x40 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(3.8146973e-06, 3.8146973e-06, 3.8146973e-06, 3.8146973e-06) % subnormal number uniform 0 uint 0x80 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(7.6293945e-06, 7.6293945e-06, 7.6293945e-06, 7.6293945e-06) % subnormal number uniform 0 uint 0x100 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.5258789e-05, 1.5258789e-05, 1.5258789e-05, 1.5258789e-05) % subnormal number uniform 0 uint 0x200 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(3.0517578e-05, 3.0517578e-05, 3.0517578e-05, 3.0517578e-05) % I'd love to use rgba probes here but msvc doesn't scanf infinity :( % positive infinity uniform 0 uint 0x7c00 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000) % negative infinity uniform 0 uint 0xfc00 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0xff800000, 0xff800000, 0xff800000, 0xff800000) diff --git a/tests/hlsl/f32tof16.shader_test b/tests/hlsl/f32tof16.shader_test index 1e1bd69f5..7789e3df7 100644 --- a/tests/hlsl/f32tof16.shader_test +++ b/tests/hlsl/f32tof16.shader_test @@ -15,77 +15,77 @@ uint4 main() : sv_target [test] uniform 0 float 42.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x5140, 0x5140, 0x5140, 0x5140) % zero uniform 0 float 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x0, 0x0, 0x0, 0x0) % negative zero uniform 0 uint 0x8000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(-0.0, -0.0, -0.0, -0.0) % subnormal number uniform 0 float 5.9604645e-08 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x1, 0x1, 0x1, 0x1) % subnormal number uniform 0 float 1.1920929e-07 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x2, 0x2, 0x2, 0x2) % subnormal number uniform 0 float 2.3841858e-07 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x4, 0x4, 0x4, 0x4) % subnormal number uniform 0 float 4.7683716e-07 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x8, 0x8, 0x8, 0x8) % subnormal number uniform 0 float 9.536743e-07 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x10, 0x10, 0x10, 0x10) % subnormal number uniform 0 float 1.9073486e-06 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x20, 0x20, 0x20, 0x20) % subnormal number uniform 0 float 3.8146973e-06 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x40, 0x40, 0x40, 0x40) % subnormal number uniform 0 float 7.6293945e-06 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x80, 0x80, 0x80, 0x80) % subnormal number uniform 0 float 1.5258789e-05 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x100, 0x100, 0x100, 0x100) % subnormal number uniform 0 float 3.0517578e-05 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x200, 0x200, 0x200, 0x200) % I'd love to use rgba probes here but msvc doesn't scanf infinity :( % positive infinity uniform 0 uint 0x7f800000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0x7c00, 0x7c00, 0x7c00, 0x7c00) % negative infinity uniform 0 uint 0xff800000 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) u32(0xfc00, 0xfc00, 0xfc00, 0xfc00) diff --git a/tests/hlsl/faceforward.shader_test b/tests/hlsl/faceforward.shader_test index 283594c2f..cce24775e 100644 --- a/tests/hlsl/faceforward.shader_test +++ b/tests/hlsl/faceforward.shader_test @@ -12,41 +12,41 @@ float4 main() : sv_target uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 1.0 0.0 0.0 0.0 uniform 8 float4 1.0 0.2 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 1.0 0.0 0.0 0.0 uniform 8 float4 1.0 -0.2 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 1.0 0.0 0.0 0.0 uniform 8 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 20.0, 30.0, 40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 0.0 -1.0 0.0 0.0 uniform 8 float4 0.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 20.0, 30.0, 40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 1.0 0.0 0.0 0.0 uniform 8 float4 0.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 0.0 0.0 0.0 0.0 uniform 8 float4 0.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0) uniform 0 float4 10.0 20.0 30.0 40.0 uniform 4 float4 0.0 0.0 0.0 0.0 uniform 8 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0) diff --git a/tests/hlsl/float-comparison.shader_test b/tests/hlsl/float-comparison.shader_test index 5244fb391..1818e145a 100644 --- a/tests/hlsl/float-comparison.shader_test +++ b/tests/hlsl/float-comparison.shader_test @@ -9,7 +9,7 @@ float4 main() : sv_target [test] uniform 0 float 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) @@ -55,7 +55,7 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 1.5 1.5 0.0 -draw quad +todo(msl & sm>=6) draw quad % SM1-3 apparently treats '0/0' as zero. if(sm<4) todo probe (0,0) rgba (1010101.0, 11001100.0, 1101001.0, 11.0) % SM4-5 optimises away the 'not' by inverting the condition, even though this is invalid for NaN. @@ -125,7 +125,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.5 0.0 1.0 -1.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 0.0, 0.0) @@ -139,5 +139,5 @@ float4 main() : sv_target [test] uniform 0 float4 1.5 0.0 1.0 -1.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 1.0, 0.0) diff --git a/tests/hlsl/floor.shader_test b/tests/hlsl/floor.shader_test index 96a8aca28..d61305ad3 100644 --- a/tests/hlsl/floor.shader_test +++ b/tests/hlsl/floor.shader_test @@ -53,4 +53,4 @@ float4 main() : sv_target if(sm<4) uniform 0 float4 -1 6 7 3 if(sm>=4) uniform 0 int4 -1 6 7 3 draw quad -probe (0, 0) rgba (6.0, 7.0, -1.0, 3.0) 4 +todo(msl & sm>=6) probe (0, 0) f32(6.0, 7.0, -1.0, 3.0) 4 diff --git a/tests/hlsl/fmod.shader_test b/tests/hlsl/fmod.shader_test index 7d51ac7f6..e24c2a206 100644 --- a/tests/hlsl/fmod.shader_test +++ b/tests/hlsl/fmod.shader_test @@ -8,10 +8,10 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.5, 0.0, 0.0, 0.0) 4 uniform 0 float4 1.1 0.3 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.0, 0.0, 0.0) 4 [pixel shader] @@ -24,8 +24,8 @@ float4 main() : sv_target [test] uniform 0 float4 -0.5 6.5 2.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.5, 0.5, 0.0, 0.0) 4 uniform 0 float4 1.1 0.3 3.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.1, 0.3, 0.0, 0.0) 4 diff --git a/tests/hlsl/for.shader_test b/tests/hlsl/for.shader_test index e49cf09e3..07f8fe4b7 100644 --- a/tests/hlsl/for.shader_test +++ b/tests/hlsl/for.shader_test @@ -23,7 +23,7 @@ float4 main(float tex : texcoord) : sv_target } [test] -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe ( 0, 0, 159, 480) rgba (10.0, 35.0, 0.0, 0.0) probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0) probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0) @@ -54,7 +54,7 @@ float4 main(float tex : texcoord) : sv_target [test] uniform 0 uint4 10 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe ( 0, 0, 159, 480) rgba (10.0, 35.0, 0.0, 0.0) probe (161, 0, 479, 480) rgba (10.0, 38.0, 0.0, 0.0) probe (481, 0, 640, 480) rgba ( 5.0, 10.0, 0.0, 0.0) diff --git a/tests/hlsl/function-cast.shader_test b/tests/hlsl/function-cast.shader_test index 99de5a926..a939d43aa 100644 --- a/tests/hlsl/function-cast.shader_test +++ b/tests/hlsl/function-cast.shader_test @@ -19,7 +19,7 @@ float4 main() : sv_target [test] uniform 0 float4 -1.9 -1.0 2.9 4.0 draw quad -probe (0, 0) rgba (-1.0, -1.0, 2.0, 4.0) +todo(msl & sm>=6) probe (0, 0) f32(-1.0, -1.0, 2.0, 4.0) % As above, but cast "x" to float4 first. % In SM 6 a cast seems to implicitly promote the type to const, @@ -89,7 +89,7 @@ float4 main() : sv_target if(sm<4) uniform 0 float4 -2 0 1 -3000000 if(sm>=4) uniform 0 int4 -2 0 1 -3000000 draw quad -probe (0, 0) rgba (-1.0, 0.0, 1.0, -3000000.0) 4 +todo(msl & sm>=6) probe (0, 0) f32(-1.0, 0.0, 1.0, -3000000.0) 4 % An explicit cast gets applied right before assignment, as if it was on the lhs. diff --git a/tests/hlsl/function-return.shader_test b/tests/hlsl/function-return.shader_test index b70ae706c..9f799b4b5 100644 --- a/tests/hlsl/function-return.shader_test +++ b/tests/hlsl/function-return.shader_test @@ -79,16 +79,16 @@ float4 main() : sv_target [test] uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.2, 0.6, 0.3) 1 uniform 0 float 0.4 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.6, 0.5, 0.6, 0.3) 1 uniform 0 float 0.6 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.6, 0.5, 0.4, 0.5) 1 uniform 0 float 0.8 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.8, 0.7, 0.4, 0.5) 1 [pixel shader todo(sm<4)] @@ -134,13 +134,13 @@ float4 main() : sv_target [test] uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.1, 0.2, 0.1) 1 uniform 0 float 0.5 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.4, 1.0, 0.9) 1 uniform 0 float 0.9 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.9, 1.0, 0.6) 1 [pixel shader] @@ -235,23 +235,23 @@ float4 main() : sv_target [test] uniform 0 float 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.2, 0.3, 0.3) 1 uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.3, 0.3, 0.3) 1 uniform 0 float 0.3 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.5, 0.3, 0.3) 1 uniform 0 float 0.7 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.9, 0.7, 0.6) 1 uniform 0 float 0.9 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.1, 0.7, 0.6) 1 [pixel shader todo(sm<4)] @@ -291,21 +291,21 @@ float4 main() : sv_target uniform 0 float4 0.3 0.0 0.0 0.0 uniform 4 float4 0.0 0.0 0.0 0.0 uniform 8 float4 0.1 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.2, 0.6, 0.6) 1 uniform 4 float4 0.35 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.3, 0.6, 0.6) 1 uniform 8 float4 0.5 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.5, 0.6, 0.6) 1 uniform 0 float4 1.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.5, 0.6, 0.6) 1 uniform 4 float4 2.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.1, 0.6, 0.6) 1 diff --git a/tests/hlsl/get-sample-pos.shader_test b/tests/hlsl/get-sample-pos.shader_test index 04b1aa133..d98bde41f 100644 --- a/tests/hlsl/get-sample-pos.shader_test +++ b/tests/hlsl/get-sample-pos.shader_test @@ -15,5 +15,5 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (-0.125, -0.375, 0.375, -0.125) diff --git a/tests/hlsl/half.shader_test b/tests/hlsl/half.shader_test index 1af0e149a..4908f338d 100644 --- a/tests/hlsl/half.shader_test +++ b/tests/hlsl/half.shader_test @@ -69,10 +69,10 @@ float4 main() : sv_target [test] uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(0.0, 0.0, 0.0, 0.0) uniform 0 float4 3.0 5.0 -0.2 -10.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(15.0, 10.0, -0.1, 5.0) 4096 [require] diff --git a/tests/hlsl/hard-copy-prop.shader_test b/tests/hlsl/hard-copy-prop.shader_test index 779111b5b..b058e2100 100644 --- a/tests/hlsl/hard-copy-prop.shader_test +++ b/tests/hlsl/hard-copy-prop.shader_test @@ -17,10 +17,10 @@ float4 main() : sv_target [test] uniform 0 float 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.0, 2.0, 2.0) uniform 0 float 1.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (-2.0, -2.0, -2.0, -2.0) @@ -43,10 +43,10 @@ float4 main() : sv_target [test] uniform 0 float 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.0, 2.0, 2.0) uniform 0 float 1.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (20.0, 20.0, 20.0, 20.0) @@ -69,10 +69,10 @@ float4 main() : sv_target [test] uniform 0 float 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 4.0, 0.0, 0.0) uniform 0 float 1.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 40.0, 0.0, 0.0) [pixel shader] @@ -221,7 +221,7 @@ float4 main() : sv_target [test] uniform 0 float 11.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba(1, 2, 3, 5) [require] diff --git a/tests/hlsl/initializer-objects.shader_test b/tests/hlsl/initializer-objects.shader_test index 6156233da..28a108fad 100644 --- a/tests/hlsl/initializer-objects.shader_test +++ b/tests/hlsl/initializer-objects.shader_test @@ -25,7 +25,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.2, 0.2, 0.1) @@ -48,7 +48,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (31.1, 41.1, 51.1, 61.1) 1 diff --git a/tests/hlsl/interface-packing.shader_test b/tests/hlsl/interface-packing.shader_test index 172617771..0d243d1f6 100644 --- a/tests/hlsl/interface-packing.shader_test +++ b/tests/hlsl/interface-packing.shader_test @@ -14,7 +14,7 @@ float4 main(float2 color_xy : COLOR0, float2 color_zw : COLOR1) : SV_TARGET } [test] -draw quad +todo(msl & sm>=6) draw quad probe(320, 240) rgba(0.25, 0.5, 0.75, 1.0) % Test handling of arrays in interface blocks diff --git a/tests/hlsl/inverse-trig.shader_test b/tests/hlsl/inverse-trig.shader_test index dbf3ae4c2..4572f42aa 100644 --- a/tests/hlsl/inverse-trig.shader_test +++ b/tests/hlsl/inverse-trig.shader_test @@ -13,23 +13,23 @@ float4 main() : sv_target [test] uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.14159274, 0.0, 0.0, 0.0) 128 uniform 0 float4 -0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.094441441, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.57072878, 0.0, 0.0, 0.0) 1024 uniform 0 float4 0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.04715133, 0.0, 0.0, 0.0) 512 uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) 128 [pixel shader] @@ -44,7 +44,7 @@ float4 main() : sv_target [test] uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-31416.0, 0.0, 0.0, 0.0) [require] @@ -52,15 +52,15 @@ shader model < 6.0 [test] uniform 0 float4 -0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10473.0, 0.0, 0.0, 0.0) uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 0.0, 0.0) uniform 0 float4 0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10473.0, 0.0, 0.0, 0.0) [require] @@ -72,15 +72,15 @@ shader model >= 6.0 % RADV are a bit lower than these, hence the large max ulp difference. [test] uniform 0 float4 -0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-10472.0, 0.0, 0.0, 0.0) 4096 uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) uniform 0 float4 0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10472.0, 0.0, 0.0, 0.0) 4096 [require] @@ -88,7 +88,7 @@ probe (0, 0) rgba (10472.0, 0.0, 0.0, 0.0) 4096 [test] uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (31416.0, 0.0, 0.0, 0.0) @@ -102,23 +102,23 @@ float4 main() : sv_target [test] uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.785409629, 0.0, 0.0, 0.0) 512 uniform 0 float4 -0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.4636476, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.5 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.4636476, 0.0, 0.0, 0.0) 256 uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.785409629, 0.0, 0.0, 0.0) 512 [pixel shader] @@ -133,64 +133,64 @@ float4 main() : sv_target [test] % Non-degenerate cases uniform 0 float4 1.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.785385, 0.0, 0.0, 0.0) 512 uniform 0 float4 5.0 -5.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.356194, 0.0, 0.0, 0.0) 256 uniform 0 float4 -3.0 -3.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-2.356194, 0.0, 0.0, 0.0) 256 uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.570796, 0.0, 0.0, 0.0) 256 uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.570796, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.0 1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.0 -1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.1415927, 0.0, 0.0, 0.0) 256 % Degenerate cases uniform 0 float4 0.00001 0.00002 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.463647, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.00001 -0.00002 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.677945, 0.0, 0.0, 0.0) 256 uniform 0 float4 -0.00001 100000.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.000000000099986595, 0.0, 0.0, 0.0) 2048 uniform 0 float4 10000000.0 0.00000001 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.570796, 0.0, 0.0, 0.0) 256 % Negative zero behavior should be to treat it the % same as normal zero. uniform 0 float4 1000000000.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.570796, 0.0, 0.0, 0.0) 256 uniform 0 float4 1000000000.0 -0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.570796, 0.0, 0.0, 0.0) 256 uniform 0 float4 0.0 -1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.1415927, 0.0, 0.0, 0.0) 256 uniform 0 float4 -0.0 -1.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.1415927, 0.0, 0.0, 0.0) 256 diff --git a/tests/hlsl/is-front-face.shader_test b/tests/hlsl/is-front-face.shader_test index 69505cb66..46d155475 100644 --- a/tests/hlsl/is-front-face.shader_test +++ b/tests/hlsl/is-front-face.shader_test @@ -26,7 +26,7 @@ float4 main(uint a : A, bool face : sv_isfrontface) : sv_target } [test] -draw triangle list 6 +todo(msl & sm>=6) draw triangle list 6 probe (160, 240) f32(2.0, 0.0, 0.0, 0.0) probe (480, 240) f32(2.0, 1.0, 0.0, 0.0) diff --git a/tests/hlsl/isinf.shader_test b/tests/hlsl/isinf.shader_test index fe376e429..b687850c5 100644 --- a/tests/hlsl/isinf.shader_test +++ b/tests/hlsl/isinf.shader_test @@ -8,7 +8,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 -0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.0, 2.0, 2.0, 2.0) [require] @@ -24,8 +24,8 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 -1.0 2.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.0, 1.0, 1.0, 1.0) uniform 0 uint4 0x7f800000 0xff800000 0xffc00001 0xff800001 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(2.0, 2.0, 1.0, 1.0) diff --git a/tests/hlsl/ldexp.shader_test b/tests/hlsl/ldexp.shader_test index 5a26ffb92..498c6e447 100644 --- a/tests/hlsl/ldexp.shader_test +++ b/tests/hlsl/ldexp.shader_test @@ -29,7 +29,7 @@ if(sm<4) uniform 4 float4 0 -10 10 100 if(sm>=4) uniform 0 int4 2 3 4 5 if(sm>=4) uniform 4 int4 0 -10 10 100 draw quad -probe (0, 0) rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2 +todo(msl & sm>=6) probe (0, 0) f32(2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2 [pixel shader] diff --git a/tests/hlsl/lerp.shader_test b/tests/hlsl/lerp.shader_test index dac2e051c..8c6da6978 100644 --- a/tests/hlsl/lerp.shader_test +++ b/tests/hlsl/lerp.shader_test @@ -34,7 +34,7 @@ if(sm>=4) uniform 0 int4 2 3 4 0 if(sm>=4) uniform 4 int4 0 -10 10 1000000 if(sm>=4) uniform 8 int4 0 1 -1 1000000 draw quad -probe (0, 0) rgba (2.0, -10.0, -2.0, 1e12) 4 +todo(msl & sm>=6) probe (0, 0) f32(2.0, -10.0, -2.0, 1e12) 4 [pixel shader] diff --git a/tests/hlsl/lit.shader_test b/tests/hlsl/lit.shader_test index 846604157..95dbced2f 100644 --- a/tests/hlsl/lit.shader_test +++ b/tests/hlsl/lit.shader_test @@ -8,17 +8,17 @@ float4 main() : sv_target [test] uniform 0 float4 -0.1 10.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 0.0, 1.0) [test] uniform 0 float4 1.2 -0.1 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.2, 0.0, 1.0) [test] uniform 0 float4 1.2 2.0 3.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.2, 8.0, 1.0) [pixel shader] @@ -31,7 +31,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.2 2.0 3.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.4, 16.0, 2.0) [pixel shader fail] diff --git a/tests/hlsl/load-level.shader_test b/tests/hlsl/load-level.shader_test index 668fe4e33..82f0a0492 100644 --- a/tests/hlsl/load-level.shader_test +++ b/tests/hlsl/load-level.shader_test @@ -22,10 +22,10 @@ float4 main() : sv_target [test] uniform 0 uint 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 1.0, 0.0) uniform 0 uint 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 1.0, 0.0) [pixel shader fail] @@ -47,5 +47,5 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 1.0, 0.0) diff --git a/tests/hlsl/logic-operations.shader_test b/tests/hlsl/logic-operations.shader_test index e6b65b184..f36f08b34 100644 --- a/tests/hlsl/logic-operations.shader_test +++ b/tests/hlsl/logic-operations.shader_test @@ -171,11 +171,11 @@ if(sm<4) uniform 0 float 5 if(sm<4) uniform 4 float 0 if(sm>=4) uniform 0 int 5 if(sm>=4) uniform 1 int 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 0.0, 1.0) if(sm<4) uniform 0 float -1 if(sm<4) uniform 4 float 3 if(sm>=4) uniform 0 int -1 if(sm>=4) uniform 1 int 3 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 1.0, 0.0, 0.0) diff --git a/tests/hlsl/loop.shader_test b/tests/hlsl/loop.shader_test index 906c768f5..fdfb38cf1 100644 --- a/tests/hlsl/loop.shader_test +++ b/tests/hlsl/loop.shader_test @@ -118,7 +118,7 @@ float4 main() : sv_target } [test] -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 10.0, 10.0, 10.0) [pixel shader todo(sm<4)] @@ -137,7 +137,7 @@ float4 main() : sv_target } [test] -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 10.0, 10.0, 10.0) [pixel shader todo(sm<4)] @@ -156,7 +156,7 @@ float4 main() : sv_target } [test] -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 10.0, 10.0, 10.0) % unroll can't be used with fastopt or loop diff --git a/tests/hlsl/matrix-indexing.shader_test b/tests/hlsl/matrix-indexing.shader_test index d26035149..a1c55c034 100644 --- a/tests/hlsl/matrix-indexing.shader_test +++ b/tests/hlsl/matrix-indexing.shader_test @@ -120,7 +120,7 @@ float4 main() : sv_target [test] uniform 0 float 2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (8, 9, 10, 11) @@ -136,5 +136,5 @@ float4 main() : sv_target [test] uniform 0 float 3 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (12, 13, 14, 15) diff --git a/tests/hlsl/max-min.shader_test b/tests/hlsl/max-min.shader_test index 46a813e6d..c3a7f2259 100644 --- a/tests/hlsl/max-min.shader_test +++ b/tests/hlsl/max-min.shader_test @@ -118,5 +118,5 @@ int4 main() : sv_target [test] uniform 0 int4 -1 -2 0 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) i32(-1, -2, -1, -2) diff --git a/tests/hlsl/minimum-precision.shader_test b/tests/hlsl/minimum-precision.shader_test index 9dcf17709..bc3bcb877 100644 --- a/tests/hlsl/minimum-precision.shader_test +++ b/tests/hlsl/minimum-precision.shader_test @@ -94,7 +94,7 @@ uint4 main() : sv_target uniform 0 uint4 0x020001 0x040003 0x060005 0x080007 uniform 4 uint4 0x120011 0x140013 0x160015 0x180017 uniform 8 uint4 0x220021 0x240023 0x260025 0x280027 -draw quad +todo(msl & sm>=6) draw quad todo probe (0, 0) u32(1, 1, 1, 1) % Same tests for signed integers @@ -153,7 +153,7 @@ uint4 main() : sv_target uniform 0 uint4 0x020001 0x040003 0x060005 0x080007 uniform 4 uint4 0x120011 0x140013 0x160015 0x180017 uniform 8 uint4 0x220021 0x240023 0x260025 0x280027 -draw quad +todo(msl & sm>=6) draw quad todo probe (0, 0) u32(1, 1, 1, 1) % Same tests for floating point numbers @@ -212,7 +212,7 @@ uint4 main() : sv_target uniform 0 uint4 0x40003c00 0x44004200 0x46004500 0x48004700 uniform 4 uint4 0x4a004980 0x4b004a80 0x4c004b80 0x4c804c40 uniform 8 uint4 0x4d804d40 0x4e004dc0 0x4e804e40 0x4f004ec0 -draw quad +todo(msl & sm>=6) draw quad todo probe (0, 0) u32(1, 1, 1, 1) [require] @@ -235,12 +235,12 @@ uint4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 100 -draw quad +todo(msl & sm>=6) draw quad % In D3D12 with SM5 all reads to the array return 0 if(sm>=6 | !d3d12) probe (0, 0) u32(100, 2, 0x7ff, 0xfff) uniform 0 uint 2 uniform 1 uint 1000 -draw quad +todo(msl & sm>=6) draw quad if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 1000, 0xfff) [rtv 0] @@ -261,12 +261,12 @@ int4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 100 -draw quad +todo(msl & sm>=6) draw quad % In D3D12 with SM5 all reads to the array return 0 if(sm>=6 | !d3d12) probe (0, 0) u32(100, 2, 0x7ff, 0xfff) uniform 0 uint 2 uniform 1 uint 1000 -draw quad +todo(msl & sm>=6) draw quad if(sm>=6 | !d3d12) probe (0, 0) u32(1, 2, 1000, 0xfff) [rtv 0] @@ -287,9 +287,9 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 float 3.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(3.0, 2.0, 0.5, 111.0) uniform 0 uint 2 uniform 1 float 5.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(1.0, 2.0, 5.0, 111.0) diff --git a/tests/hlsl/nointerpolation.shader_test b/tests/hlsl/nointerpolation.shader_test index b40526b4c..245473753 100644 --- a/tests/hlsl/nointerpolation.shader_test +++ b/tests/hlsl/nointerpolation.shader_test @@ -143,7 +143,7 @@ probe (0, 0, 640, 480) rgba (0.0, 1.0, 0.0, 1.0) shader model >= 6.0 [test] -draw triangle list 3 +todo(msl) draw triangle list 3 probe (320,240) rgba (0.250390589, 0.499088615, 0.250520796, 1.0) 4 [require] diff --git a/tests/hlsl/non-const-indexing.shader_test b/tests/hlsl/non-const-indexing.shader_test index dabf2507d..360e50799 100644 --- a/tests/hlsl/non-const-indexing.shader_test +++ b/tests/hlsl/non-const-indexing.shader_test @@ -36,22 +36,22 @@ float4 main() : SV_TARGET [test] uniform 0 float 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (11.0, 11.0, 11.0, 11.0) uniform 0 float 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (12.0, 12.0, 12.0, 12.0) uniform 0 float 1.6 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (12.0, 12.0, 12.0, 12.0) uniform 0 float 2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (13.0, 13.0, 13.0, 13.0) uniform 0 float 2.6 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (13.0, 13.0, 13.0, 13.0) uniform 0 float 3 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (14.0, 14.0, 14.0, 14.0) @@ -67,7 +67,7 @@ float4 main() : sv_target [test] uniform 0 float 2.3 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3, 3, 3, 3) @@ -83,16 +83,16 @@ float4 main() : SV_TARGET [test] uniform 0 float 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (21.0, 1.0, 24.0, 0.0) uniform 0 float 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (22.0, 0.0, 23.0, 1.0) uniform 0 float 2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (23.0, 1.0, 22.0, 0.0) uniform 0 float 3 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (24.0, 0.0, 21.0, 1.0) @@ -108,16 +108,16 @@ float4 main() : sv_target [test] uniform 0 float4 0 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) uniform 0 float4 1 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (5.0, 6.0, 7.0, 8.0) uniform 0 float4 0 1 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (5.0, 6.0, 7.0, 8.0) uniform 0 float4 1 1 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (9.0, 10.0, 11.0, 12.0) @@ -136,7 +136,7 @@ float4 main() : sv_target [test] uniform 0 float4 0 0 2.4 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 120.0, 90.0, 4.0) diff --git a/tests/hlsl/object-references.shader_test b/tests/hlsl/object-references.shader_test index 5158cecd9..b3bd47bc3 100644 --- a/tests/hlsl/object-references.shader_test +++ b/tests/hlsl/object-references.shader_test @@ -73,7 +73,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8) probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1) @@ -111,7 +111,7 @@ float4 main() : sv_target } [test] -todo(mvk & sm>=6) draw quad +todo(mvk & sm>=6 | msl & sm>=6) draw quad probe (0, 0) rgba (312, 312, 312, 111) @@ -134,7 +134,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2132, 2132, 2132, 1111) diff --git a/tests/hlsl/pointer-cast.shader_test b/tests/hlsl/pointer-cast.shader_test index ecd48bee8..fae79d10d 100644 --- a/tests/hlsl/pointer-cast.shader_test +++ b/tests/hlsl/pointer-cast.shader_test @@ -16,8 +16,8 @@ float4 main(float4 pos : SV_Position) : SV_Target [test] uniform 0 uint4 0 1 0x3e000000 0 -draw quad +todo(msl) draw quad probe (0, 0) rgba (0.25, 0.125, 0.0, 1.0) uniform 0 uint4 1 0 0x3e000000 0 -draw quad +todo(msl) draw quad probe (0, 0) rgba (0.5, 0.75, 0.0, 1.0) diff --git a/tests/hlsl/refract.shader_test b/tests/hlsl/refract.shader_test index 5f6313694..c9326f1c2 100644 --- a/tests/hlsl/refract.shader_test +++ b/tests/hlsl/refract.shader_test @@ -12,10 +12,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.550931, -0.453954, 0.3654653, -1.0248856) 32 uniform 8 float 100.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -34,10 +34,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (-0.519904912, -0.4332699, 0.0, 0.0) 32 uniform 8 float 100.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -55,10 +55,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (-0.519904912, -0.4332699, 0.0, 0.0) 32 uniform 8 float 100.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -76,10 +76,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (-0.519904912, -0.4332699, 0.0, 0.0) 32 uniform 8 float 100.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -98,10 +98,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.524978, 0.0, 0.0, 0.0) 32 uniform 8 float 100.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader] @@ -118,10 +118,10 @@ float4 main() : sv_target uniform 0 float4 0.5 -0.1 0.2 0.3 uniform 4 float4 0.6 0.4 -0.3 1.0 uniform 8 float 0.2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.5562381, -0.6762381, -0.6162381, -0.5962381) 32 uniform 8 float 100.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) [pixel shader fail(sm>=6)] diff --git a/tests/hlsl/register-reservations-profile.shader_test b/tests/hlsl/register-reservations-profile.shader_test index 6276c1d05..36a67735c 100644 --- a/tests/hlsl/register-reservations-profile.shader_test +++ b/tests/hlsl/register-reservations-profile.shader_test @@ -24,7 +24,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad % sm6 seems to ignore profile qualifiers entirely. if(sm>=6) probe (0,0) rgba (1, 1, 1, 99) if(sm<6) probe (0,0) rgba (0, 0, 0, 99) @@ -39,7 +39,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (1, 1, 1, 99) if(sm<6) probe (0,0) rgba (0, 0, 0, 99) @@ -53,7 +53,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (1, 1, 1, 99) @@ -93,7 +93,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 1, 1, 99) @@ -106,7 +106,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (1, 1, 1, 99) @@ -128,7 +128,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (1, 1, 1, 99) if(sm<6) probe (0,0) rgba (0, 0, 0, 99) @@ -142,7 +142,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (2, 2, 2, 99) % The documentation explicitly gives this case as an example, implying that a @@ -163,7 +163,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (2, 2, 2, 99) if(sm<6) probe (0,0) rgba (1, 1, 1, 99) @@ -177,7 +177,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2, 2, 2, 99) @@ -190,7 +190,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2, 2, 2, 99) @@ -203,7 +203,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2, 2, 2, 99) @@ -257,7 +257,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (1, 1, 1, 99) % Bracket exprs should still parse correctly. @@ -271,7 +271,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0, 0) rgba(0, 0, 0, 99) if(sm<6) probe (0, 0) rgba(1, 1, 1, 99) diff --git a/tests/hlsl/register-reservations-resources.shader_test b/tests/hlsl/register-reservations-resources.shader_test index 9b53f3c09..dc49c2d24 100644 --- a/tests/hlsl/register-reservations-resources.shader_test +++ b/tests/hlsl/register-reservations-resources.shader_test @@ -34,7 +34,7 @@ float4 main() : sv_target } [test] -todo(mvk & sm>=6) draw quad +todo(mvk & sm>=6 | msl & sm>=6) draw quad probe (0, 0) rgba (41.0, 41.0, 41.0, 1089.0) @@ -50,7 +50,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 99.0) @@ -65,7 +65,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 99.0) @@ -84,14 +84,14 @@ shader model >= 4.0 shader model < 6.0 [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 99.0) [require] shader model >= 6.0 [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 99.0) [require] @@ -110,7 +110,7 @@ float4 main() : sv_target [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 99.0) [pixel shader] @@ -123,7 +123,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 4.0, 4.0, 99.0) @@ -139,7 +139,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 99.0) @@ -154,7 +154,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.0, 2.0, 99.0) @@ -168,7 +168,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 2.0, 2.0, 99.0) @@ -241,5 +241,5 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 99.0) diff --git a/tests/hlsl/register-reservations-space.shader_test b/tests/hlsl/register-reservations-space.shader_test index 1518ed6a7..330f88ccd 100644 --- a/tests/hlsl/register-reservations-space.shader_test +++ b/tests/hlsl/register-reservations-space.shader_test @@ -26,7 +26,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 1, 1, 99) % Bracket syntax for registers. Ignored in SM>=6. @@ -39,7 +39,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad if(sm>=6) probe (0, 0) rgba (0, 0, 0, 99) if(sm<6) probe (0, 0) rgba (1, 1, 1, 99) @@ -74,7 +74,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0, 0, 0, 99) @@ -87,7 +87,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0, 0, 0, 99) @@ -103,7 +103,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (2, 2, 2, 99) if(sm<6) probe (0,0) rgba (1, 1, 1, 99) @@ -118,7 +118,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0, 0) rgba (0, 0, 0, 99) if(sm<6) probe (0, 0) rgba (1, 1, 1, 99) @@ -133,7 +133,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (2, 2, 2, 99) if(sm<6) probe (0,0) rgba (1, 1, 1, 99) @@ -161,7 +161,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm>=6) probe (0,0) rgba (2, 2, 2, 99) if(sm<6) probe (0,0) rgba (1, 1, 1, 99) diff --git a/tests/hlsl/return-semantics.shader_test b/tests/hlsl/return-semantics.shader_test index 8ef4cd410..4ad3b686c 100644 --- a/tests/hlsl/return-semantics.shader_test +++ b/tests/hlsl/return-semantics.shader_test @@ -38,5 +38,5 @@ float4 main(float cc : SEMC, float aa : SEMA, float bb[2] : SEMB) : sv_target } [test] -bug(mvk & sm>=6) draw quad +bug(mvk & sm>=6 | msl & sm>=6) draw quad probe (0, 0) f32(300, 100, 200, 201) diff --git a/tests/hlsl/return.shader_test b/tests/hlsl/return.shader_test index 6c6ae843e..7e1c63254 100644 --- a/tests/hlsl/return.shader_test +++ b/tests/hlsl/return.shader_test @@ -37,10 +37,10 @@ float4 main() : sv_target [test] uniform 0 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) uniform 0 float 0.8 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8) [pixel shader todo(sm<4)] @@ -63,10 +63,10 @@ void main(out float4 ret : sv_target) [test] uniform 0 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.3, 0.4, 0.5, 0.6) uniform 0 float 0.8 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) [pixel shader todo(sm<4)] @@ -89,13 +89,13 @@ void main(out float4 ret : sv_target) [test] uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) 1 uniform 0 float 0.5 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.3, 0.4, 0.5) 1 uniform 0 float 0.9 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8) 1 [pixel shader todo(sm<4)] @@ -115,13 +115,13 @@ void main(out float4 ret : sv_target) [test] uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) 1 uniform 0 float 0.5 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.6, 0.7, 0.8) 1 uniform 0 float 0.9 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.5, 0.6, 0.7) 1 [pixel shader] @@ -160,23 +160,23 @@ void main(out float4 ret : sv_target) [test] uniform 0 float 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.1, 0.1, 0.1) 1 uniform 0 float 0.1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2) 1 uniform 0 float 0.3 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1 uniform 0 float 0.7 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.8, 0.8, 0.8, 0.8) 1 uniform 0 float 0.9 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.9, 0.9, 0.9, 0.9) 1 [pixel shader todo(sm<4)] @@ -204,10 +204,10 @@ void main(out float4 ret : sv_target) [test] uniform 0 float 0.2 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2) uniform 0 float 0.8 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) [pixel shader todo(sm<4)] @@ -236,21 +236,21 @@ void main(out float4 ret : sv_target) uniform 0 float4 0.3 0.0 0.0 0.0 uniform 4 float4 0.0 0.0 0.0 0.0 uniform 8 float4 0.1 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.1, 0.1, 0.1) 1 uniform 4 float4 0.35 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.2, 0.2, 0.2, 0.2) 1 uniform 8 float4 0.5 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1 uniform 0 float4 1.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.4, 0.4, 0.4, 0.4) 1 uniform 4 float4 2.0 0.0 0.0 0.0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (0.9, 0.9, 0.9, 0.9) 1 diff --git a/tests/hlsl/round.shader_test b/tests/hlsl/round.shader_test index 201acbdba..c76709734 100644 --- a/tests/hlsl/round.shader_test +++ b/tests/hlsl/round.shader_test @@ -27,7 +27,7 @@ float4 main() : sv_target [test] uniform 0 float4 -0.4 -6.6 7.6 3.4 draw quad -probe (0, 0) rgba (-7.0, 8.0, 0.0, 3.0) 4 +todo(msl & sm>=6) probe (0, 0) f32(-7.0, 8.0, 0.0, 3.0) 4 @@ -43,4 +43,4 @@ float4 main() : sv_target [test] uniform 0 float4 -1 0 2 10 draw quad -probe (0, 0) rgba (-1.0, 0.0, 2.0, 10.0) 4 +todo(msl & sm>=6) probe (0, 0) f32(-1.0, 0.0, 2.0, 10.0) 4 diff --git a/tests/hlsl/rt-get-sample-info.shader_test b/tests/hlsl/rt-get-sample-info.shader_test index 737c9e7af..f65a08868 100644 --- a/tests/hlsl/rt-get-sample-info.shader_test +++ b/tests/hlsl/rt-get-sample-info.shader_test @@ -34,8 +34,8 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (-0.125, -0.375, 0.375, -0.125) uniform 0 uint 2 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (-0.375, 0.125, 0.125, 0.375) diff --git a/tests/hlsl/sampler.shader_test b/tests/hlsl/sampler.shader_test index 424a9b1b0..727986f80 100644 --- a/tests/hlsl/sampler.shader_test +++ b/tests/hlsl/sampler.shader_test @@ -296,7 +296,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba(655.0, 0, -655.0, 0) 4096 [require] diff --git a/tests/hlsl/saturate.shader_test b/tests/hlsl/saturate.shader_test index 7c5ff0efe..4e764ca2b 100644 --- a/tests/hlsl/saturate.shader_test +++ b/tests/hlsl/saturate.shader_test @@ -23,7 +23,7 @@ float4 main() : sv_target [test] uniform 0 float4 -2 0 2 -1 draw quad -probe (0, 0) rgba (0.0, 0.0, 1.0, 0.0) +todo(msl & sm>=6) probe (0, 0) f32(0.0, 0.0, 1.0, 0.0) [pixel shader] uniform float4 u; diff --git a/tests/hlsl/semantic-cascading.shader_test b/tests/hlsl/semantic-cascading.shader_test index 4554e261d..703965adb 100644 --- a/tests/hlsl/semantic-cascading.shader_test +++ b/tests/hlsl/semantic-cascading.shader_test @@ -76,7 +76,7 @@ float4 main(float4 position : position, struct apple ap : CASCADE, out float4 re [test] clear rtv 0 0.0 0.0 0.0 0.0 -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0, 0) f32(0.0, 3.0, 5.0, 5.1) diff --git a/tests/hlsl/shader-interstage-interface.shader_test b/tests/hlsl/shader-interstage-interface.shader_test index 159d4c07b..cf5768604 100644 --- a/tests/hlsl/shader-interstage-interface.shader_test +++ b/tests/hlsl/shader-interstage-interface.shader_test @@ -52,7 +52,7 @@ void main(float4 position : SV_Position, float2 t0 : TEXCOORD0, } [test] -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0, 0) rgba (10.0, 8.0, 7.0, 3.0) [input layout] @@ -101,7 +101,7 @@ float4 main(struct ps_data ps_input) : SV_Target [test] uniform 0 uint4 1 2 0 1 clear rtv 0 1.0 1.0 1.0 1.0 -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0, 0) rgba(0.0, 1.0, 0.0, 1.0) [require] @@ -192,7 +192,7 @@ format r32g32b32a32-sint size (2d, 640, 480) [test] -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 todo(opengl) probe (0, 0) i32(-7000, -2, 0, 0) [pixel shader] @@ -206,7 +206,7 @@ format r32g32b32a32-uint size (2d, 640, 480) [test] -draw triangle strip 4 +todo(msl & sm>=6) draw triangle strip 4 probe (0, 0) i32(-7000, -2, 0, 0) [require] diff --git a/tests/hlsl/sign.shader_test b/tests/hlsl/sign.shader_test index 066f81a6b..a2ae63dee 100644 --- a/tests/hlsl/sign.shader_test +++ b/tests/hlsl/sign.shader_test @@ -8,13 +8,13 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) uniform 0 float4 -1.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0) uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) @@ -28,7 +28,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 2.0 3.0 4.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -43,7 +43,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 2.0 0.0 0.0 uniform 4 float4 3.0 4.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) @@ -58,15 +58,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 int4 1 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 1, 1, 1) if(sm<4) uniform 0 float4 -1 0 0 0 if(sm>=4) uniform 0 int4 -1 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1, -1, -1, -1) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 int4 0 0 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0, 0, 0, 0) @@ -81,7 +81,7 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1 2 3 4 if(sm>=4) uniform 0 int4 1 2 3 4 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 1, 1, 1) @@ -98,5 +98,5 @@ if(sm<4) uniform 0 float4 1 2 0 0 if(sm<4) uniform 4 float4 3 4 0 0 if(sm>=4) uniform 0 int4 1 2 0 0 if(sm>=4) uniform 4 int4 3 4 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1, 1, 1, 1) diff --git a/tests/hlsl/sm6-ternary.shader_test b/tests/hlsl/sm6-ternary.shader_test index d17d5c264..cf036b032 100644 --- a/tests/hlsl/sm6-ternary.shader_test +++ b/tests/hlsl/sm6-ternary.shader_test @@ -14,10 +14,10 @@ float4 main() : sv_target [test] uniform 0 float4 2.0 3.0 4.0 5.0 -draw quad +todo(msl) draw quad probe (0, 0) rgba (2.0, 3.0, 4.0, 5.0) uniform 0 float4 0.0 10.0 11.0 12.0 -draw quad +todo(msl) draw quad probe (0, 0) rgba (-1.0, 9.0, 10.0, 11.0) @@ -33,7 +33,7 @@ float4 main() : sv_target [test] uniform 0 float4 1.0 0.0 0.0 0.0 -draw quad +todo(msl) draw quad probe (0, 0) rgba (0.5, 0.2, 0.7, 0.0) diff --git a/tests/hlsl/srv-buffers.shader_test b/tests/hlsl/srv-buffers.shader_test index fb9011499..08c7af059 100644 --- a/tests/hlsl/srv-buffers.shader_test +++ b/tests/hlsl/srv-buffers.shader_test @@ -185,7 +185,7 @@ float4 main() : sv_target return width; } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba (4.0, 4.0, 4.0, 4.0) [require] diff --git a/tests/hlsl/srv-structuredbuffer.shader_test b/tests/hlsl/srv-structuredbuffer.shader_test index 2225a0ee4..d0f050984 100644 --- a/tests/hlsl/srv-structuredbuffer.shader_test +++ b/tests/hlsl/srv-structuredbuffer.shader_test @@ -18,7 +18,7 @@ float4 main() : sv_target } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) [pixel shader todo] @@ -38,10 +38,10 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(4.0, 5.0, 6.0, 7.0) [srv 0] @@ -65,10 +65,10 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 1.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(3.0, 4.0, 5.0, 1.0) % Also true for structs. @@ -90,13 +90,13 @@ float4 main() : sv_target [test] uniform 0 uint 2 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(6.0, 7.0, 8.0, 2.0) uniform 0 uint 3 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(9.0, 10.0, 11.0, 3.0) uniform 0 uint 4 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(12.0, 13.0, 14.0, 4.0) % Matrices @@ -128,17 +128,17 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 4.0, 8.0, 12.0) uniform 0 uint 0 uniform 1 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(1.0, 5.0, 9.0, 13.0) uniform 0 uint 1 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(16.0, 20.0, 24.0, 28.0) [pixel shader todo] @@ -160,17 +160,17 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) uniform 0 uint 0 uniform 1 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(4.0, 5.0, 6.0, 7.0) uniform 0 uint 1 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(16.0, 17.0, 18.0, 19.0) [pixel shader todo] @@ -185,11 +185,11 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(1.0, 2.0, 0.0, 4.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(17.0, 18.0, 16.0, 20.0) [pixel shader todo] @@ -205,12 +205,12 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm<6) probe (0, 0) rgba(4.0, 8.0, 0.0, 1.0) if(sm>=6) probe (0, 0) rgba(1.0, 2.0, 0.0, 4.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm<6) probe (0, 0) rgba(20.0, 24.0, 16.0, 17.0) if(sm>=6) probe (0, 0) rgba(17.0, 18.0, 16.0, 20.0) @@ -239,17 +239,17 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(1.0, 3.0, 5.0, 1.0) uniform 0 uint 0 uniform 1 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(2.0, 4.0, 6.0, 1.0) uniform 0 uint 1 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe(0, 0) rgba(7.0, 9.0, 11.0, 1.0) [pixel shader todo] @@ -267,19 +267,19 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm<6) probe (0, 0) rgba(1.0, 2.0, 3.0, 1.0) if(sm>=6) probe (0, 0) rgba(1.0, 3.0, 5.0, 1.0) uniform 0 uint 0 uniform 1 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm<6) probe (0, 0) rgba(4.0, 5.0, 6.0, 1.0) if(sm>=6) probe (0, 0) rgba(2.0, 4.0, 6.0, 1.0) uniform 0 uint 1 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad if(sm<6) probe(0, 0) rgba(7.0, 8.0, 9.0, 1.0) if(sm>=6) probe(0, 0) rgba(7.0, 9.0, 11.0, 1.0) @@ -309,17 +309,17 @@ float4 main() : sv_target [test] uniform 0 uint 0 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 4.0, 0.0, 0.0) uniform 0 uint 0 uniform 1 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(1.0, 4.0, 0.0, 1.0) uniform 0 uint 1 uniform 1 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(5.0, 9.0, 1.0, 0.0) % Same values as above, but mixed float and int. @@ -347,10 +347,10 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0) % Nested structs. @@ -384,10 +384,10 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0) [pixel shader todo] @@ -425,8 +425,8 @@ float4 main() : sv_target [test] uniform 0 uint 0 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(0.0, 1.0, 2.0, 3.0) uniform 0 uint 1 -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe (0, 0) rgba(5.0, 6.0, 7.0, 8.0) diff --git a/tests/hlsl/step.shader_test b/tests/hlsl/step.shader_test index c1bb14ec9..b443692f3 100644 --- a/tests/hlsl/step.shader_test +++ b/tests/hlsl/step.shader_test @@ -9,7 +9,7 @@ float4 main() : sv_target [test] uniform 0 float4 5.0 -2.6 3.0 2.0 uniform 4 float4 1.0 -4.3 3.0 4.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 1.0, 1.0) diff --git a/tests/hlsl/switch.shader_test b/tests/hlsl/switch.shader_test index f777e8f0a..e8e66610f 100644 --- a/tests/hlsl/switch.shader_test +++ b/tests/hlsl/switch.shader_test @@ -17,15 +17,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 3 0 0 0 if(sm>=4) uniform 0 uint4 3 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (5.0, 5.0, 5.0, 5.0) if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 4.0, 4.0, 4.0) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (3.0, 3.0, 3.0, 3.0) @@ -91,15 +91,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 2 0 0 0 if(sm>=4) uniform 0 uint4 2 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.1, 2.0, 3.0, 4.0) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.1, 2.0, 3.0, 4.0) @@ -127,11 +127,11 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 2 0 0 0 if(sm>=4) uniform 0 uint4 2 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.1, 2.1, 3.1, 4.1) if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) @@ -390,15 +390,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 2 0 0 0 if(sm>=4) uniform 0 uint4 2 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.1, 2.1, 3.1, 4.1) if(sm<4) uniform 0 float4 1 0 0 0 if(sm>=4) uniform 0 uint4 1 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.2, 2.2, 3.2, 4.2) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) % switch breaks within a loop @@ -431,7 +431,7 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 2 0 0 0 if(sm>=4) uniform 0 uint4 2 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (5.0, 6.0, 7.0, 8.0) @@ -464,15 +464,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 5.0, 6.0, 7.0) if(sm<4) uniform 0 float4 2 0 0 0 if(sm>=4) uniform 0 uint4 2 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (2.0, 3.0, 4.0, 5.0) if(sm<4) uniform 0 float4 3 0 0 0 if(sm>=4) uniform 0 uint4 3 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 5.0, 6.0, 7.0) @@ -505,15 +505,15 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 3 0 0 0 if(sm>=4) uniform 0 uint4 3 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) if(sm<4) uniform 0 float4 0 0 0 0 if(sm>=4) uniform 0 uint4 0 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 5.0, 6.0, 7.0) if(sm<4) uniform 0 float4 5 0 0 0 if(sm>=4) uniform 0 uint4 5 0 0 0 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0) % 'continue' is not supported in switches @@ -574,11 +574,11 @@ float4 main() : sv_target [test] if(sm<4) uniform 0 float4 1 0 3 1 if(sm>=4) uniform 0 uint4 1 0 3 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (10.0, 11.0, 12.0, 13.0) if(sm<4) uniform 0 float4 0 0 3 1 if(sm>=4) uniform 0 uint4 0 0 3 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (7.0, 8.0, 9.0, 10.0) % return from a switch nested in a loop @@ -612,10 +612,10 @@ float4 main() : sv_target [test] uniform 0 float4 0 0 3 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (304.0, 305.0, 306.0, 307.0) uniform 0 float4 1 0 3 1 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.0, 4.0, 5.0, 6.0) [require] @@ -642,11 +642,11 @@ float4 main() : sv_target [test] uniform 0 uint64_t2 2 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (5.0, 5.0, 5.0, 5.0) uniform 0 uint64_t2 0x100000002 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (4.0, 4.0, 4.0, 4.0) uniform 0 uint64_t2 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.0, 3.0, 3.0, 3.0) diff --git a/tests/hlsl/texture-load-typed.shader_test b/tests/hlsl/texture-load-typed.shader_test index 8ca4a915e..0fabe60b3 100644 --- a/tests/hlsl/texture-load-typed.shader_test +++ b/tests/hlsl/texture-load-typed.shader_test @@ -48,7 +48,7 @@ float4 main() : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.8, -3.0, 4294967295.0, 123.0) % lowercase 'texture2D' diff --git a/tests/hlsl/texture-load.shader_test b/tests/hlsl/texture-load.shader_test index ed1e7fac1..0c2df0483 100644 --- a/tests/hlsl/texture-load.shader_test +++ b/tests/hlsl/texture-load.shader_test @@ -15,7 +15,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) probe (1, 0) rgba (0.5, 0.7, 0.6, 0.8) probe (0, 1) rgba (0.6, 0.5, 0.2, 0.1) @@ -30,7 +30,7 @@ float4 main(float4 pos : sv_position) : sv_target } [test] -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.1, 0.2, 0.3, 0.4) probe (1, 0) rgba (0.6, 0.5, 0.2, 0.1) probe (0, 1) rgba (0.5, 0.7, 0.6, 0.8) @@ -168,7 +168,7 @@ float4 main(uint id : sv_sampleindex) : sv_target [test] clear rtv 0 0.0 0.0 0.0 0.0 draw quad -probe (32, 32) rgba(3.75, 0.25, 0.5, 1.0) +todo(msl & sm>=6) probe (32, 32) f32(3.75, 0.25, 0.5, 1.0) copy rtv 0 srv 0 [rtv 0] @@ -191,10 +191,10 @@ draw quad probe (32, 32) rgba(1.0, 0.25, 0.5, 1.0) uniform 0 uint 1 draw quad -probe (32, 32) rgba(2.0, 0.25, 0.5, 1.0) +todo(msl & sm>=6) probe (32, 32) f32(2.0, 0.25, 0.5, 1.0) uniform 0 uint 2 draw quad -probe (32, 32) rgba(4.0, 0.25, 0.5, 1.0) +todo(msl & sm>=6) probe (32, 32) f32(4.0, 0.25, 0.5, 1.0) uniform 0 uint 3 draw quad -probe (32, 32) rgba(8.0, 0.25, 0.5, 1.0) +todo(msl & sm>=6) probe (32, 32) f32(8.0, 0.25, 0.5, 1.0) diff --git a/tests/hlsl/tgsm.shader_test b/tests/hlsl/tgsm.shader_test index 03093707a..cecbbafa7 100644 --- a/tests/hlsl/tgsm.shader_test +++ b/tests/hlsl/tgsm.shader_test @@ -67,7 +67,7 @@ void main(uint local_idx : SV_GroupIndex) } [test] -todo(sm<6) dispatch 1 1 1 +todo(sm<6 | msl) dispatch 1 1 1 probe uav 0 (0) u32(0xcafef00d) probe uav 0 (1) u32(0xcafef00d) probe uav 0 (2) u32(0xcafef00d) @@ -99,7 +99,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID) } [test] -todo(sm<6) dispatch 4 1 1 +todo(sm<6 | msl) dispatch 4 1 1 probe uav 1 (0) u32(0) probe uav 1 (1) u32(33) probe uav 1 (2) u32(66) @@ -129,7 +129,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID) } [test] -todo(sm<6) dispatch 4 1 1 +todo(sm<6 | msl) dispatch 4 1 1 probe uav 1 (0) i32(0) probe uav 1 (1) i32(-31) probe uav 1 (2) i32(-62) @@ -191,7 +191,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID, [test] uniform 0 uint 1 -todo(sm<6) dispatch 2 1 1 +todo(sm<6 | msl) dispatch 2 1 1 probe uav 1 (0) f32(0.0) probe uav 1 (1) f32(0.0) probe uav 1 (2) f32(0.0) @@ -234,7 +234,7 @@ void main(uint local_idx : SV_GroupIndex) } [test] -todo(sm<6) dispatch 1 1 1 +todo(sm<6 | msl) dispatch 1 1 1 probe uav 1 (0) u32(39) [uav 0] @@ -263,7 +263,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID) } [test] -todo(sm<6) dispatch 2 1 1 +todo(sm<6 | msl) dispatch 2 1 1 probe uav 0 (0) u32(0x18) probe uav 0 (1) u32(0x18) probe uav 0 (2) u32(0x38) @@ -305,7 +305,7 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID) } [test] -todo(sm<6) dispatch 2 1 1 +todo(sm<6 | msl) dispatch 2 1 1 probe uav 0 (0) u32(0x14321) probe uav 0 (1) u32(0x14321) probe uav 0 (2) u32(0x14321) diff --git a/tests/hlsl/trigonometry.shader_test b/tests/hlsl/trigonometry.shader_test index 1bce36281..19ab7fd53 100644 --- a/tests/hlsl/trigonometry.shader_test +++ b/tests/hlsl/trigonometry.shader_test @@ -86,10 +86,10 @@ float4 main() : sv_target [test] uniform 0 float4 -6.28318531 -0.88137359 0.88137359 6.28318531 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-267.744894, -1.0, 1.0, 267.744894) 2 uniform 0 float4 -0.0 0.0 -90.0 90.0 -draw quad +todo(msl & sm>=6) draw quad % mingw does not support "inf" for scanf(), but numbers beyond FLOAT_MAX consistently result in inf. probe (0, 0) rgba (0.0, 0.0, -1.0e39, 1.0e39) 1 @@ -104,10 +104,10 @@ float4 main() : sv_target [test] uniform 0 float4 -1.76274717 -1.3169579 1.3169579 1.76274717 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (3.0, 2.0, 2.0, 3.0) 2 uniform 0 float4 -0.0 0.0 -90.0 90.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0e39, 1.0e39) 1 @@ -121,10 +121,10 @@ float4 main() : sv_target [test] uniform 0 float4 -1.57079633 -0.54930614 0.54930614 1.57079633 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-0.91715234, -0.5, 0.5, 0.91715234) 2 uniform 0 float4 -10.0 -0.0 0.0 10.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (-1.0, 0.0, 0.0, 1.0) 1 @@ -171,5 +171,5 @@ float4 main() : sv_target } [test] -todo(glsl | msl) draw quad +todo(glsl | msl & sm<6) draw quad probe (0, 0) rgba (0, 0, 0, 0); diff --git a/tests/hlsl/trunc.shader_test b/tests/hlsl/trunc.shader_test index faa81e5f4..abcbfeee1 100644 --- a/tests/hlsl/trunc.shader_test +++ b/tests/hlsl/trunc.shader_test @@ -46,4 +46,4 @@ float4 main() : sv_target if(sm<4) uniform 0 float4 -1 6 7 3 if(sm>=4) uniform 0 int4 -1 6 7 3 draw quad -probe (0, 0) rgba (6.0, 7.0, -1.0, 3.0) +todo(msl & sm>=6) probe (0, 0) f32(6.0, 7.0, -1.0, 3.0) diff --git a/tests/hlsl/uav-counter.shader_test b/tests/hlsl/uav-counter.shader_test index a2b208eb4..10f8676ec 100644 --- a/tests/hlsl/uav-counter.shader_test +++ b/tests/hlsl/uav-counter.shader_test @@ -15,7 +15,7 @@ void main() } [test] -todo(sm<6) dispatch 3 1 1 +todo(sm<6 | msl) dispatch 3 1 1 probe uav 1 (0) u32(12) [uav 1] @@ -32,5 +32,5 @@ void main() } [test] -todo(sm<6) dispatch 3 1 1 +todo(sm<6 | msl) dispatch 3 1 1 probe uav 1 (0) i32(-12) diff --git a/tests/hlsl/uav-rwstructuredbuffer.shader_test b/tests/hlsl/uav-rwstructuredbuffer.shader_test index 26fbbb6ac..93613b3cd 100644 --- a/tests/hlsl/uav-rwstructuredbuffer.shader_test +++ b/tests/hlsl/uav-rwstructuredbuffer.shader_test @@ -33,7 +33,7 @@ float4 main() : sv_target1 } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe uav 2 (0) rgba (11.1, 12.2, 13.3, 14.4) probe uav 2 (1) rgba (15.5, 16.6, 17.7, 18.8) @@ -153,7 +153,7 @@ float4 main() : sv_target1 } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe uav 2 (0) i32(11, -12, 13, -14) probe uav 2 (1) i32(-15, 16, -17, 18) @@ -175,7 +175,7 @@ float4 main() : sv_target1 } [test] -todo(sm<6) draw quad +todo(sm<6 | msl) draw quad probe uav 2 (0) i32(11) probe uav 2 (1) i32(12) diff --git a/tests/hlsl/unroll.shader_test b/tests/hlsl/unroll.shader_test index cb21079be..efe5872f0 100644 --- a/tests/hlsl/unroll.shader_test +++ b/tests/hlsl/unroll.shader_test @@ -19,7 +19,7 @@ float4 main() : sv_target [test] uniform 0 float 1 -todo(sm<4) draw quad +todo(sm<4 | msl & sm>=6) draw quad probe (0,0) rgba(10.0, 1.0, 2.0, 3.0) [pixel shader] diff --git a/tests/hlsl/vector-indexing-uniform.shader_test b/tests/hlsl/vector-indexing-uniform.shader_test index b57165fd4..69650007f 100644 --- a/tests/hlsl/vector-indexing-uniform.shader_test +++ b/tests/hlsl/vector-indexing-uniform.shader_test @@ -12,5 +12,5 @@ float4 main() : SV_TARGET [test] uniform 0 float 2 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.5, 0.3, 0.8, 0.2) diff --git a/tests/hlsl/vertex-shader-ops.shader_test b/tests/hlsl/vertex-shader-ops.shader_test index 0bbbf7063..160f32823 100644 --- a/tests/hlsl/vertex-shader-ops.shader_test +++ b/tests/hlsl/vertex-shader-ops.shader_test @@ -28,7 +28,7 @@ void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos [test] if(sm<4) uniform 0 float 0.0 if(sm>=4) uniform 0 float4 0.0 0.0 0.0 0.0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0) @@ -49,12 +49,12 @@ void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos if(sm<4) uniform 0 float 3 if(sm<4) uniform 4 float 4 if(sm>=4) uniform 0 int4 3 4 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0) if(sm<4) uniform 0 float -2 if(sm<4) uniform 4 float -2 if(sm>=4) uniform 0 int4 -2 -2 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 0.0, 0.0, 1.0) @@ -75,12 +75,12 @@ void main(out float4 res : COLOR1, in float4 pos : position, out float4 out_pos if(sm<4) uniform 0 float 0 if(sm<4) uniform 4 float 2 if(sm>=4) uniform 0 int4 0 2 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (0.0, 1.0, 0.0, 1.0) if(sm<4) uniform 0 float -2 if(sm<4) uniform 4 float 8 if(sm>=4) uniform 0 int4 -2 8 0 0 -draw quad +todo(msl & sm>=6) draw quad probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 1d1ad6cb5..aa1417f83 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -2808,7 +2808,7 @@ START_TEST(shader_runner) run_shader_tests_gl(); # endif # ifdef HAVE_METAL - run_shader_tests_metal(); + run_shader_tests_metal(dxc); # endif run_shader_tests_vulkan(); run_shader_tests_d3d12(dxc); diff --git a/tests/shader_runner.h b/tests/shader_runner.h index d04cd5b36..c195bfe8c 100644 --- a/tests/shader_runner.h +++ b/tests/shader_runner.h @@ -304,7 +304,7 @@ void run_shader_tests_d3d9(void); void run_shader_tests_d3d11(void); #else void run_shader_tests_gl(void); -void run_shader_tests_metal(void); +void run_shader_tests_metal(void *dxc_compiler); void run_shader_tests_vulkan(void); #endif void run_shader_tests_d3d12(void *dxc_compiler); diff --git a/tests/shader_runner_metal.m b/tests/shader_runner_metal.m index ad917e70e..86b4da3f3 100644 --- a/tests/shader_runner_metal.m +++ b/tests/shader_runner_metal.m @@ -403,7 +403,10 @@ static bool compile_shader(struct metal_runner *runner, enum shader_type type, s info.next = &interface_info; info.source.code = ID3D10Blob_GetBufferPointer(runner->d3d_blobs[type]); info.source.size = ID3D10Blob_GetBufferSize(runner->d3d_blobs[type]); - info.source_type = VKD3D_SHADER_SOURCE_DXBC_TPF; + if (runner->r.minimum_shader_model < SHADER_MODEL_6_0) + info.source_type = VKD3D_SHADER_SOURCE_DXBC_TPF; + else + info.source_type = VKD3D_SHADER_SOURCE_DXBC_DXIL; info.target_type = VKD3D_SHADER_TARGET_MSL; info.options = options; info.option_count = ARRAY_SIZE(options); @@ -1111,11 +1114,8 @@ static bool metal_runner_init(struct metal_runner *runner) } runner->caps.runner = "Metal"; - runner->caps.compiler = HLSL_COMPILER; runner->caps.tags[0] = "msl"; runner->caps.tag_count = 1; - runner->caps.minimum_shader_model = SHADER_MODEL_4_0; - runner->caps.maximum_shader_model = SHADER_MODEL_5_1; return true; } @@ -1126,15 +1126,33 @@ static void metal_runner_cleanup(struct metal_runner *runner) [runner->device release]; } -void run_shader_tests_metal(void) +void run_shader_tests_metal(void *dxc_compiler) { + bool skip_sm4 = test_skipping_execution("Metal", HLSL_COMPILER, SHADER_MODEL_4_0, SHADER_MODEL_5_1); + bool skip_sm6 = test_skipping_execution("Metal", "dxcompiler", SHADER_MODEL_6_0, SHADER_MODEL_6_2); struct metal_runner runner; - if (test_skipping_execution("Metal", HLSL_COMPILER, SHADER_MODEL_4_0, SHADER_MODEL_5_1)) + if (skip_sm4 && skip_sm6) return; if (!metal_runner_init(&runner)) return; - run_shader_tests(&runner.r, &runner.caps, &metal_runner_ops, NULL); + + if (!skip_sm4) + { + runner.caps.compiler = HLSL_COMPILER; + runner.caps.minimum_shader_model = SHADER_MODEL_4_0; + runner.caps.maximum_shader_model = SHADER_MODEL_5_1; + run_shader_tests(&runner.r, &runner.caps, &metal_runner_ops, NULL); + } + + if (dxc_compiler && !skip_sm6) + { + runner.caps.compiler = "dxcompiler"; + runner.caps.minimum_shader_model = SHADER_MODEL_6_0; + runner.caps.maximum_shader_model = SHADER_MODEL_6_2; + run_shader_tests(&runner.r, &runner.caps, &metal_runner_ops, dxc_compiler); + } + metal_runner_cleanup(&runner); }