tests: Add support for UAV buffers in Vulkan runner.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov
2023-05-09 19:56:55 +02:00
committed by Alexandre Julliard
parent cf8cacd336
commit a4ebde202a
Notes: Alexandre Julliard 2023-05-22 23:19:48 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/193
7 changed files with 128 additions and 29 deletions

View File

@ -567,6 +567,16 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
resource = get_resource(runner, RESOURCE_TYPE_UAV, slot);
}
else if (match_string(line, "buffer uav", &line))
{
slot = strtoul(line, &rest, 10);
if (rest == line)
fatal_error("Malformed buffer UAV index '%s'.\n", line);
line = rest;
resource = get_resource(runner, RESOURCE_TYPE_BUFFER_UAV, slot);
}
else if (match_string(line, "render target", &line))
{
slot = strtoul(line, &rest, 10);
@ -1035,6 +1045,19 @@ void run_shader_tests(struct shader_runner *runner, const struct shader_runner_o
current_resource.texel_size = 16;
current_resource.level_count = 1;
}
else if (sscanf(line, "[buffer uav %u]\n", &index))
{
state = STATE_RESOURCE;
memset(&current_resource, 0, sizeof(current_resource));
current_resource.slot = index;
current_resource.type = RESOURCE_TYPE_BUFFER_UAV;
current_resource.format = DXGI_FORMAT_R32G32B32A32_FLOAT;
current_resource.data_type = TEXTURE_DATA_FLOAT;
current_resource.texel_size = 16;
current_resource.level_count = 1;
}
else if (sscanf(line, "[vertex buffer %u]\n", &index))
{
state = STATE_RESOURCE;