=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: d3d9/tests: D3DCMP_GREATER is broken on r500.

Alexandre Julliard julliard at winehq.org
Thu Sep 12 14:55:21 CDT 2013


Module: wine
Branch: master
Commit: 53741d2bb92b68379885e280c1b4c7c088478994
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=53741d2bb92b68379885e280c1b4c7c088478994

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Thu Sep 12 12:23:32 2013 +0200

d3d9/tests: D3DCMP_GREATER is broken on r500.

---

 dlls/d3d9/tests/visual.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 1deba5f..f047cd7 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -2558,15 +2558,21 @@ static void z_range_test(IDirect3DDevice9 *device)
     else
         ok(color_match(color, 0x00ffff00, 0), "Z range failed: Got color 0x%08x, expected 0x00ffff00.\n", color);
 
-    /* Not clipped, > z buffer clear value(0.75) */
+    /* Not clipped, > z buffer clear value(0.75).
+     *
+     * On the r500 driver on Windows D3DCMP_GREATER and D3DCMP_GREATEREQUAL are broken for depth
+     * values > 0.5. The range appears to be distorted, apparently an incoming value of ~0.875 is
+     * equal to a stored depth buffer value of 0.5. */
     color = getPixelColor(device, 31, 238);
     ok(color_match(color, 0x00ff0000, 0), "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
     color = getPixelColor(device, 31, 241);
     ok(color_match(color, 0x00ffff00, 0), "Z range failed: Got color 0x%08x, expected 0x00ffff00.\n", color);
     color = getPixelColor(device, 100, 238);
-    ok(color_match(color, 0x00ff0000, 0), "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
+    ok(color_match(color, 0x00ff0000, 0) || broken(color_match(color, 0x00ffffff, 0)),
+            "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
     color = getPixelColor(device, 100, 241);
-    ok(color_match(color, 0x00ffff00, 0), "Z range failed: Got color 0x%08x, expected 0x00ffff00.\n", color);
+    ok(color_match(color, 0x00ffff00, 0) || broken(color_match(color, 0x00ffffff, 0)),
+            "Z range failed: Got color 0x%08x, expected 0x00ffff00.\n", color);
 
     /* Not clipped, < z buffer clear value */
     color = getPixelColor(device, 104, 238);
@@ -2638,7 +2644,8 @@ static void z_range_test(IDirect3DDevice9 *device)
     color = getPixelColor(device, 31, 238);
     ok(color_match(color, 0x00ff0000, 0), "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
     color = getPixelColor(device, 100, 238);
-    ok(color_match(color, 0x00ff0000, 0), "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
+    ok(color_match(color, 0x00ff0000, 0) || broken(color_match(color, 0x00ffffff, 0)),
+            "Z range failed: Got color 0x%08x, expected 0x00ff0000.\n", color);
 
     /* 0.75 < z < 0.0 */
     color = getPixelColor(device, 104, 238);




More information about the wine-cvs mailing list