tests: Replace test_ps_viewport_index() with a shader runner test.

Mainly to allow testing the functionality in question with DXIL shaders
as well.
This commit is contained in:
Conor McCarthy
2024-05-01 14:36:30 +10:00
committed by Henri Verbeet
parent 55fe8df979
commit cd8cea6913
Notes: Henri Verbeet 2025-07-31 15:06:45 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1663
10 changed files with 154 additions and 119 deletions

View File

@@ -1603,6 +1603,20 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
if (sscanf(line, "%f %f %f %f", &v->x, &v->y, &v->z, &v->w) < 4)
fatal_error("Malformed float4 constant '%s'.\n", line);
}
else if (match_string(line, "viewport", &line))
{
unsigned int i;
read_uint(&line, &i, false);
if (i >= ARRAY_SIZE(runner->viewports))
fatal_error("Unhandled viewport index %u.\n", i);
if (sscanf(line, " ( %f , %f , %f , %f )", &runner->viewports[i].x, &runner->viewports[i].y,
&runner->viewports[i].width, &runner->viewports[i].height) < 4)
fatal_error("Malformed viewport '%s'.\n", line);
runner->viewport_count = max(runner->viewport_count, i + 1);
}
else
{
fatal_error("Unknown test directive '%s'.\n", line);