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

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


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

diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 75c6020..d715602 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -10746,7 +10746,8 @@ static void test_pointsize(void)
     IDirect3DDevice9_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
@@ -10802,6 +10803,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);
@@ -10975,6 +10981,7 @@ cleanup:
     IDirect3DSurface9_Release(backbuffer);
     IDirect3DSurface9_Release(rt);
 
+cleanup_1tex:
     IDirect3DTexture9_Release(tex1);
     IDirect3DTexture9_Release(tex2);
     refcount = IDirect3DDevice9_Release(device);
-- 
2.10.2




More information about the wine-patches mailing list