tests: Mark some tests in wave-reconvergence.shader_test as buggy on MoltenVK.

This commit is contained in:
Giovanni Mascellani
2024-11-05 21:56:26 +01:00
committed by Henri Verbeet
parent ba5c3b576e
commit 7450c4a368
Notes: Henri Verbeet 2024-11-06 23:02:04 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1250
3 changed files with 48 additions and 23 deletions

View File

@@ -879,6 +879,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
int ret;
runner->is_todo = false;
runner->is_bug = false;
while (match)
{
@@ -890,6 +891,12 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
match = true;
}
if (match_string_with_args(runner, line, "bug", &line))
{
runner->is_bug = true;
match = true;
}
line_ini = line;
if (match_string_with_args(runner, line, "if", &line))
{
@@ -923,7 +930,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Malformed dispatch arguments '%s'.\n", line);
runner->last_render_failed = !runner->ops->dispatch(runner, x, y, z);
todo_if(runner->is_todo) ok(!runner->last_render_failed, "Dispatch failed.\n");
todo_if(runner->is_todo) bug_if(runner->is_bug)
ok(!runner->last_render_failed, "Dispatch failed.\n");
}
else if (match_string(line, "clear rtv", &line))
{
@@ -1025,7 +1033,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
}
runner->last_render_failed = !runner->ops->draw(runner, D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, 3, 1);
todo_if(runner->is_todo) ok(!runner->last_render_failed, "Draw failed.\n");
todo_if(runner->is_todo) bug_if(runner->is_bug)
ok(!runner->last_render_failed, "Draw failed.\n");
}
else if (match_string(line, "draw", &line))
{
@@ -1070,7 +1079,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
}
runner->last_render_failed = !runner->ops->draw(runner, topology, vertex_count, instance_count);
todo_if(runner->is_todo) ok(!runner->last_render_failed, "Draw failed.\n");
todo_if(runner->is_todo) bug_if(runner->is_bug)
ok(!runner->last_render_failed, "Draw failed.\n");
}
else if (match_string(line, "copy", &line))
{
@@ -1090,7 +1100,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Resource dimensions don't match.\n");
ret = runner->ops->copy(runner, src, dst);
todo_if(runner->is_todo) ok(ret, "Failed to copy resource.\n");
todo_if(runner->is_todo) bug_if(runner->is_bug)
ok(ret, "Failed to copy resource.\n");
}
else if (match_string(line, "probe", &line))
{
@@ -1164,7 +1175,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
++line;
read_uint4(&line, &v, false);
line = close_parentheses(line);
todo_if(runner->is_todo) check_readback_data_uvec4(rb, &rect, &v);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_uvec4(rb, &rect, &v);
}
else if (match_string(line, "rgbai", &line))
{
@@ -1175,7 +1187,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
++line;
read_int4(&line, &v, false);
line = close_parentheses(line);
todo_if(runner->is_todo) check_readback_data_ivec4(rb, &rect, &v);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_ivec4(rb, &rect, &v);
}
else if (match_string(line, "rgba", &line))
{
@@ -1186,7 +1199,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Malformed probe arguments '%s'.\n", line);
if (ret < 5)
ulps = 0;
todo_if(runner->is_todo) check_readback_data_vec4(rb, &rect, &v, ulps);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_vec4(rb, &rect, &v, ulps);
}
else if (match_string(line, "rg", &line))
{
@@ -1197,7 +1211,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Malformed probe arguments '%s'.\n", line);
if (ret < 3)
ulps = 0;
todo_if(runner->is_todo) check_readback_data_vec2(rb, &rect, &v, ulps);
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)))
{
@@ -1218,7 +1233,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
else
read_uint(&line, &expect, false);
line = close_parentheses(line);
todo_if(runner->is_todo) check_readback_data_uint(rb, &box, expect, 0);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_uint(rb, &box, expect, 0);
}
else if (match_string(line, "rui64", &line) || (is_signed = match_string(line, "ri64", &line)))
{
@@ -1239,7 +1255,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
else
read_uint64(&line, &expect, false);
line = close_parentheses(line);
todo_if(runner->is_todo) check_readback_data_uint64(rb, &box, expect, 0);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_uint64(rb, &box, expect, 0);
}
else if (match_string(line, "rd", &line))
{
@@ -1250,7 +1267,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Malformed probe arguments '%s'.\n", line);
if (ret < 2)
ulps = 0;
todo_if(runner->is_todo) check_readback_data_double(rb, &rect, expect, ulps);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_double(rb, &rect, expect, ulps);
}
else if (match_string(line, "r", &line))
{
@@ -1261,7 +1279,8 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
fatal_error("Malformed probe arguments '%s'.\n", line);
if (ret < 2)
ulps = 0;
todo_if(runner->is_todo) check_readback_data_float(rb, &rect, expect, ulps);
todo_if(runner->is_todo) bug_if(runner->is_bug)
check_readback_data_float(rb, &rect, expect, ulps);
}
else
{