tests: Remove [require] directives for tests that use int and bool uniforms.

These tests should actually compile and run in SM1, which is possible
if we pass the int and uint uniforms in the expected IEEE 754 float
format for SM1 shaders.

Also, bools should be passed as 1.0f or 0.0f to SM1.
This commit is contained in:
Francisco Casas 2024-01-31 17:10:29 -03:00 committed by Alexandre Julliard
parent 22c47e57f5
commit 6a8939e19f
Notes: Alexandre Julliard 2024-02-13 23:11:43 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/616
14 changed files with 220 additions and 176 deletions

View File

@ -48,10 +48,8 @@ uniform 0 float4 -1.0 0.0 0.0 0.0
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform uint4 b;
float4 main() : sv_target
@ -60,26 +58,32 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 1 1 1 1
draw quad
if(sm<4) uniform 0 float4 1 1 1 1
if(sm>=4) uniform 0 uint4 1 1 1 1
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 0 1 0 0
draw quad
if(sm<4) uniform 0 float4 0 1 0 0
if(sm>=4) uniform 0 uint4 0 1 0 0
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 0 0 1 0
draw quad
if(sm<4) uniform 0 float4 0 0 1 0
if(sm>=4) uniform 0 uint4 0 0 1 0
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 0 0 0 1
draw quad
if(sm<4) uniform 0 float4 0 0 0 1
if(sm>=4) uniform 0 uint4 0 0 0 1
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (0.0, 0.0, 0.0, 0.0)
[pixel shader]
[pixel shader todo(sm<4)]
uniform uint b;
float4 main() : sv_target
@ -88,9 +92,11 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.0, 1.0, 1.0, 1.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (0.0, 0.0, 0.0, 0.0)

View File

@ -14,11 +14,7 @@ draw quad
probe all rgba (0.0, 0.0, 1.0, 1.0)
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform float4 x;
uniform int4 y;
@ -29,12 +25,13 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 0.0 0.0 2.0 4.0
uniform 4 int4 0 1 0 10
draw quad
if(sm<4) uniform 4 float4 0 1 0 10
if(sm>=4) uniform 4 int4 0 1 0 10
todo(sm<4) draw quad
probe all rgba (0.0, 10.0, 1.0, 11.0)
[pixel shader]
[pixel shader todo(sm<4)]
uniform bool4 b;
float4 main() : sv_target
@ -43,6 +40,7 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 0x00000001 0x00000002 0x80000000 0x00000000
draw quad
if(sm<4) uniform 0 float4 1.0 1.0 1.0 0.0
if(sm>=4) uniform 0 uint4 0x00000001 0x00000002 0x80000000 0x00000000
todo(sm<4) draw quad
probe all rgba (2.0, 2.0, 2.0, 0.0)

View File

@ -1,7 +1,4 @@
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int i;
uniform uint u;
uniform bool b;
@ -13,15 +10,19 @@ float4 main() : sv_target
}
[test]
uniform 0 int -1
uniform 1 uint 3
uniform 2 int -2
uniform 3 float 0.5
draw quad
if(sm<4) uniform 0 float -1
if(sm<4) uniform 4 float 3
if(sm<4) uniform 8 float 1
if(sm<4) uniform 12 float 0.5
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
todo(sm<4) draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]
[pixel shader]
float4 main() : sv_target
{
int i = -1;

View File

@ -1,7 +1,4 @@
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int i;
uniform uint u;
uniform bool b;
@ -13,15 +10,19 @@ float4 main() : sv_target
}
[test]
uniform 0 int -1
uniform 1 uint 3
uniform 2 int -2
uniform 3 float 0.5
draw quad
if(sm<4) uniform 0 float -1
if(sm<4) uniform 4 float 3
if(sm<4) uniform 8 float 1
if(sm<4) uniform 12 float 0.5
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
todo(sm<4) draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]
[pixel shader]
float4 main() : sv_target
{
int i = -1;

View File

@ -1,7 +1,4 @@
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform float f;
uniform uint u;
uniform bool b;
@ -19,15 +16,19 @@ float4 main() : sv_target
}
[test]
uniform 0 float 2.6
uniform 1 int -2
uniform 2 int -2
uniform 3 float -3.6
draw quad
if(sm<4) uniform 0 float 2.6
if(sm<4) uniform 4 float -2
if(sm<4) uniform 8 float 1.0
if(sm<4) uniform 12 float -3.6
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
todo(sm<4) draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]
[pixel shader]
float4 main() : sv_target
{
float f = 2.6;
@ -45,4 +46,5 @@ float4 main() : sv_target
[test]
draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
if(sm<4) todo probe all rgba (0.5, 4.2949673e+009, 0.5, 0.5)
if(sm>=4) probe all rgba (0.5, 0.5, 0.5, 0.5)

View File

@ -1,6 +1,8 @@
% On SM1, uints can only be used with known-positive values.
[require]
shader model >= 4.0
[pixel shader]
uniform float f;
uniform int i;
@ -26,8 +28,8 @@ uniform 3 float -3.6
draw quad
probe all rgba (0.5, 0.5, 0.5, 0.5)
[pixel shader]
[pixel shader]
float4 main() : sv_target
{
float f = 2.6;

View File

@ -37,10 +37,7 @@ uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm<4) draw quad
probe all rgba (7.0, 8.0, 0.0, 4.0) 4
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int4 u;
float4 main() : sv_target
@ -52,6 +49,7 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 -1 6 7 3
draw quad
if(sm<4) uniform 0 float4 -1 6 7 3
if(sm>=4) uniform 0 int4 -1 6 7 3
todo(sm<4) draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0) 4

View File

@ -37,10 +37,8 @@ uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm<4) draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0) 4
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int4 u;
float4 main() : sv_target
@ -52,6 +50,7 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 -1 6 7 3
draw quad
if(sm<4) uniform 0 float4 -1 6 7 3
if(sm>=4) uniform 0 int4 -1 6 7 3
todo(sm<4) draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0) 4

View File

@ -69,8 +69,6 @@ uniform 0 float4 -1.9 -1.0 2.9 4.0
todo draw quad
probe all rgba (-1.0, -1.0, 2.0, 4.0)
[require]
shader model >= 4.0
[pixel shader todo]
uniform int4 i;
@ -88,6 +86,7 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 -2 0 1 -3000000
if(sm<4) uniform 0 float4 -2 0 1 -3000000
if(sm>=4) uniform 0 int4 -2 0 1 -3000000
todo(sm<6) draw quad
probe all rgba (-1.0, 0.0, 1.0, -3000000.0)
probe all rgba (-1.0, 0.0, 1.0, -3000000.0) 4

View File

@ -13,10 +13,8 @@ uniform 4 float4 0.0 -10.0 10.0 100.0
draw quad
probe all rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int4 x;
uniform int4 y;
@ -26,9 +24,11 @@ float4 main() : SV_TARGET
}
[test]
uniform 0 int4 2 3 4 5
uniform 4 int4 0 -10 10 100
draw quad
if(sm<4) uniform 0 float4 2 3 4 5
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
todo(sm<4) draw quad
probe all rgba (2.0, 0.00292968750, 4096.0, 6.33825300e+030) 2

View File

@ -15,10 +15,8 @@ uniform 8 float4 0.0 1.0 -1.0 0.75
draw quad
probe all rgba (2.0, -10.0, -2.0, 76.25)
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int4 x;
uniform int4 y;
uniform int4 s;
@ -29,10 +27,13 @@ float4 main() : SV_TARGET
}
[test]
uniform 0 int4 2 3 4 0
uniform 4 int4 0 -10 10 1000000
uniform 8 int4 0 1 -1 1000000
draw quad
if(sm<4) uniform 0 float4 2 3 4 0
if(sm<4) uniform 4 float4 0 -10 10 1000000
if(sm<4) uniform 8 float4 0 1 -1 1000000
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
todo(sm<4) draw quad
probe all rgba (2.0, -10.0, -2.0, 1e12)

View File

@ -17,6 +17,7 @@ uniform 0 float4 0.0 0.0 0.0 0.0
todo(sm<4) draw quad
probe all rgba (0.0, 0.0, 0.0, 0.0)
[pixel shader todo(sm<4)]
uniform float4 f;
@ -30,6 +31,7 @@ uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
[pixel shader todo(sm<4)]
uniform float2x2 f;
@ -44,9 +46,6 @@ uniform 4 float4 3.0 4.0 0.0 0.0
todo(sm<4) draw quad
probe all rgba (1.0, 1.0, 1.0, 1.0)
[require]
% SM1-3 doesn't support integral types
shader model >= 4.0
[pixel shader todo(sm<4)]
uniform int f;
@ -57,16 +56,20 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 1 0 0 0
draw quad
if(sm<4) uniform 0 float4 1 0 0 0
if(sm>=4) uniform 0 int4 1 0 0 0
todo(sm<4) draw quad
probe all rgba (1, 1, 1, 1)
uniform 0 int4 -1 0 0 0
draw quad
if(sm<4) uniform 0 float4 -1 0 0 0
if(sm>=4) uniform 0 int4 -1 0 0 0
todo(sm<4) draw quad
probe all rgba (-1, -1, -1, -1)
uniform 0 int4 0 0 0 0
draw quad
if(sm<4) uniform 0 float4 0 0 0 0
if(sm>=4) uniform 0 int4 0 0 0 0
todo(sm<4) draw quad
probe all rgba (0, 0, 0, 0)
[pixel shader todo(sm<4)]
uniform int4 f;
@ -76,10 +79,12 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 1 2 3 4
draw quad
if(sm<4) uniform 0 float4 1 2 3 4
if(sm>=4) uniform 0 int4 1 2 3 4
todo(sm<4) draw quad
probe all rgba (1, 1, 1, 1)
[pixel shader todo(sm<4)]
uniform int2x2 f;
@ -89,7 +94,9 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 1 2 0 0
uniform 4 int4 3 4 0 0
draw quad
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
todo(sm<4) draw quad
probe all rgba (1, 1, 1, 1)

View File

@ -1,7 +1,4 @@
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -18,18 +15,22 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 3 0 0 0
draw quad
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
probe all rgba (5.0, 5.0, 5.0, 5.0)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (4.0, 4.0, 4.0, 4.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (3.0, 3.0, 3.0, 3.0)
% just a default case
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -42,16 +43,20 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 3 0 0 0
draw quad
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
probe all rgba (5.0, 5.0, 5.0, 5.0)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (5.0, 5.0, 5.0, 5.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (5.0, 5.0, 5.0, 5.0)
% completely empty
[pixel shader fail]
uint4 v;
@ -63,8 +68,9 @@ float4 main() : sv_target
}
}
% falling through is only supported for empty case statements
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -83,18 +89,22 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.1, 2.0, 3.0, 4.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (1.1, 2.0, 3.0, 4.0)
% case value evaluation
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -115,15 +125,18 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
% floats are accepted
[pixel shader fail(sm>=6)]
[pixel shader fail(sm>=6) todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -144,14 +157,16 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader fail(sm>=6)]
[pixel shader fail(sm<4 | sm>=6) todo(sm<4)]
float4 v;
float4 main() : sv_target
@ -173,10 +188,10 @@ float4 main() : sv_target
[test]
uniform 0 float4 2.0 0.0 0.0 0.0
draw quad
todo(sm<4) draw quad
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 float4 1.0 0.0 0.0 0.0
draw quad
todo(sm<4) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader fail]
@ -347,7 +362,7 @@ float4 main() : sv_target
}
% more complicated breaks
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -373,18 +388,21 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
draw quad
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
probe all rgba (1.2, 2.2, 3.2, 4.2)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
% switch breaks within a loop
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -411,12 +429,14 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (5.0, 6.0, 7.0, 8.0)
% default case placement
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -442,17 +462,21 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (4.0, 5.0, 6.0, 7.0)
uniform 0 uint4 2 0 0 0
draw quad
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
probe all rgba (2.0, 3.0, 4.0, 5.0)
uniform 0 uint4 3 0 0 0
draw quad
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
probe all rgba (4.0, 5.0, 6.0, 7.0)
[pixel shader]
[pixel shader todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -479,14 +503,17 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 3 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 0 uint4 0 0 0 0
draw quad
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
probe all rgba (4.0, 5.0, 6.0, 7.0)
uniform 0 uint4 5 0 0 0
draw quad
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
probe all rgba (1.0, 2.0, 3.0, 4.0)
% 'continue' is not supported in switches
@ -515,7 +542,7 @@ float4 main() : sv_target
return c;
}
[pixel shader]
[pixel shader fail(sm<4) todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -545,15 +572,17 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 1 0 3 1
if(sm<4) uniform 0 float4 1 0 3 1
if(sm>=4) uniform 0 uint4 1 0 3 1
draw quad
probe all rgba (10.0, 11.0, 12.0, 13.0)
uniform 0 uint4 0 0 3 1
if(sm<4) uniform 0 float4 0 0 3 1
if(sm>=4) uniform 0 uint4 0 0 3 1
draw quad
probe all rgba (7.0, 8.0, 9.0, 10.0)
% return from a switch nested in a loop
[pixel shader]
[pixel shader fail(sm<4) todo(sm<4)]
uint4 v;
float4 main() : sv_target
@ -579,9 +608,11 @@ float4 main() : sv_target
}
[test]
uniform 0 uint4 0 0 3 1
if(sm<4) uniform 0 float4 0 0 3 1
if(sm>=4) uniform 0 uint4 0 0 3 1
draw quad
probe all rgba (304.0, 305.0, 306.0, 307.0)
uniform 0 uint4 1 0 3 1
if(sm<4) uniform 0 float4 1 0 3 1
if(sm>=4) uniform 0 uint4 1 0 3 1
draw quad
probe all rgba (3.0, 4.0, 5.0, 6.0)

View File

@ -30,10 +30,8 @@ uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm<4) draw quad
probe all rgba (6.0, 7.0, 0.0, 3.0)
[require]
shader model >= 4.0
[pixel shader]
[pixel shader todo(sm<4)]
uniform int4 u;
float4 main() : sv_target
@ -45,6 +43,7 @@ float4 main() : sv_target
}
[test]
uniform 0 int4 -1 6 7 3
draw quad
if(sm<4) uniform 0 float4 -1 6 7 3
if(sm>=4) uniform 0 int4 -1 6 7 3
todo(sm<4) draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0)