From: Jeff Smith Subject: [PATCH 4/7] ddraw/tests: Use flags to indicate broken render-target tests. Message-Id: <20191213050008.1175341-4-whydoubt@gmail.com> Date: Thu, 12 Dec 2019 23:00:05 -0600 In-Reply-To: <20191213050008.1175341-1-whydoubt@gmail.com> References: <20191213050008.1175341-1-whydoubt@gmail.com> Signed-off-by: Jeff Smith --- dlls/ddraw/tests/ddraw1.c | 35 +++++++--------------- dlls/ddraw/tests/ddraw2.c | 63 +++++++++------------------------------ dlls/ddraw/tests/ddraw4.c | 41 ++++++++++--------------- dlls/ddraw/tests/ddraw7.c | 43 +++++++++++--------------- 4 files changed, 59 insertions(+), 123 deletions(-) diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index 9b0ee8e553..66b84edf45 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -3908,7 +3908,8 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DWORD caps_in; DWORD caps_out; HRESULT create_device_hr; - BOOL create_may_fail; + BOOL broken_create_surface; + BOOL broken_surface_caps; } test_data[] = { @@ -3917,126 +3918,112 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, - FALSE, }, { NULL, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, - FALSE, }, { NULL, DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, }, { NULL, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, - FALSE, }, { NULL, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, - FALSE, }, { NULL, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, - FALSE, }, { NULL, DDSCAPS_3DDEVICE, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, - FALSE, }, { NULL, 0, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, }, { NULL, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, - FALSE, }, { NULL, DDSCAPS_SYSTEMMEMORY, DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, 0, DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, - ~0U /* AMD r200 */ , + DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY, DDERR_NOPALETTEATTACHED, - FALSE, + FALSE, TRUE /* AMD r200 */ }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDERR_NOPALETTEATTACHED, - FALSE, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, - FALSE, }, { NULL, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER, DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - TRUE /* AMD Evergreen */, + TRUE }, { NULL, DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, - ~0U /* AMD Evergreen */, + DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, + FALSE, TRUE }, { NULL, DDSCAPS_ZBUFFER, - ~0U /* AMD Evergreen */, + DDSCAPS_ZBUFFER | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, - FALSE, + FALSE, TRUE }, { NULL, @@ -4095,7 +4082,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw_CreateSurface(ddraw, &surface_desc, &surface, NULL); - ok(SUCCEEDED(hr) || broken(test_data[i].create_may_fail), + ok(SUCCEEDED(hr) || broken(test_data[i].broken_create_surface), "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", device_name, i, test_data[i].caps_in, hr); if (FAILED(hr)) @@ -4105,7 +4092,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwSize = sizeof(surface_desc); hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc); ok(SUCCEEDED(hr), "Test %s %u: Failed to get surface desc, hr %#x.\n", device_name, i, hr); - ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, + ok(surface_desc.ddsCaps.dwCaps == test_data[i].caps_out || broken(test_data[i].broken_surface_caps), "Test %s %u: Got unexpected caps %#x, expected %#x.\n", device_name, i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index 3c5485af96..2bd56b7afd 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -4329,8 +4329,8 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DWORD caps_out; HRESULT create_device_hr; HRESULT set_rt_hr; - HRESULT alternative_set_rt_hr; - BOOL create_may_fail; + BOOL broken_create_surface; + BOOL broken_surface_caps; } test_data[] = { @@ -4340,8 +4340,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4349,8 +4347,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4358,8 +4354,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { NULL, @@ -4367,8 +4361,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4376,8 +4368,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { NULL, @@ -4385,8 +4375,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4394,8 +4382,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4403,8 +4389,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { NULL, @@ -4412,8 +4396,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, D3D_OK, - D3D_OK, - FALSE, }, { NULL, @@ -4421,8 +4403,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, @@ -4430,17 +4410,14 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, - ~0U /* AMD r200 */, + DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, + FALSE, TRUE /* AMD r200 */ }, { &p8_fmt, @@ -4448,8 +4425,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, @@ -4457,8 +4432,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { &p8_fmt, @@ -4466,8 +4439,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - FALSE, }, { NULL, @@ -4475,26 +4446,23 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - DDERR_INVALIDCAPS, - TRUE /* AMD Evergreen */, + TRUE }, { NULL, DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, - ~0U /* AMD Evergreen */, + DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - DDERR_INVALIDCAPS, - FALSE, + FALSE, TRUE }, { NULL, DDSCAPS_ZBUFFER, - ~0U /* AMD Evergreen */, - DDERR_INVALIDCAPS, + DDSCAPS_ZBUFFER | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - FALSE, + FALSE, TRUE }, { NULL, @@ -4502,8 +4470,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - DDERR_INVALIDPIXELFORMAT, - TRUE /* Nvidia Kepler */, + TRUE /* Nvidia Kepler */ }, { NULL, @@ -4511,8 +4478,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, - TRUE /* Nvidia Kepler */, + TRUE /* Nvidia Kepler */ }, }; @@ -4563,7 +4529,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &surface, NULL); - ok(SUCCEEDED(hr) || broken(test_data[i].create_may_fail), + ok(SUCCEEDED(hr) || broken(test_data[i].broken_create_surface), "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", device_name, i, test_data[i].caps_in, hr); if (FAILED(hr)) @@ -4573,7 +4539,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwSize = sizeof(surface_desc); hr = IDirectDrawSurface_GetSurfaceDesc(surface, &surface_desc); ok(SUCCEEDED(hr), "Test %s %u: Failed to get surface desc, hr %#x.\n", device_name, i, hr); - ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, + ok(surface_desc.ddsCaps.dwCaps == test_data[i].caps_out || broken(test_data[i].broken_surface_caps), "Test %s %u: Got unexpected caps %#x, expected %#x.\n", device_name, i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); @@ -4628,8 +4594,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) device_name, i, test_data[i].caps_in, hr); hr = IDirect3DDevice2_SetRenderTarget(device, rt, 0); - ok(hr == test_data[i].set_rt_hr || broken(hr == test_data[i].alternative_set_rt_hr), - "Test %s %u: Got unexpected hr %#x, expected %#x.\n", + ok(hr == test_data[i].set_rt_hr, "Test %s %u: Got unexpected hr %#x, expected %#x.\n", device_name, i, hr, test_data[i].set_rt_hr); if (SUCCEEDED(hr) || hr == DDERR_INVALIDPIXELFORMAT) expected_rt = rt; diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index b4b2f15b34..0ab8c74dab 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -5945,7 +5945,10 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DWORD caps_in; DWORD caps_out; HRESULT create_device_hr; - HRESULT set_rt_hr, alternative_set_rt_hr; + HRESULT set_rt_hr; + BOOL broken_create_surface; + BOOL broken_surface_caps; + BOOL broken_set_target_ok; } test_data[] = { @@ -5955,7 +5958,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5963,7 +5965,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5971,7 +5972,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -5979,7 +5979,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, D3D_OK, - D3D_OK, }, { NULL, @@ -5987,7 +5986,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -5995,7 +5993,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -6003,7 +6000,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -6011,7 +6007,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -6019,7 +6014,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, D3D_OK, - D3D_OK, }, { NULL, @@ -6027,7 +6021,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -6035,15 +6028,14 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, - ~0U /* AMD r200 */, + DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, + FALSE, TRUE /* AMD r200 */ }, { &p8_fmt, @@ -6051,7 +6043,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -6059,7 +6050,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -6067,7 +6057,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &z_fmt, @@ -6075,7 +6064,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - D3D_OK /* r200 */, + FALSE, FALSE, TRUE }, { &z_fmt, @@ -6083,7 +6072,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - D3D_OK /* r200 */, + FALSE, FALSE, TRUE }, { &z_fmt, @@ -6091,7 +6080,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &z_fmt, @@ -6099,7 +6087,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - D3D_OK /* r200 */, + FALSE, FALSE, TRUE }, { &z_fmt, @@ -6107,7 +6095,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, }; @@ -6154,14 +6141,17 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL); - ok(SUCCEEDED(hr), "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", + ok(SUCCEEDED(hr) || broken(test_data[i].broken_create_surface), + "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", device_name, i, test_data[i].caps_in, hr); + if (FAILED(hr)) + continue; memset(&surface_desc, 0, sizeof(surface_desc)); surface_desc.dwSize = sizeof(surface_desc); hr = IDirectDrawSurface4_GetSurfaceDesc(surface, &surface_desc); ok(SUCCEEDED(hr), "Test %s %u: Failed to get surface desc, hr %#x.\n", device_name, i, hr); - ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, + ok(surface_desc.ddsCaps.dwCaps == test_data[i].caps_out || broken(test_data[i].broken_surface_caps), "Test %s %u: Got unexpected caps %#x, expected %#x.\n", device_name, i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); @@ -6211,7 +6201,8 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) device_name, i, test_data[i].caps_in, hr); hr = IDirect3DDevice3_SetRenderTarget(device, rt, 0); - ok(hr == test_data[i].set_rt_hr || broken(hr == test_data[i].alternative_set_rt_hr), + ok(hr == test_data[i].set_rt_hr || broken( + test_data[i].broken_set_target_ok && hr == D3D_OK), "Test %s %u: Got unexpected hr %#x, expected %#x.\n", device_name, i, hr, test_data[i].set_rt_hr); if (SUCCEEDED(hr) || hr == DDERR_INVALIDPIXELFORMAT) diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 94618c0178..f2552ad491 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -5682,7 +5682,11 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DWORD caps_in; DWORD caps_out; HRESULT create_device_hr; - HRESULT set_rt_hr, alternative_set_rt_hr; + HRESULT set_rt_hr; + BOOL broken_create_surface; + BOOL broken_surface_caps; + BOOL broken_set_target_ok; + BOOL broken_set_target_ivpf; } test_data[] = { @@ -5692,7 +5696,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5700,7 +5703,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5708,7 +5710,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -5716,7 +5717,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, DDERR_INVALIDPARAMS, - D3D_OK, + FALSE, FALSE, TRUE }, { NULL, @@ -5724,7 +5725,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -5732,7 +5732,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5740,7 +5739,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, D3D_OK, D3D_OK, - D3D_OK, }, { NULL, @@ -5748,7 +5746,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { NULL, @@ -5756,7 +5753,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, D3DERR_SURFACENOTINVIDMEM, DDERR_INVALIDPARAMS, - D3D_OK, + FALSE, FALSE, TRUE }, { NULL, @@ -5764,7 +5761,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -5772,15 +5768,14 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE, - ~0U /* AMD r200 */, + DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE | DDSCAPS_SYSTEMMEMORY, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, + FALSE, TRUE /* AMD r200 */ }, { &p8_fmt, @@ -5788,7 +5783,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -5796,7 +5790,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE, DDERR_NOPALETTEATTACHED, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &p8_fmt, @@ -5804,7 +5797,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &z_fmt, @@ -5812,7 +5804,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - DDERR_INVALIDPIXELFORMAT, }, { &z_fmt, @@ -5820,7 +5811,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_3DDEVICE | DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDPIXELFORMAT, - DDERR_INVALIDPIXELFORMAT, }, { &z_fmt, @@ -5828,7 +5818,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_VIDEOMEMORY | DDSCAPS_ZBUFFER | DDSCAPS_LOCALVIDMEM, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, { &z_fmt, @@ -5836,7 +5825,7 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_3DDEVICE | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDPARAMS, - DDERR_INVALIDPIXELFORMAT, + FALSE, FALSE, FALSE, TRUE }, { &z_fmt, @@ -5844,7 +5833,6 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) DDSCAPS_SYSTEMMEMORY | DDSCAPS_ZBUFFER, DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, - DDERR_INVALIDCAPS, }, }; @@ -5900,14 +5888,17 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL); - ok(SUCCEEDED(hr), "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", + ok(SUCCEEDED(hr) || broken(test_data[i].broken_create_surface), + "Test %s %u: Failed to create surface with caps %#x, hr %#x.\n", device_name, i, test_data[i].caps_in, hr); + if (FAILED(hr)) + continue; memset(&surface_desc, 0, sizeof(surface_desc)); surface_desc.dwSize = sizeof(surface_desc); hr = IDirectDrawSurface7_GetSurfaceDesc(surface, &surface_desc); ok(SUCCEEDED(hr), "Test %s %u: Failed to get surface desc, hr %#x.\n", device_name, i, hr); - ok(test_data[i].caps_out == ~0U || surface_desc.ddsCaps.dwCaps == test_data[i].caps_out, + ok(surface_desc.ddsCaps.dwCaps == test_data[i].caps_out || broken(test_data[i].broken_surface_caps), "Test %s %u: Got unexpected caps %#x, expected %#x.\n", device_name, i, surface_desc.ddsCaps.dwCaps, test_data[i].caps_out); @@ -5957,7 +5948,9 @@ static void test_rt_caps_riid(REFCLSID riid, const char *device_name) device_name, i, test_data[i].caps_in, hr); hr = IDirect3DDevice7_SetRenderTarget(device, rt, 0); - ok(hr == test_data[i].set_rt_hr || broken(hr == test_data[i].alternative_set_rt_hr), + ok(hr == test_data[i].set_rt_hr || broken( + (test_data[i].broken_set_target_ok && hr == D3D_OK) || + (test_data[i].broken_set_target_ivpf && hr == DDERR_INVALIDPIXELFORMAT)), "Test %s %u: Got unexpected hr %#x, expected %#x.\n", device_name, i, hr, test_data[i].set_rt_hr); if (SUCCEEDED(hr) || hr == DDERR_INVALIDPIXELFORMAT) -- 2.23.0