[PATCH 3/5] ddraw/tests: Changing only viewport Z range is broken on r500 on Win10.

Stefan Dösinger stefan at codeweavers.com
Mon Jan 27 15:45:26 CST 2020


Signed-off-by: Stefan Dösinger <stefan at codeweavers.com>

---

It somehow ends up drawing at z=0.5 instead of z=0.5+eps. Going through a
different viewport size first fixes the problem and the test works like
everywhere else. Weirdly this only applies to 640x480 target as well (but
creating a separate RT+DS doesn't help), not the render targets with higher
or lower resolutions.

LEGO Island 2 is broken on this machine, although in a different way than
in bug 48104. It lookd as if the GPU does not handle surface tiling
correctly.
---
 dlls/ddraw/tests/ddraw7.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 78ff17f28ac..71244ca1e1d 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -14966,9 +14966,10 @@ static void test_viewport(void)
     tests[] =
     {
         {{  0,   0,  640,  480}, 0.001f, {  0, 120, 479, 359}, "Viewport (0, 0) - (640, 480)"},
+        {{  0,   0,  320,  240}, 0.001f, {  0,  60, 239, 179}, "Viewport (0, 0) - (320, 240)"},
+        /* Don't run this right after the other 640x480 test, it breaks r500. */
         {{  0,   0,  640,  480, 0.5f, 0.0f}, 0.501f,
                 {0, 120, 479, 359}, "Viewport (0, 0, 0.5) - (640, 480, 0.0)"},
-        {{  0,   0,  320,  240}, 0.001f, {  0,  60, 239, 179}, "Viewport (0, 0) - (320, 240)"},
         {{  0,   0, 1280,  960}, 0.001f, {  0, 240, 639, 479}, "Viewport (0, 0) - (1280, 960)"},
         {{  0,   0, 2000, 1600}, 0.001f, {-10, -10, -10, -10}, "Viewport (0, 0) - (2000, 1600)"},
         {{100, 100,  640,  480}, 0.001f, {100, 220, 579, 459}, "Viewport (100, 100) - (640, 480)"},
-- 
2.24.1




More information about the wine-devel mailing list