=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: d3d9/tests: Skip YUV tests if the formats cannot be converted.
Alexandre Julliard
julliard at winehq.org
Mon Feb 17 13:45:16 CST 2014
Module: wine
Branch: master
Commit: 6745982aaa712b9054411cf54ec08b7d1aac8303
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6745982aaa712b9054411cf54ec08b7d1aac8303
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Sun Feb 16 22:42:20 2014 +0100
d3d9/tests: Skip YUV tests if the formats cannot be converted.
The Windows 8 testbot supports some YUV formats as plain surfaces, but cannot
convert them to RGB in StretchRect.
---
dlls/d3d9/tests/visual.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
index 89f02b9..13d0ea6 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
@@ -10382,6 +10382,7 @@ static void yuv_color_test(IDirect3DDevice9 *device)
IDirect3D9 *d3d;
D3DCOLOR color;
D3DFORMAT skip_once = D3DFMT_UNKNOWN;
+ D3DSURFACE_DESC desc;
static const struct
{
@@ -10435,6 +10436,8 @@ static void yuv_color_test(IDirect3DDevice9 *device)
ok(SUCCEEDED(hr), "Failed to get d3d9 interface, hr %#x.\n", hr);
hr = IDirect3DDevice9_GetRenderTarget(device, 0, &target);
ok(SUCCEEDED(hr), "Failed to get render target, hr %#x.\n", hr);
+ hr = IDirect3DSurface9_GetDesc(target, &desc);
+ ok(SUCCEEDED(hr), "Failed to get surface description, hr %#x.\n", hr);
for (i = 0; i < sizeof(test_data) / sizeof(test_data[0]); i++)
{
@@ -10450,6 +10453,16 @@ static void yuv_color_test(IDirect3DDevice9 *device)
}
continue;
}
+ if (FAILED(IDirect3D9_CheckDeviceFormatConversion(d3d, 0,
+ D3DDEVTYPE_HAL, test_data[i].format, desc.Format)))
+ {
+ if (skip_once != test_data[i].format)
+ {
+ skip("Driver cannot blit %s surfaces.\n", test_data[i].fmt_string);
+ skip_once = test_data[i].format;
+ }
+ continue;
+ }
/* A pixel is effectively 16 bit large, but two pixels are stored together, so the minimum size is 2x1.
* However, Nvidia Windows drivers have problems with 2x1 YUY2/UYVY surfaces, so use a 4x1 surface and
More information about the wine-cvs
mailing list