diff --git a/tests/hlsl/arithmetic-int-uniform.shader_test b/tests/hlsl/arithmetic-int-uniform.shader_test index dc666d44a..b7587aa58 100644 --- a/tests/hlsl/arithmetic-int-uniform.shader_test +++ b/tests/hlsl/arithmetic-int-uniform.shader_test @@ -272,7 +272,7 @@ uniform 4 uint 0 uniform 8 uint 0xffd uniform 12 uint 1 draw quad -probe (0, 0) rgbai(1, -0xfff, 0xffe, -0xffe) +probe (0, 0) i32(1, -0xfff, 0xffe, -0xffe) [pixel shader] uniform min16int u[2]; @@ -315,7 +315,7 @@ uniform 4 uint 0xfffffff7 uniform 8 uint 0xfffffff9 uniform 12 uint 9 draw quad -probe (0, 0) rgbai(-21, -45, 21, 45) +probe (0, 0) i32(-21, -45, 21, 45) [pixel shader fail todo] % Minimum precision signed division is not supported. @@ -344,7 +344,7 @@ int4 main() : sv_target uniform 0 uint 0 uniform 1 uint 0x0001fffd draw quad -probe (0, 0) rgbai(1, 0x7fff, -2, -32768) +probe (0, 0) i32(1, 0x7fff, -2, -32768) [pixel shader] uniform int16_t4 u; @@ -359,7 +359,7 @@ int4 main() : sv_target uniform 0 uint 0xfff70007 uniform 1 uint4 0x9fff9 draw quad -probe (0, 0) rgbai(-21, -45, 21, 45) +probe (0, 0) i32(-21, -45, 21, 45) [pixel shader] uniform int16_t4 u; @@ -374,4 +374,4 @@ int4 main() : sv_target uniform 0 uint 0x000b7ffe uniform 1 uint 0x80007fff draw quad -probe (0, 0) rgbai(0, -2, 1, 6553) +probe (0, 0) i32(0, -2, 1, 6553) diff --git a/tests/hlsl/cast-64-bit.shader_test b/tests/hlsl/cast-64-bit.shader_test index c2dbd1878..2b82dfcf1 100644 --- a/tests/hlsl/cast-64-bit.shader_test +++ b/tests/hlsl/cast-64-bit.shader_test @@ -122,10 +122,10 @@ int4 main() : sv_target [test] uniform 0 double2 0.5 1.0 todo(sm<6) draw quad -probe (0, 0) rgbai(0, 2, 0, 1) +probe (0, 0) i32(0, 2, 0, 1) uniform 0 double2 -0.5 -1.0 todo(sm<6) draw quad -probe (0, 0) rgbai(0, -2, 0, -1) +probe (0, 0) i32(0, -2, 0, -1) [pixel shader todo] uniform double2 d; @@ -194,10 +194,10 @@ int4 main() : sv_target [test] uniform 0 double2 0.5 1.0 draw quad -probe (0, 0) rgbai(0, 2, 0, 1) +probe (0, 0) i32(0, 2, 0, 1) uniform 0 double2 -0.5 -1.0 draw quad -probe (0, 0) rgbai(0, -2, 0, -1) +probe (0, 0) i32(0, -2, 0, -1) [pixel shader] uniform double2 d; diff --git a/tests/hlsl/cast-to-int.shader_test b/tests/hlsl/cast-to-int.shader_test index 17d926d13..ec76a4820 100644 --- a/tests/hlsl/cast-to-int.shader_test +++ b/tests/hlsl/cast-to-int.shader_test @@ -102,10 +102,10 @@ int4 main() : sv_target [test] uniform 0 int4 0x10002 0x8003 0x10002 0x8003 draw quad -probe (0, 0) rgbai(4, 6, 2, -32765) +probe (0, 0) i32(4, 6, 2, -32765) uniform 0 int4 -1 -3 -1 -3 draw quad -probe (0, 0) rgbai(-2, -6, -1, -3) +probe (0, 0) i32(-2, -6, -1, -3) [pixel shader] uniform float4 f; @@ -119,7 +119,7 @@ int4 main() : sv_target [test] uniform 0 float4 0.5 1.0 0.5 1.0 todo draw quad -probe (0, 0) rgbai(0, 2, 0, 1) +probe (0, 0) i32(0, 2, 0, 1) uniform 0 float4 -0.5 -1.0 -0.5 -1.0 todo draw quad -probe (0, 0) rgbai(0, -2, 0, -1) +probe (0, 0) i32(0, -2, 0, -1) diff --git a/tests/hlsl/cbuffer.shader_test b/tests/hlsl/cbuffer.shader_test index c0caeefd9..f1b65a11f 100644 --- a/tests/hlsl/cbuffer.shader_test +++ b/tests/hlsl/cbuffer.shader_test @@ -1049,4 +1049,4 @@ int4 main() : sv_target [test] uniform 0 uint 0x7fffffff draw quad -probe (0, 0) rgbai(-1, 32767, 0, 0) +probe (0, 0) i32(-1, 32767, 0, 0) diff --git a/tests/hlsl/max-min.shader_test b/tests/hlsl/max-min.shader_test index 51716e35e..3d273db4a 100644 --- a/tests/hlsl/max-min.shader_test +++ b/tests/hlsl/max-min.shader_test @@ -119,4 +119,4 @@ int4 main() : sv_target [test] uniform 0 int4 -1 -2 0 0 todo(sm<6) draw quad -probe (0, 0) rgbai (-1, -2, -1, -2) +probe (0, 0) i32(-1, -2, -1, -2) diff --git a/tests/hlsl/rt-format-mismatch.shader_test b/tests/hlsl/rt-format-mismatch.shader_test index 8a1741efd..d6049cd3c 100644 --- a/tests/hlsl/rt-format-mismatch.shader_test +++ b/tests/hlsl/rt-format-mismatch.shader_test @@ -40,7 +40,7 @@ int4 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) rgbai (0, 22, -22, -1000) +todo(mvk) probe (0, 0) i32(0, 22, -22, -1000) [pixel shader] float2 main() : sv_target @@ -84,7 +84,7 @@ int4 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) rgbai (0, 22, -22, -1000) +todo(mvk) probe (0, 0) i32(0, 22, -22, -1000) [pixel shader] float2 main() : sv_target @@ -128,7 +128,7 @@ int4 main() : sv_target [test] draw quad -probe (0, 0) rgbai (0, 22, -22, -1000) +probe (0, 0) i32(0, 22, -22, -1000) [pixel shader] float2 main() : sv_target @@ -172,7 +172,7 @@ int4 main() : sv_target [test] todo(mvk & vulkan | msl) draw quad -todo(mvk) probe (0, 0) ri (-22) +todo(mvk) probe (0, 0) i32(-22) [pixel shader] float2 main() : sv_target diff --git a/tests/hlsl/shader-interstage-interface.shader_test b/tests/hlsl/shader-interstage-interface.shader_test index 44480947b..159d4c07b 100644 --- a/tests/hlsl/shader-interstage-interface.shader_test +++ b/tests/hlsl/shader-interstage-interface.shader_test @@ -193,7 +193,7 @@ size (2d, 640, 480) [test] draw triangle strip 4 -todo(opengl) probe (0, 0) rgbai(-7000, -2, 0, 0) +todo(opengl) probe (0, 0) i32(-7000, -2, 0, 0) [pixel shader] uint4 main(float4 position : SV_Position, min16int2 t0 : TEXCOORD0) : SV_Target @@ -207,7 +207,7 @@ size (2d, 640, 480) [test] draw triangle strip 4 -probe (0, 0) rgbai(-7000, -2, 0, 0) +probe (0, 0) i32(-7000, -2, 0, 0) [require] shader model >= 6.2 @@ -303,7 +303,7 @@ size (2d, 640, 480) [test] draw triangle strip 4 -probe (0, 0) rgbai(-7000, -2, 0, 0) +probe (0, 0) i32(-7000, -2, 0, 0) [pixel shader] uint4 main(float4 position : SV_Position, int16_t2 t0 : TEXCOORD0) : SV_Target @@ -317,4 +317,4 @@ size (2d, 640, 480) [test] draw triangle strip 4 -probe (0, 0) rgbai(-7000, -2, 0, 0) +probe (0, 0) i32(-7000, -2, 0, 0) diff --git a/tests/hlsl/srv-buffers.shader_test b/tests/hlsl/srv-buffers.shader_test index fabf2e598..44b9aaf7a 100644 --- a/tests/hlsl/srv-buffers.shader_test +++ b/tests/hlsl/srv-buffers.shader_test @@ -224,7 +224,7 @@ int4 main() : sv_target [test] draw quad -probe (0, 0) rgbai(-100, -1, 1, 100) +probe (0, 0) i32(-100, -1, 1, 100) [srv 0] format r32g32b32a32-uint diff --git a/tests/hlsl/tgsm.shader_test b/tests/hlsl/tgsm.shader_test index 7042c6615..6be381261 100644 --- a/tests/hlsl/tgsm.shader_test +++ b/tests/hlsl/tgsm.shader_test @@ -130,10 +130,10 @@ void main(uint local_idx : SV_GroupIndex, uint group_id : SV_GroupID) [test] todo(sm<6) dispatch 4 1 1 -probe uav 1 (0) ri (0) -probe uav 1 (1) ri (-31) -probe uav 1 (2) ri (-62) -probe uav 1 (3) ri (-93) +probe uav 1 (0) i32(0) +probe uav 1 (1) i32(-31) +probe uav 1 (2) i32(-62) +probe uav 1 (3) i32(-93) [uav 1] @@ -200,14 +200,14 @@ probe uav 1 (4) r (1.0) probe uav 1 (5) r (2.0) probe uav 1 (6) r (3.0) probe uav 1 (7) r (4.0) -probe uav 2 (0) ri (8) -probe uav 2 (1) ri (4) -probe uav 2 (2) ri (0) -probe uav 2 (3) ri (0) -probe uav 2 (4) ri (9) -probe uav 2 (5) ri (6) -probe uav 2 (6) ri (3) -probe uav 2 (7) ri (4) +probe uav 2 (0) i32(8) +probe uav 2 (1) i32(4) +probe uav 2 (2) i32(0) +probe uav 2 (3) i32(0) +probe uav 2 (4) i32(9) +probe uav 2 (5) i32(6) +probe uav 2 (6) i32(3) +probe uav 2 (7) i32(4) [uav 1] diff --git a/tests/hlsl/uav-atomics.shader_test b/tests/hlsl/uav-atomics.shader_test index 5cb01e2ba..9ed04e171 100644 --- a/tests/hlsl/uav-atomics.shader_test +++ b/tests/hlsl/uav-atomics.shader_test @@ -81,13 +81,13 @@ void main() [test] uniform 0 int4 1 -3 0 0 todo(glsl | msl) dispatch 1 1 1 -probe uav 2 (0) ri (1) -probe uav 2 (1) ri (-3) +probe uav 2 (0) i32(1) +probe uav 2 (1) i32(-3) uniform 0 int4 -3 1 0 0 todo(glsl | msl) dispatch 1 1 1 -probe uav 2 (0) ri (1) -probe uav 2 (1) ri (-3) +probe uav 2 (0) i32(1) +probe uav 2 (1) i32(-3) [uav 1] @@ -150,13 +150,13 @@ void main() uniform 0 int4 1 -3 0 0 % SPIR-V compilation currently fails because of the mismatched resource type for u2. todo(vulkan | opengl | msl) dispatch 1 1 1 -probe uav 2 (0) ri (1) -probe uav 2 (1) ri (-3) +probe uav 2 (0) i32(1) +probe uav 2 (1) i32(-3) uniform 0 int4 -3 1 0 0 todo(vulkan | opengl | msl) dispatch 1 1 1 -probe uav 2 (0) ri (1) -probe uav 2 (1) ri (-3) +probe uav 2 (0) i32(1) +probe uav 2 (1) i32(-3) [uav 1] @@ -200,8 +200,8 @@ todo(glsl | msl) dispatch 1 1 1 probe uav 1 (0) rui (0xffffffff) probe uav 1 (1) rui (1) probe uav 1 (2) rui (0x7fffffff) -probe uav 2 (0) ri (1) -probe uav 2 (1) ri (-1) +probe uav 2 (0) i32(1) +probe uav 2 (1) i32(-1) probe uav 2 (2) rui (0x7fffffff) [uav 1] @@ -253,12 +253,12 @@ probe uav 1 (1) rui (0) probe uav 1 (2) rui (0) probe uav 1 (3) rui (0xffffffff) probe uav 1 (4) rui (0xffffffff) -if(sm<6) probe uav 2 (0) ri (-1) +if(sm<6) probe uav 2 (0) i32(-1) if(sm>=6) probe uav 2 (0) rui (0xfffffffd) -probe uav 2 (1) ri (0) -probe uav 2 (2) ri (0) -probe uav 2 (3) ri (-1) -probe uav 2 (4) ri (-1) +probe uav 2 (1) i32(0) +probe uav 2 (2) i32(0) +probe uav 2 (3) i32(-1) +probe uav 2 (4) i32(-1) % Interlocked* functions return void. diff --git a/tests/hlsl/uav-counter.shader_test b/tests/hlsl/uav-counter.shader_test index 739d70600..a32417852 100644 --- a/tests/hlsl/uav-counter.shader_test +++ b/tests/hlsl/uav-counter.shader_test @@ -33,4 +33,4 @@ void main() [test] todo(sm<6) dispatch 3 1 1 -probe uav 1 (0) ri (-12) +probe uav 1 (0) i32(-12) diff --git a/tests/hlsl/uav-rwbuffer.shader_test b/tests/hlsl/uav-rwbuffer.shader_test index a520d2922..577c6026d 100644 --- a/tests/hlsl/uav-rwbuffer.shader_test +++ b/tests/hlsl/uav-rwbuffer.shader_test @@ -185,8 +185,8 @@ float4 main() : sv_target [test] todo(msl) draw quad -probe uav 1 (0) rgbai (11, -12, 13, -14) -probe uav 1 (1) rgbai (-15, 16, -17, 18) +probe uav 1 (0) i32(11, -12, 13, -14) +probe uav 1 (1) i32(-15, 16, -17, 18) [uav 2] format r32g32b32a32-float @@ -301,7 +301,7 @@ void main() % Again, implementations behave inconsistently for negative numbers. uniform 0 uint4 0x7ff4000b 0xe7ff3 0 0 dispatch 1 1 1 -probe uav 1 (0) rgbai(11, 0x7ff4, 0x7ff3, 14) +probe uav 1 (0) i32(11, 0x7ff4, 0x7ff3, 14) [uav 1] format r32g32b32a32-sint @@ -318,7 +318,7 @@ int4 main() : sv_target [test] draw quad -probe (0, 0) rgbai(-100, -1, 1, 100) +probe (0, 0) i32(-100, -1, 1, 100) [uav 1] format r32g32b32a32-uint diff --git a/tests/hlsl/uav-rwbyteaddressbuffer.shader_test b/tests/hlsl/uav-rwbyteaddressbuffer.shader_test index 0327ba85e..2e2714ea2 100644 --- a/tests/hlsl/uav-rwbyteaddressbuffer.shader_test +++ b/tests/hlsl/uav-rwbyteaddressbuffer.shader_test @@ -19,8 +19,8 @@ float4 main() : sv_target [test] todo(glsl | msl) draw quad -probe uav 1 (0) ri (10) -if(sm<6) probe uav 1 (1) ri (11) +probe uav 1 (0) i32(10) +if(sm<6) probe uav 1 (1) i32(11) if(sm>=6) probe uav 1 (1) r (11.1) [pixel shader] @@ -80,7 +80,7 @@ float4 main() : sv_target [test] todo(glsl) draw quad -if(sm<6) probe uav 1 (0) ri (12) +if(sm<6) probe uav 1 (0) i32(12) if(sm>=6) probe uav 1 (0) f64(12.2) diff --git a/tests/hlsl/uav-rwstructuredbuffer.shader_test b/tests/hlsl/uav-rwstructuredbuffer.shader_test index 7c2b16b99..76d097eee 100644 --- a/tests/hlsl/uav-rwstructuredbuffer.shader_test +++ b/tests/hlsl/uav-rwstructuredbuffer.shader_test @@ -154,8 +154,8 @@ float4 main() : sv_target1 [test] todo(sm<6) draw quad -probe uav 2 (0) rgbai (11, -12, 13, -14) -probe uav 2 (1) rgbai (-15, 16, -17, 18) +probe uav 2 (0) i32(11, -12, 13, -14) +probe uav 2 (1) i32(-15, 16, -17, 18) [uav 2] stride 4 @@ -176,8 +176,8 @@ float4 main() : sv_target1 [test] todo(sm<6) draw quad -probe uav 2 (0) ri (11) -probe uav 2 (1) ri (12) +probe uav 2 (0) i32(11) +probe uav 2 (1) i32(12) [require] shader model >= 6.2 diff --git a/tests/hlsl/wave-ops-int.shader_test b/tests/hlsl/wave-ops-int.shader_test index 3bebdb0be..e9f29597c 100644 --- a/tests/hlsl/wave-ops-int.shader_test +++ b/tests/hlsl/wave-ops-int.shader_test @@ -33,10 +33,10 @@ void main(uint id : SV_GroupIndex) [test] dispatch 4 1 1 -probe uav 1 (0) rgbai (-3, 1, -4, 2) -probe uav 1 (1) rgbai (-3, 1, -4, 2) -probe uav 1 (2) rgbai (-3, 1, -4, 2) -probe uav 1 (3) rgbai (-3, 1, -4, 2) +probe uav 1 (0) i32(-3, 1, -4, 2) +probe uav 1 (1) i32(-3, 1, -4, 2) +probe uav 1 (2) i32(-3, 1, -4, 2) +probe uav 1 (3) i32(-3, 1, -4, 2) [compute shader] @@ -51,10 +51,10 @@ void main(uint id : SV_GroupIndex) [test] dispatch 4 1 1 -probe uav 1 (0) rgbai (3, 5, -1, 2) -probe uav 1 (1) rgbai (3, 5, -1, 2) -probe uav 1 (2) rgbai (3, 5, -1, 2) -probe uav 1 (3) rgbai (3, 5, -1, 2) +probe uav 1 (0) i32(3, 5, -1, 2) +probe uav 1 (1) i32(3, 5, -1, 2) +probe uav 1 (2) i32(3, 5, -1, 2) +probe uav 1 (3) i32(3, 5, -1, 2) [require] @@ -97,10 +97,10 @@ void main(uint id : SV_GroupIndex) [test] bug(mvk) dispatch 4 1 1 -probe uav 1 (0) rgbai(-3, -1, -4, 2) -probe uav 1 (1) rgbai(-3, -1, -4, 2) -probe uav 1 (2) rgbai(-3, -1, -4, 2) -probe uav 1 (3) rgbai(-3, -1, -4, 2) +probe uav 1 (0) i32(-3, -1, -4, 2) +probe uav 1 (1) i32(-3, -1, -4, 2) +probe uav 1 (2) i32(-3, -1, -4, 2) +probe uav 1 (3) i32(-3, -1, -4, 2) [compute shader] @@ -115,7 +115,7 @@ void main(uint id : SV_GroupIndex) [test] bug(mvk) dispatch 4 1 1 -probe uav 1 (0) rgbai(0, 5, -1, 2) -probe uav 1 (1) rgbai(0, 5, -1, 2) -probe uav 1 (2) rgbai(0, 5, -1, 2) -probe uav 1 (3) rgbai(0, 5, -1, 2) +probe uav 1 (0) i32(0, 5, -1, 2) +probe uav 1 (1) i32(0, 5, -1, 2) +probe uav 1 (2) i32(0, 5, -1, 2) +probe uav 1 (3) i32(0, 5, -1, 2) diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 6ee89ac11..a215a3ff0 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -800,7 +800,7 @@ static void read_int(const char **line, int *i, bool is_uniform) if (*i != val) fatal_error("Out of range int constant '%.*s'.\n", (int)(rest - *line), *line); - *line = rest + (!is_uniform && *rest == ','); + *line = rest; } static void read_uint(const char **line, unsigned int *u, bool is_uniform) @@ -821,12 +821,12 @@ static void read_uint(const char **line, unsigned int *u, bool is_uniform) *line = rest + (!is_uniform && *rest == ','); } -static void read_int4(const char **line, struct ivec4 *v, bool is_uniform) +static void read_int4(const char **line, struct ivec4 *v) { - read_int(line, &v->x, is_uniform); - read_int(line, &v->y, is_uniform); - read_int(line, &v->z, is_uniform); - read_int(line, &v->w, is_uniform); + read_int(line, &v->x, true); + read_int(line, &v->y, true); + read_int(line, &v->z, true); + read_int(line, &v->w, true); } static void read_uint4(const char **line, struct uvec4 *v, bool is_uniform) @@ -1288,6 +1288,48 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) check_readback_data_double(rb, &rect, v.x, ulps); } } + else if (match_string(line, "i32", &line)) + { + struct ivec4 v; + + if (*line != '(') + fatal_error("Malformed probe arguments '%s'.\n", line); + ++line; + + read_int(&line, &v.x, false); + + while (isspace(*line)) + ++line; + if (*line == ',') + { + ++line; + read_int(&line, &v.y, false); + + while (isspace(*line)) + ++line; + if (*line != ',') + fatal_error("Malformed probe arguments '%s'.\n", line); + ++line; + read_int(&line, &v.z, false); + + while (isspace(*line)) + ++line; + if (*line != ',') + fatal_error("Malformed probe arguments '%s'.\n", line); + ++line; + read_int(&line, &v.w, false); + + line = close_parentheses(line); + todo_if(runner->is_todo) bug_if(runner->is_bug) + check_readback_data_ivec4(rb, &rect, &v); + } + else + { + line = close_parentheses(line); + todo_if(runner->is_todo) bug_if(runner->is_bug) + check_readback_data_uint(rb, &box, v.x, 0); + } + } else if (match_string(line, "rgbaui", &line)) { struct uvec4 v; @@ -1300,18 +1342,6 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) todo_if(runner->is_todo) bug_if(runner->is_bug) check_readback_data_uvec4(rb, &rect, &v); } - else if (match_string(line, "rgbai", &line)) - { - struct ivec4 v; - - if (*line != '(') - fatal_error("Malformed probe arguments '%s'.\n", line); - ++line; - read_int4(&line, &v, false); - line = close_parentheses(line); - todo_if(runner->is_todo) bug_if(runner->is_bug) - check_readback_data_ivec4(rb, &rect, &v); - } else if (match_string(line, "rgba", &line)) { struct vec4 v; @@ -1336,17 +1366,14 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) todo_if(runner->is_todo) bug_if(runner->is_bug) check_readback_data_vec2(rb, &rect, &v, ulps); } - else if (match_string(line, "rui", &line) || (is_signed = match_string(line, "ri", &line))) + else if (match_string(line, "rui", &line)) { unsigned int expect; if (*line != '(') fatal_error("Malformed probe arguments '%s'.\n", line); ++line; - if (is_signed) - read_int(&line, (int *)&expect, false); - else - read_uint(&line, &expect, false); + read_uint(&line, &expect, false); line = close_parentheses(line); todo_if(runner->is_todo) bug_if(runner->is_bug) check_readback_data_uint(rb, &box, expect, 0); @@ -1406,7 +1433,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line) { struct ivec4 v; - read_int4(&line, &v, true); + read_int4(&line, &v); set_uniforms(runner, offset, 4, &v); } else if (match_string(line, "uint4", &line))