[PATCH 1/4] d3d9/tests: Cleanup maxmip_test() a bit.
Henri Verbeet
hverbeet at codeweavers.com
Mon Sep 20 12:41:21 CDT 2010
Having the failure message match the actual draw call in particular makes
debugging failures a lot nicer.
---
dlls/d3d9/tests/visual.c | 143 ++++++++++++++++++++++++++--------------------
1 files changed, 81 insertions(+), 62 deletions(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 0c39456..32d73fd 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -2983,31 +2983,43 @@ static void maxmip_test(IDirect3DDevice9 *device)
IDirect3DSurface9 *surface = NULL;
HRESULT hr;
DWORD color;
- const float quads[] = {
- -1.0, -1.0, 0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, 0.0, 1.0,
- 0.0, -1.0, 0.0, 1.0, 0.0,
- 0.0, 0.0, 0.0, 1.0, 1.0,
-
- 0.0, -1.0, 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, 0.0, 1.0,
- 1.0, -1.0, 0.0, 1.0, 0.0,
- 1.0, 0.0, 0.0, 1.0, 1.0,
-
- 0.0, 0.0, 0.0, 0.0, 0.0,
- 0.0, 1.0, 0.0, 0.0, 1.0,
- 1.0, 0.0, 0.0, 1.0, 0.0,
- 1.0, 1.0, 0.0, 1.0, 1.0,
-
- -1.0, 0.0, 0.0, 0.0, 0.0,
- -1.0, 1.0, 0.0, 0.0, 1.0,
- 0.0, 0.0, 0.0, 1.0, 0.0,
- 0.0, 1.0, 0.0, 1.0, 1.0,
+ static const struct
+ {
+ struct
+ {
+ float x, y, z;
+ float s, t;
+ }
+ v[4];
+ }
+ quads[] =
+ {
+ {{
+ {-1.0, -1.0, 0.0, 0.0, 0.0},
+ {-1.0, 0.0, 0.0, 0.0, 1.0},
+ { 0.0, -1.0, 0.0, 1.0, 0.0},
+ { 0.0, 0.0, 0.0, 1.0, 1.0},
+ }},
+ {{
+ { 0.0, -1.0, 0.0, 0.0, 0.0},
+ { 0.0, 0.0, 0.0, 0.0, 1.0},
+ { 1.0, -1.0, 0.0, 1.0, 0.0},
+ { 1.0, 0.0, 0.0, 1.0, 1.0},
+ }},
+ {{
+ { 0.0, 0.0, 0.0, 0.0, 0.0},
+ { 0.0, 1.0, 0.0, 0.0, 1.0},
+ { 1.0, 0.0, 0.0, 1.0, 0.0},
+ { 1.0, 1.0, 0.0, 1.0, 1.0},
+ }},
+ {{
+ {-1.0, 0.0, 0.0, 0.0, 0.0},
+ {-1.0, 1.0, 0.0, 0.0, 1.0},
+ { 0.0, 0.0, 0.0, 1.0, 0.0},
+ { 0.0, 1.0, 0.0, 1.0, 1.0},
+ }},
};
- hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 0.0, 0);
- ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
-
hr = IDirect3DDevice9_CreateTexture(device, 128, 128, 3, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED,
&texture, NULL);
ok(hr == D3D_OK, "IDirect3DDevice9_CreateTexture failed with %08x\n", hr);
@@ -3038,27 +3050,30 @@ static void maxmip_test(IDirect3DDevice9 *device)
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MIPFILTER, D3DTEXF_NONE);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
+ hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 0.0, 0);
+ ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
+
hr = IDirect3DDevice9_BeginScene(device);
if(SUCCEEDED(hr))
{
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 0);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[ 0], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[0], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 1);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[20], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[1], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 2);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[40], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[2], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 3);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[60], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[3], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_EndScene(device);
ok(SUCCEEDED(hr), "EndScene failed (%08x)\n", hr);
@@ -3066,62 +3081,65 @@ static void maxmip_test(IDirect3DDevice9 *device)
/* With mipmapping disabled, the max mip level is ignored, only level 0 is used */
color = getPixelColor(device, 160, 360);
- ok(color == 0x00FF0000, "MapMip 0, no mipfilter has color %08x\n", color);
- color = getPixelColor(device, 160, 120);
- ok(color == 0x00FF0000, "MapMip 3, no mipfilter has color %08x\n", color);
- color = getPixelColor(device, 480, 120);
- ok(color == 0x00FF0000, "MapMip 2, no mipfilter has color %08x\n", color);
+ ok(color == 0x00ff0000, "MaxMip 0, no mipfilter has color 0x%08x.\n", color);
color = getPixelColor(device, 480, 360);
- ok(color == 0x00FF0000, "MapMip 1, no mipfilter has color %08x\n", color);
+ ok(color == 0x00ff0000, "MaxMip 1, no mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 480, 120);
+ ok(color == 0x00ff0000, "MaxMip 2, no mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 160, 120);
+ ok(color == 0x00ff0000, "MaxMip 3, no mipfilter has color 0x%08x.\n", color);
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(SUCCEEDED(hr), "Present failed (0x%08x)\n", hr);
- hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 0.0, 0);
- ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
-
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
+ hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 0.0, 0);
+ ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
+
hr = IDirect3DDevice9_BeginScene(device);
if(SUCCEEDED(hr))
{
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 0);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[ 0], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[0], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 1);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[20], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[1], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 2);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[40], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[2], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAXMIPLEVEL, 3);
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[60], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[3], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_EndScene(device);
ok(SUCCEEDED(hr), "IDirect3DDevice9_EndScene returned %#x.\n", hr);
}
- /* Max Mip level 0-2 sample from the specified texture level, Max Mip level 3(> levels in texture)
- * samples from the highest level in the texture(level 2)
- */
+ /* Max Mip level 0-2 sample from the specified texture level, Max Mip
+ * level 3 (> levels in texture) samples from the highest level in the
+ * texture (level 2). */
color = getPixelColor(device, 160, 360);
- ok(color == 0x00FF0000, "MapMip 0, point mipfilter has color %08x\n", color);
- color = getPixelColor(device, 160, 120);
- ok(color == 0x000000FF, "MapMip 3, point mipfilter has color %08x\n", color);
- color = getPixelColor(device, 480, 120);
- ok(color == 0x000000FF, "MapMip 2, point mipfilter has color %08x\n", color);
+ ok(color == 0x00ff0000, "MaxMip 0, point mipfilter has color 0x%08x.\n", color);
color = getPixelColor(device, 480, 360);
- ok(color == 0x0000FF00, "MapMip 1, point mipfilter has color %08x\n", color);
+ ok(color == 0x0000ff00, "MaxMip 1, point mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 480, 120);
+ ok(color == 0x000000ff, "MaxMip 2, point mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 160, 120);
+ ok(color == 0x000000ff, "MaxMip 3, point mipfilter has color 0x%08x.\n", color);
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(SUCCEEDED(hr), "Present failed (0x%08x)\n", hr);
+ hr = IDirect3DDevice9_Clear(device, 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 0.0, 0);
+ ok(hr == D3D_OK, "IDirect3DDevice9_Clear returned %08x\n", hr);
+
hr = IDirect3DDevice9_BeginScene(device);
if(SUCCEEDED(hr))
{
@@ -3134,7 +3152,7 @@ static void maxmip_test(IDirect3DDevice9 *device)
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
ret = IDirect3DTexture9_SetLOD(texture, 1);
ok(ret == 0, "IDirect3DTexture9_SetLOD returned %u, expected 0\n", ret);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[ 0], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[0], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
/* Mipmapping ON, LOD level smaller than max mip level. LOD level limits */
@@ -3144,7 +3162,7 @@ static void maxmip_test(IDirect3DDevice9 *device)
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
ret = IDirect3DTexture9_SetLOD(texture, 2);
ok(ret == 1, "IDirect3DTexture9_SetLOD returned %u, expected 1\n", ret);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[20], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[1], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
/* Mipmapping ON, LOD level bigger than max mip level. MAXMIPLEVEL limits */
@@ -3152,7 +3170,7 @@ static void maxmip_test(IDirect3DDevice9 *device)
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
ret = IDirect3DTexture9_SetLOD(texture, 1);
ok(ret == 2, "IDirect3DTexture9_SetLOD returned %u, expected 2\n", ret);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[40], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[2], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
/* Mipmapping OFF, LOD level bigger than max mip level. LOD level limits */
@@ -3162,22 +3180,23 @@ static void maxmip_test(IDirect3DDevice9 *device)
ok(hr == D3D_OK, "IDirect3DDevice9_SetSamplerState failed with %08x\n", hr);
ret = IDirect3DTexture9_SetLOD(texture, 1);
ok(ret == 1, "IDirect3DTexture9_SetLOD returned %u, expected 1\n", ret);
- hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[60], 5 * sizeof(float));
+ hr = IDirect3DDevice9_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, &quads[3], sizeof(*quads->v));
ok(SUCCEEDED(hr), "DrawPrimitiveUP failed (%08x)\n", hr);
hr = IDirect3DDevice9_EndScene(device);
}
- /* Max Mip level 0-2 sample from the specified texture level, Max Mip level 3(> levels in texture)
- * samples from the highest level in the texture(level 2)
- */
+ /* Max Mip level 0-2 sample from the specified texture level, Max Mip
+ * level 3 (> levels in texture) samples from the highest level in the
+ * texture (level 2). */
color = getPixelColor(device, 160, 360);
- ok(color == 0x0000FF00, "MaxMip 0, LOD 1, none mipfilter has color 0x%08x\n", color);
- color = getPixelColor(device, 160, 120);
- ok(color == 0x0000FF00, "MaxMip 1, LOD 2, point mipfilter has color 0x%08x\n", color);
- color = getPixelColor(device, 480, 120);
- ok(color == 0x000000FF, "MapMip 2, LOD 1, point mipfilter has color 0x%08x\n", color);
+ ok(color == 0x0000ff00, "MaxMip 0, LOD 1, none mipfilter has color 0x%08x.\n", color);
color = getPixelColor(device, 480, 360);
- ok(color == 0x000000FF, "MapMip 2, LOD 1, none mipfilter has color 0x%08x\n", color);
+ ok(color == 0x000000ff, "MaxMip 1, LOD 2, point mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 480, 120);
+ ok(color == 0x000000ff, "MaxMip 2, LOD 1, point mipfilter has color 0x%08x.\n", color);
+ color = getPixelColor(device, 160, 120);
+ ok(color == 0x0000ff00, "MaxMip 2, LOD 1, none mipfilter has color 0x%08x.\n", color);
+
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
ok(SUCCEEDED(hr), "Present failed (0x%08x)\n", hr);
--
1.7.2.2
More information about the wine-patches
mailing list