Module: wine
Branch: master
Commit: 080b2c86046017b5162edea736e1ec9ae9ec7dd1
URL: https://source.winehq.org/git/wine.git/?a=commit;h=080b2c86046017b5162edea7…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Fri Jan 21 12:58:13 2022 +0300
d3d8/tests: Accept Nvidia results in test_sample_mask as broken.
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
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);
Module: wine
Branch: master
Commit: fc98f7d9f9ac3fa048548f60931d6d4c1bd92fe0
URL: https://source.winehq.org/git/wine.git/?a=commit;h=fc98f7d9f9ac3fa048548f60…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Fri Jan 21 12:58:12 2022 +0300
d3d9/tests: Accept Nvidia results in test_sample_mask as broken.
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/d3d9/tests/visual.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index f4aa45f91fa..89f9e9cf2c6 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -26911,7 +26911,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 = IDirect3DDevice9_EndScene(device);