tests: Mark a sampling test as buggy on llvmpipe.

Vulkan doesn't mandate whether sampling exactly in the middle between
two levels should resolve to one or the other, while D3D specifies
that it should result into sampling the higher level. llvmpipe
happens to choose the lower one instead, at least in some cases.
This commit is contained in:
Giovanni Mascellani 2024-04-10 13:18:02 +02:00 committed by Henri Verbeet
parent 773e1bbeae
commit 3c86094371
Notes: Henri Verbeet 2024-10-21 18:42:16 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1197

View File

@ -14180,6 +14180,7 @@ static void test_sample_instructions(void)
float ps_constants[4]; float ps_constants[4];
const unsigned int *expected_data; const unsigned int *expected_data;
bool bug_on_mvk; bool bug_on_mvk;
bool bug_on_llvmpipe;
} }
tests[] = tests[] =
{ {
@ -14209,7 +14210,7 @@ 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, {-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.0f}, rgba_level_0},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.4f}, rgba_level_0}, {&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.4f}, rgba_level_0},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {0.5f}, level_1_colors, true}, {&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, {0.6f}, level_1_colors},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {1.0f}, level_1_colors}, {&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {1.0f}, level_1_colors},
{&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {1.4f}, level_1_colors}, {&ps_sample_l, &rgba_texture, POINT, 0.0f, 0.0f, MIP_MAX, {1.4f}, level_1_colors},
@ -14359,6 +14360,7 @@ static void test_sample_instructions(void)
break; break;
} }
bug_if(tests[i].bug_on_mvk && is_mvk_device(device)) bug_if(tests[i].bug_on_mvk && is_mvk_device(device))
bug_if(tests[i].bug_on_llvmpipe && is_llvmpipe_device(device))
ok(!fail, "Got color 0x%08x, expected 0x%08x at (%u, %u).\n", 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); color, tests[i].expected_data[tests[i].texture->width * y + x], x, y);
release_resource_readback(&rb); release_resource_readback(&rb);