[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