mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader/msl: Handle VSIR_DATA_BOOL operands.
This commit is contained in:
Notes:
Henri Verbeet
2025-09-19 12:54:20 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1740
@@ -167,6 +167,7 @@ static void msl_print_register_datatype(struct vkd3d_string_buffer *buffer,
|
||||
case VSIR_DATA_F32:
|
||||
vkd3d_string_buffer_printf(buffer, "f");
|
||||
break;
|
||||
case VSIR_DATA_BOOL:
|
||||
case VSIR_DATA_I32:
|
||||
vkd3d_string_buffer_printf(buffer, "i");
|
||||
break;
|
||||
@@ -799,6 +800,7 @@ static void msl_relop(struct msl_generator *gen, const struct vkd3d_shader_instr
|
||||
static void msl_cast(struct msl_generator *gen, const struct vkd3d_shader_instruction *ins, const char *constructor)
|
||||
{
|
||||
unsigned int component_count;
|
||||
const char *negate;
|
||||
struct msl_src src;
|
||||
struct msl_dst dst;
|
||||
uint32_t mask;
|
||||
@@ -806,10 +808,11 @@ static void msl_cast(struct msl_generator *gen, const struct vkd3d_shader_instru
|
||||
mask = msl_dst_init(&dst, gen, ins, &ins->dst[0]);
|
||||
msl_src_init(&src, gen, &ins->src[0], mask);
|
||||
|
||||
negate = ins->opcode == VSIR_OP_UTOF && data_type_is_bool(ins->src[0].reg.data_type) ? "-" : "";
|
||||
if ((component_count = vsir_write_mask_component_count(mask)) > 1)
|
||||
msl_print_assignment(gen, &dst, "%s%u(%s)", constructor, component_count, src.str->buffer);
|
||||
msl_print_assignment(gen, &dst, "%s%u(%s%s)", constructor, component_count, negate, src.str->buffer);
|
||||
else
|
||||
msl_print_assignment(gen, &dst, "%s(%s)", constructor, src.str->buffer);
|
||||
msl_print_assignment(gen, &dst, "%s(%s%s)", constructor, negate, src.str->buffer);
|
||||
|
||||
msl_src_cleanup(&src, &gen->string_buffers);
|
||||
msl_dst_cleanup(&dst, &gen->string_buffers);
|
||||
|
||||
@@ -11,17 +11,17 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 -1.1 1.6 1.3 0.5
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
@@ -8,25 +8,25 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 1.0 1.0 1.0 1.0
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
@@ -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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (2.0, 2.0, 2.0, 0.0)
|
||||
|
||||
@@ -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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
|
||||
|
||||
|
||||
|
||||
@@ -59,7 +59,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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ uniform 0 float 2.6
|
||||
uniform 1 int 2
|
||||
uniform 2 int -2
|
||||
uniform 3 float -3.6
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)
|
||||
|
||||
|
||||
|
||||
@@ -124,8 +124,8 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 -2.0 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
@@ -9,20 +9,20 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 1 2 3 4
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (1, 2, 3, 4)
|
||||
uniform 0 float4 9 8 7 6
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (9, 8, 7, 6)
|
||||
uniform 0 float4 -1 8 7 6
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (9, 8, 7, 6)
|
||||
uniform 0 float4 9 0 7 6
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (9, 0, 7, 6)
|
||||
uniform 0 float4 3 -8 3 0
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (9, 0, 7, 6)
|
||||
uniform 0 float4 3 3 3 -1
|
||||
todo(glsl | msl & sm>=6) draw quad
|
||||
todo(glsl) draw quad
|
||||
probe (0, 0) rgba (9, 0, 7, 6)
|
||||
|
||||
@@ -11,10 +11,10 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 0.0 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.9, 0.8, 0.7, 0.6)
|
||||
|
||||
[pixel shader fail(sm<6)]
|
||||
@@ -87,13 +87,12 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float -2
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (1, 2, 3, 4)
|
||||
uniform 0 float 10
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (10, 20, 30, 40)
|
||||
|
||||
|
||||
[pixel shader]
|
||||
uniform float4 u;
|
||||
|
||||
@@ -108,7 +107,7 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 0.0 0.0 0.0 0.0
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.9, 0.8, 0.7, 0.6)
|
||||
|
||||
[pixel shader]
|
||||
@@ -145,22 +144,21 @@ 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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0)
|
||||
|
||||
|
||||
[pixel shader]
|
||||
int a, b;
|
||||
|
||||
@@ -177,22 +175,21 @@ 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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (-1.0, -1.0, -1.0, -1.0)
|
||||
|
||||
|
||||
[pixel shader]
|
||||
int a, b;
|
||||
|
||||
@@ -209,16 +206,15 @@ 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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0)
|
||||
|
||||
|
||||
% Test "if" conditionals, using resource loads to ensure we aren't removing these instruction with optimizations.
|
||||
[srv 0]
|
||||
size (2d, 2, 2)
|
||||
@@ -243,13 +239,12 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float -2
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.0, 0.0, 0.0, 4.0)
|
||||
uniform 0 float 4
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0)
|
||||
|
||||
|
||||
[pixel shader]
|
||||
Texture2D tex;
|
||||
sampler sam;
|
||||
|
||||
@@ -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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (-10.0, -20.0, -30.0, -40.0)
|
||||
|
||||
@@ -9,7 +9,7 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.0
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 -0.5 6.5 0.0 0.0
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (1.1, 0.3, 0.0, 0.0) 4
|
||||
|
||||
@@ -23,7 +23,7 @@ float4 main(float tex : texcoord) : sv_target
|
||||
}
|
||||
|
||||
[test]
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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)
|
||||
|
||||
@@ -10,49 +10,49 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 3.1415927 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(2.0, 0.785398185, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 -3.1415927 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
if(sm<4) probe (0, 0) f32(2.0, -0.785398185, 0.0, 0.0)
|
||||
% Starting with shader model 4, negative inputs give positive mantissa.
|
||||
if(sm>=4) probe (0, 0) f32(2.0, 0.785398185, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 7604.123 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(13.0, 0.92823765, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 0.00001234 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(-16.0, 0.8087142, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 0.0 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 -0.0 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(0.0, 0.0, 0.0, 0.0)
|
||||
|
||||
uniform 0 float4 INF 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
if(sm<4) probe (0, 0) f32(-NAN, -NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.5, 0, 0)
|
||||
|
||||
uniform 0 float4 -INF 0.0 0.0 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
if(sm<4) probe (0, 0) f32(-NAN, -NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.5, 0, 0)
|
||||
|
||||
uniform 0 float4 NAN 0 0 0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
if(sm<4) probe (0, 0) f32(NAN, NAN, 0, 0)
|
||||
if(sm>=4) probe (0, 0) f32(129, 0.75, 0, 0)
|
||||
|
||||
% Subnormals.
|
||||
uniform 0 uint4 0x0007ffff 0 0 0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) f32(0, 0, 0, 0)
|
||||
|
||||
[pixel shader]
|
||||
|
||||
@@ -79,16 +79,16 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.1
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.3, 0.2, 0.6, 0.3) 1
|
||||
uniform 0 float 0.4
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.6, 0.5, 0.6, 0.3) 1
|
||||
uniform 0 float 0.6
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.6, 0.5, 0.4, 0.5) 1
|
||||
uniform 0 float 0.8
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.8, 0.7, 0.4, 0.5) 1
|
||||
|
||||
[pixel shader todo(sm<4)]
|
||||
@@ -235,23 +235,23 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.3, 0.2, 0.3, 0.3) 1
|
||||
|
||||
uniform 0 float 0.1
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.3, 0.3, 0.3, 0.3) 1
|
||||
|
||||
uniform 0 float 0.3
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.3, 0.5, 0.3, 0.3) 1
|
||||
|
||||
uniform 0 float 0.7
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.3, 0.9, 0.7, 0.6) 1
|
||||
|
||||
uniform 0 float 0.9
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (0.4, 0.1, 0.6, 0.6) 1
|
||||
|
||||
@@ -17,10 +17,10 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float 0.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (2.0, 2.0, 2.0, 2.0)
|
||||
uniform 0 float 1.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (2.0, 2.0, 2.0, 2.0)
|
||||
uniform 0 float 1.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba (1.0, 4.0, 0.0, 0.0)
|
||||
uniform 0 float 1.0
|
||||
todo(sm<4 | msl & sm>=6) draw quad
|
||||
todo(sm<4) 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 | msl & sm>=6) draw quad
|
||||
todo(sm<4) draw quad
|
||||
probe (0, 0) rgba(1, 2, 3, 5)
|
||||
|
||||
[require]
|
||||
|
||||
@@ -8,17 +8,17 @@ float4 main() : sv_target
|
||||
|
||||
[test]
|
||||
uniform 0 float4 -0.1 10.0 0.0 0.0
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (2.0, 2.4, 16.0, 2.0)
|
||||
|
||||
[pixel shader fail]
|
||||
|
||||
@@ -171,13 +171,13 @@ 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
|
||||
todo(msl & sm>=6) draw quad
|
||||
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
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) rgba (0.0, 1.0, 0.0, 0.0)
|
||||
|
||||
[pixel shader]
|
||||
@@ -193,11 +193,11 @@ if(sm<4) uniform 0 float 0
|
||||
if(sm<4) uniform 4 float 5
|
||||
if(sm>=4) uniform 0 int 0
|
||||
if(sm>=4) uniform 1 int 5
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) f32(1.0, 0.0, 0.0, 1.0)
|
||||
if(sm<4) uniform 0 float -1
|
||||
if(sm<4) uniform 4 float -1
|
||||
if(sm>=4) uniform 0 int -1
|
||||
if(sm>=4) uniform 1 int -1
|
||||
todo(msl & sm>=6) draw quad
|
||||
draw quad
|
||||
probe (0, 0) f32(0.0, 1.0, 1.0, 0.0)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user