From 080b2c86046017b5162edea736e1ec9ae9ec7dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Fri, 21 Jan 2022 12:58:13 +0300 Subject: [PATCH] d3d8/tests: Accept Nvidia results in test_sample_mask as broken. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Dösinger Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d8/tests/visual.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index 3c61426e17f..8d5f9d39df8 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -11171,7 +11171,15 @@ static void test_sample_mask(void) ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); get_rt_readback(rt, &rb); colour = get_readback_color(&rb, 64, 64); - ok(color_match(colour, 0xffff8080, 1), "Got unexpected colour %08x.\n", colour); + /* Multiple generations of Nvidia cards return broken results. + * A mask with no bits or all bits set produce the expected results (0x00 / 0xff), + * but any other mask behaves almost as if the result is 0.5 + (enabled / total) + * samples. It's not quite that though (you'd expect 0xbf or 0xc0 instead of 0xbc). + * + * I looked at a few other possible problems: Incorrectly enabled Z test, alpha test, + * culling, the multisample mask affecting CopyRects. Neither of these make a difference. */ + ok(color_match(colour, 0xffff8080, 1) || broken(color_match(colour, 0xffffbcbc, 1)), + "Got unexpected colour %08x.\n", colour); release_surface_readback(&rb); hr = IDirect3DDevice8_EndScene(device);