tests: Consider LOD miscalculation a todo rather than a driver bug.

This commit is contained in:
Giovanni Mascellani 2024-10-22 16:47:15 +02:00 committed by Henri Verbeet
parent 5eff8bf918
commit ae1d62f6a0
Notes: Henri Verbeet 2024-10-28 18:08:50 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1209

View File

@ -14180,7 +14180,7 @@ static void test_sample_instructions(void)
float ps_constants[4];
const unsigned int *expected_data;
bool bug_on_mvk;
bool bug_on_llvmpipe;
bool todo_on_llvmpipe;
}
tests[] =
{
@ -14210,6 +14210,13 @@ static void test_sample_instructions(void)
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {-1.0f}, rgba_level_0},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.0f}, rgba_level_0},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.4f}, rgba_level_0},
/* For POINT filtering, Direct3D specifies mip level selection
* essentially as "⌊λ + ½⌋" (7.18.10 "Mipmap Selection" in the
* Direct3D 11.3 Functional Specification). OpenGL and Vulkan allow
* both "⌈λ + ½⌉ - 1" and "⌊λ + ½⌋", with the former being preferred.
* Perhaps unsurprisingly, most desktop GPUs implement the Direct3D
* behaviour. Current versions of llvmpipe seem to implement the
* preferred OpenGL/Vulkan behaviour. */
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.5f}, level_1_colors, true, true},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.6f}, level_1_colors},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {1.0f}, level_1_colors},
@ -14360,7 +14367,7 @@ static void test_sample_instructions(void)
break;
}
bug_if(tests[i].bug_on_mvk && is_mvk_device(device))
bug_if(tests[i].bug_on_llvmpipe && is_llvmpipe_device(device))
todo_if(tests[i].todo_on_llvmpipe && is_llvmpipe_device(device))
ok(!fail, "Got color 0x%08x, expected 0x%08x at (%u, %u).\n",
color, tests[i].expected_data[tests[i].texture->width * y + x], x, y);
release_resource_readback(&rb);