[PATCH 2/5] d3d8/tests: r500 GPUs only generate point sprite coords on texture coordinate 0.

Stefan Dösinger stefandoesinger at gmx.at
Sun Feb 19 05:47:51 CST 2017


Signed-off-by: Stefan Dösinger <stefandoesinger at gmx.at>
---
 dlls/d3d8/tests/visual.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c
index b477ab7..e2ca179 100644
--- a/dlls/d3d8/tests/visual.c
+++ b/dlls/d3d8/tests/visual.c
@@ -7042,7 +7042,8 @@ static void test_pointsize(void)
     IDirect3DDevice8_Present(device, NULL, NULL, NULL, NULL);
 
     /* The following code tests point sprites with two textures, to see if each texture coordinate unit
-     * generates texture coordinates for the point(result: Yes, it does)
+     * generates texture coordinates for the point. Result: Yes, it does, except on some older hardware
+     * (r500 and earlier, probably others).
      *
      * However, not all GL implementations support point sprites(they need GL_ARB_point_sprite), but there
      * is no point sprite cap bit in d3d because native d3d software emulates point sprites. Until the
@@ -7098,6 +7099,11 @@ static void test_pointsize(void)
     color = getPixelColor(device, 64 - 4, 64 - 4);
     ok(color == 0x00ff0000, "pSprite: Pixel (64 - 4),(64 - 4) has color 0x%08x, expected 0x00ff0000\n", color);
     color = getPixelColor(device, 64 - 4, 64 + 4);
+    if (color == 0x00ff0000)
+    {
+        skip("Hardware generates point sprite coordinates on texture unit 0 only.\n");
+        goto cleanup_1tex;
+    }
     ok(color == 0x00000000, "pSprite: Pixel (64 - 4),(64 + 4) has color 0x%08x, expected 0x00000000\n", color);
     color = getPixelColor(device, 64 + 4, 64 + 4);
     ok(color == 0x0000ff00, "pSprite: Pixel (64 + 4),(64 + 4) has color 0x%08x, expected 0x0000ff00\n", color);
@@ -7261,6 +7267,7 @@ cleanup:
     IDirect3DSurface8_Release(depthstencil);
     IDirect3DSurface8_Release(rt);
 
+cleanup_1tex:
     IDirect3DTexture8_Release(tex1);
     IDirect3DTexture8_Release(tex2);
     refcount = IDirect3DDevice8_Release(device);
-- 
2.10.2




More information about the wine-patches mailing list