[PATCH 3/3] d3d8/tests: Accept a broken Windows 10 20H? result.

Stefan Dösinger stefan at codeweavers.com
Fri Jan 21 03:58:14 CST 2022


Signed-off-by: Stefan Dösinger <stefan at codeweavers.com>
---
 dlls/d3d8/tests/visual.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c
index 8d5f9d39df8..de86b7bc07d 100644
--- a/dlls/d3d8/tests/visual.c
+++ b/dlls/d3d8/tests/visual.c
@@ -459,15 +459,22 @@ static void lighting_test(void)
         const D3DMATRIX *world_matrix;
         const void *quad;
         unsigned int size;
-        DWORD expected;
+        DWORD expected, broken;
         const char *message;
     }
     tests[] =
     {
-        {&mat, nquad, sizeof(nquad[0]), 0x000000ff, "Lit quad with light"},
-        {&mat_singular, nquad, sizeof(nquad[0]), 0x000000ff, "Lit quad with singular world matrix"},
-        {&mat_transf, rotatedquad, sizeof(rotatedquad[0]), 0x000000ff, "Lit quad with transformation matrix"},
-        {&mat_nonaffine, translatedquad, sizeof(translatedquad[0]), 0x00000000, "Lit quad with non-affine matrix"},
+        {&mat, nquad, sizeof(nquad[0]), 0x000000ff, 0xdeadbeef,
+                "Lit quad with light"},
+        /* Starting around Win10 20H? this test returns 0x00000000, but only
+         * in d3d8. In ddraw and d3d9 it works like in older windows versions.
+         * The behavior is GPU independent. */
+        {&mat_singular, nquad, sizeof(nquad[0]), 0x000000ff, 0x00000000,
+                "Lit quad with singular world matrix"},
+        {&mat_transf, rotatedquad, sizeof(rotatedquad[0]), 0x000000ff, 0xdeadbeef,
+                "Lit quad with transformation matrix"},
+        {&mat_nonaffine, translatedquad, sizeof(translatedquad[0]), 0x00000000, 0xdeadbeef,
+                "Lit quad with non-affine matrix"},
     };
 
     window = create_window();
@@ -569,7 +576,8 @@ static void lighting_test(void)
         ok(SUCCEEDED(hr), "Failed to end scene, hr %#x.\n", hr);
 
         color = getPixelColor(device, 320, 240);
-        ok(color == tests[i].expected, "%s has color 0x%08x.\n", tests[i].message, color);
+        ok(color == tests[i].expected || broken(color == tests[i].broken),
+                "%s has color 0x%08x.\n", tests[i].message, color);
     }
 
     refcount = IDirect3DDevice8_Release(device);
-- 
2.24.3 (Apple Git-128)




More information about the wine-devel mailing list