-- v4: ddraw: Don't demand WINED3D_BIND_SHADER_RESOURCE for making surface in vidmem.
From: Paul Gofman pgofman@codeweavers.com
--- dlls/ddraw/surface.c | 10 ++++++++- dlls/ddraw/tests/ddraw1.c | 40 +++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw2.c | 46 ++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw4.c | 47 +++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw7.c | 47 +++++++++++++++++++++++++++++++++++++++ dlls/quartz/tests/vmr7.c | 6 +++-- 6 files changed, 193 insertions(+), 3 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index a096c5d7d8e..be15b38fe92 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -6840,11 +6840,19 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ { if (!(desc->ddsCaps.dwCaps2 & (DDSCAPS2_TEXTUREMANAGE | DDSCAPS2_D3DTEXTUREMANAGE))) { - unsigned int bind_flags = WINED3D_BIND_SHADER_RESOURCE; + unsigned int bind_flags = 0; DWORD usage = 0;
if (desc->ddsCaps.dwCaps2 & DDSCAPS2_CUBEMAP) + { usage |= WINED3DUSAGE_LEGACY_CUBEMAP; + bind_flags |= WINED3D_BIND_SHADER_RESOURCE; + } + else if (desc->ddsCaps.dwCaps & DDSCAPS_TEXTURE) + { + bind_flags |= WINED3D_BIND_SHADER_RESOURCE; + } + if (desc->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) bind_flags |= WINED3D_BIND_DEPTH_STENCIL; else if (desc->ddsCaps.dwCaps & DDSCAPS_3DDEVICE) diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index d8fcb188c40..bad439ec9d1 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -4563,6 +4563,7 @@ static void test_unsupported_formats(void)
static void test_rt_caps(const GUID *device_guid) { + DWORD fourcc_codes[64], fourcc_code_count; PALETTEENTRY palette_entries[256]; IDirectDrawPalette *palette; IDirect3DDevice *device; @@ -4580,6 +4581,12 @@ static void test_rt_caps(const GUID *device_guid) sizeof(DDPIXELFORMAT), DDPF_PALETTEINDEXED8 | DDPF_RGB, 0, {8}, {0x00000000}, {0x00000000}, {0x00000000}, {0x00000000}, }; + static const DDPIXELFORMAT fourcc_fmt = + { + .dwSize = sizeof(DDPIXELFORMAT), + .dwFlags = DDPF_FOURCC, + .dwFourCC = MAKEFOURCC('Y','U','Y','2'), + };
static const struct { @@ -4710,6 +4717,12 @@ static void test_rt_caps(const GUID *device_guid) DDERR_INVALIDCAPS, TRUE /* Nvidia Kepler */, }, + { + &fourcc_fmt, + DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_OFFSCREENPLAIN, + DDERR_INVALIDCAPS, + FALSE, + }, };
software_device = is_software_device_type(device_guid); @@ -4737,6 +4750,10 @@ static void test_rt_caps(const GUID *device_guid) hr = IDirectDraw_GetCaps(ddraw, &hal_caps, NULL); ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr);
+ fourcc_code_count = ARRAY_SIZE(fourcc_codes); + hr = IDirectDraw4_GetFourCCCodes(ddraw, &fourcc_code_count, fourcc_codes); + ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr); + for (i = 0; i < ARRAY_SIZE(test_data); ++i) { DWORD caps_in, expected_caps; @@ -4753,6 +4770,21 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.ddsCaps.dwCaps = caps_in; if (test_data[i].pf) { + if (test_data[i].pf->dwFlags & DDPF_FOURCC) + { + unsigned int j; + + for (j = 0; j < fourcc_code_count; ++j) + { + if (test_data[i].pf->dwFourCC == fourcc_codes[j]) + break; + } + if (j == fourcc_code_count) + { + skip("Fourcc format %#lx is not supported, skipping test.\n", test_data[i].pf->dwFourCC); + continue; + } + } surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } @@ -4761,6 +4793,11 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.dwFlags |= DDSD_ZBUFFERBITDEPTH; surface_desc.dwZBufferBitDepth = z_depth; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; if ((caps_in & DDSCAPS_VIDEOMEMORY) && !(hal_caps.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)) @@ -4784,6 +4821,9 @@ static void test_rt_caps(const GUID *device_guid) else expected_caps = caps_in | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;
+ if (caps_in & DDSCAPS_FLIP) + expected_caps |= DDSCAPS_FRONTBUFFER; + ok(surface_desc.ddsCaps.dwCaps == expected_caps || (test_data[i].pf == &p8_fmt && surface_desc.ddsCaps.dwCaps == (caps_in | DDSCAPS_SYSTEMMEMORY)) || (software_device && caps_in & DDSCAPS_ZBUFFER diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index f4cc5df0558..c15938c303b 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -5007,6 +5007,7 @@ static void test_unsupported_formats(void)
static void test_rt_caps(const GUID *device_guid) { + DWORD fourcc_codes[64], fourcc_code_count; PALETTEENTRY palette_entries[256]; IDirectDrawPalette *palette; IDirect3DDevice2 *device; @@ -5025,6 +5026,12 @@ static void test_rt_caps(const GUID *device_guid) sizeof(DDPIXELFORMAT), DDPF_PALETTEINDEXED8 | DDPF_RGB, 0, {8}, {0x00000000}, {0x00000000}, {0x00000000}, {0x00000000}, }; + static const DDPIXELFORMAT fourcc_fmt = + { + .dwSize = sizeof(DDPIXELFORMAT), + .dwFlags = DDPF_FOURCC, + .dwFourCC = MAKEFOURCC('Y','U','Y','2'), + };
static const struct { @@ -5197,6 +5204,13 @@ static void test_rt_caps(const GUID *device_guid) DDERR_INVALIDCAPS, TRUE /* Nvidia Kepler */, }, + { + &fourcc_fmt, + DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_OFFSCREENPLAIN, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + }, };
software_device = is_software_device_type(device_guid); @@ -5230,6 +5244,10 @@ static void test_rt_caps(const GUID *device_guid) hr = IDirectDraw2_GetCaps(ddraw, &hal_caps, NULL); ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr);
+ fourcc_code_count = ARRAY_SIZE(fourcc_codes); + hr = IDirectDraw4_GetFourCCCodes(ddraw, &fourcc_code_count, fourcc_codes); + ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr); + for (i = 0; i < ARRAY_SIZE(test_data); ++i) { IDirectDrawSurface *surface, *rt, *expected_rt, *tmp; @@ -5246,6 +5264,21 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.ddsCaps.dwCaps = caps_in; if (test_data[i].pf) { + if (test_data[i].pf->dwFlags & DDPF_FOURCC) + { + unsigned int j; + + for (j = 0; j < fourcc_code_count; ++j) + { + if (test_data[i].pf->dwFourCC == fourcc_codes[j]) + break; + } + if (j == fourcc_code_count) + { + skip("Fourcc format %#lx is not supported, skipping test.\n", test_data[i].pf->dwFourCC); + continue; + } + } surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } @@ -5254,6 +5287,11 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.dwFlags |= DDSD_ZBUFFERBITDEPTH; surface_desc.dwZBufferBitDepth = z_depth; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; if ((caps_in & DDSCAPS_VIDEOMEMORY) && !(hal_caps.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)) @@ -5276,6 +5314,9 @@ static void test_rt_caps(const GUID *device_guid) else expected_caps = caps_in | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;
+ if (caps_in & DDSCAPS_FLIP) + expected_caps |= DDSCAPS_FRONTBUFFER; + ok(surface_desc.ddsCaps.dwCaps == expected_caps || (test_data[i].pf == &p8_fmt && surface_desc.ddsCaps.dwCaps == (caps_in | DDSCAPS_SYSTEMMEMORY)) || (software_device && caps_in & DDSCAPS_ZBUFFER @@ -5343,6 +5384,11 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.dwFlags |= DDSD_ZBUFFERBITDEPTH; surface_desc.dwZBufferBitDepth = z_depth; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw2_CreateSurface(ddraw, &surface_desc, &rt, NULL); diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index 4811053a231..6db90a9c08c 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -6615,6 +6615,7 @@ static void test_unsupported_formats(void)
static void test_rt_caps(const GUID *device_guid) { + DWORD fourcc_codes[64], fourcc_code_count; PALETTEENTRY palette_entries[256]; IDirectDrawPalette *palette; BOOL software_device; @@ -6632,6 +6633,12 @@ static void test_rt_caps(const GUID *device_guid) sizeof(DDPIXELFORMAT), DDPF_PALETTEINDEXED8 | DDPF_RGB, 0, {8}, {0x00000000}, {0x00000000}, {0x00000000}, {0x00000000}, }; + static const DDPIXELFORMAT fourcc_fmt = + { + .dwSize = sizeof(DDPIXELFORMAT), + .dwFlags = DDPF_FOURCC, + .dwFourCC = MAKEFOURCC('Y','U','Y','2'), + };
const struct { @@ -6819,6 +6826,14 @@ static void test_rt_caps(const GUID *device_guid) DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, }, + { + &fourcc_fmt, + DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_OFFSCREENPLAIN, + 0, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + }, };
software_device = is_software_device_type(device_guid); @@ -6853,6 +6868,10 @@ static void test_rt_caps(const GUID *device_guid) hr = IDirectDraw4_GetCaps(ddraw, &hal_caps, NULL); ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr);
+ fourcc_code_count = ARRAY_SIZE(fourcc_codes); + hr = IDirectDraw4_GetFourCCCodes(ddraw, &fourcc_code_count, fourcc_codes); + ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr); + for (i = 0; i < ARRAY_SIZE(test_data); ++i) { IDirectDrawSurface4 *surface, *rt, *expected_rt, *tmp; @@ -6870,9 +6889,29 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in; if (test_data[i].pf) { + if (test_data[i].pf->dwFlags & DDPF_FOURCC) + { + unsigned int j; + + for (j = 0; j < fourcc_code_count; ++j) + { + if (test_data[i].pf->dwFourCC == fourcc_codes[j]) + break; + } + if (j == fourcc_code_count) + { + skip("Fourcc format %#lx is not supported, skipping test.\n", test_data[i].pf->dwFourCC); + continue; + } + } surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; if ((caps_in & DDSCAPS_VIDEOMEMORY) && !(hal_caps.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)) @@ -6898,6 +6937,9 @@ static void test_rt_caps(const GUID *device_guid) else expected_caps = caps_in | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;
+ if (caps_in & DDSCAPS_FLIP) + expected_caps |= DDSCAPS_FRONTBUFFER; + ok(surface_desc.ddsCaps.dwCaps == expected_caps || (test_data[i].pf == &p8_fmt && surface_desc.ddsCaps.dwCaps == (caps_in | DDSCAPS_SYSTEMMEMORY)) || (software_device && test_data[i].pf == &z_fmt @@ -6962,6 +7004,11 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &rt, NULL); diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 2771a4ed368..508b2a5e225 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -6468,6 +6468,7 @@ static void test_unsupported_formats(void)
static void test_rt_caps(const GUID *device_guid) { + DWORD fourcc_codes[64], fourcc_code_count; PALETTEENTRY palette_entries[256]; IDirectDrawPalette *palette; BOOL software_device; @@ -6485,6 +6486,12 @@ static void test_rt_caps(const GUID *device_guid) sizeof(DDPIXELFORMAT), DDPF_PALETTEINDEXED8 | DDPF_RGB, 0, {8}, {0x00000000}, {0x00000000}, {0x00000000}, {0x00000000}, }; + static const DDPIXELFORMAT fourcc_fmt = + { + .dwSize = sizeof(DDPIXELFORMAT), + .dwFlags = DDPF_FOURCC, + .dwFourCC = MAKEFOURCC('Y','U','Y','2'), + };
const struct { @@ -6672,6 +6679,14 @@ static void test_rt_caps(const GUID *device_guid) DDERR_INVALIDCAPS, DDERR_INVALIDCAPS, }, + { + &fourcc_fmt, + DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_OFFSCREENPLAIN, + 0, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + DDERR_INVALIDCAPS, + }, };
software_device = is_software_device_type(device_guid); @@ -6706,6 +6721,10 @@ static void test_rt_caps(const GUID *device_guid) hr = IDirectDraw7_GetCaps(ddraw, &hal_caps, NULL); ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr);
+ fourcc_code_count = ARRAY_SIZE(fourcc_codes); + hr = IDirectDraw4_GetFourCCCodes(ddraw, &fourcc_code_count, fourcc_codes); + ok(hr == DD_OK, "Got unexpected hr %#lx.\n", hr); + for (i = 0; i < ARRAY_SIZE(test_data); ++i) { IDirectDrawSurface7 *surface, *rt, *expected_rt, *tmp; @@ -6723,9 +6742,29 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.ddsCaps.dwCaps2 = test_data[i].caps2_in; if (test_data[i].pf) { + if (test_data[i].pf->dwFlags & DDPF_FOURCC) + { + unsigned int j; + + for (j = 0; j < fourcc_code_count; ++j) + { + if (test_data[i].pf->dwFourCC == fourcc_codes[j]) + break; + } + if (j == fourcc_code_count) + { + skip("Fourcc format %#lx is not supported, skipping test.\n", test_data[i].pf->dwFourCC); + continue; + } + } surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; if ((caps_in & DDSCAPS_VIDEOMEMORY) && !(hal_caps.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)) @@ -6751,6 +6790,9 @@ static void test_rt_caps(const GUID *device_guid) else expected_caps = caps_in | DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;
+ if (caps_in & DDSCAPS_FLIP) + expected_caps |= DDSCAPS_FRONTBUFFER; + ok(surface_desc.ddsCaps.dwCaps == expected_caps || (test_data[i].pf == &p8_fmt && surface_desc.ddsCaps.dwCaps == (caps_in | DDSCAPS_SYSTEMMEMORY)) || (software_device && test_data[i].pf == &z_fmt @@ -6810,6 +6852,11 @@ static void test_rt_caps(const GUID *device_guid) surface_desc.dwFlags |= DDSD_PIXELFORMAT; surface_desc.ddpfPixelFormat = *test_data[i].pf; } + if (caps_in & DDSCAPS_FLIP) + { + surface_desc.dwFlags |= DDSD_BACKBUFFERCOUNT; + surface_desc.dwBackBufferCount = 1; + } surface_desc.dwWidth = 640; surface_desc.dwHeight = 480; hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &rt, NULL); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 37834517425..028f14838c3 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -3745,12 +3745,14 @@ static void test_default_presenter_allocate(void) ok(hr == S_OK, "Got hr %#lx.\n", hr); todo_wine ok(desc.dwFlags == (DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT), "Got flags %#lx.\n", desc.dwFlags); - todo_wine ok(desc.ddsCaps.dwCaps == (DDSCAPS_LOCALVIDMEM | DDSCAPS_VIDEOMEMORY | DDSCAPS_OFFSCREENPLAIN + todo_wine_if(desc.ddsCaps.dwCaps == (DDSCAPS_LOCALVIDMEM | DDSCAPS_VIDEOMEMORY | DDSCAPS_OFFSCREENPLAIN + | DDSCAPS_FLIP | DDSCAPS_COMPLEX)) + ok(desc.ddsCaps.dwCaps == (DDSCAPS_LOCALVIDMEM | DDSCAPS_VIDEOMEMORY | DDSCAPS_OFFSCREENPLAIN | DDSCAPS_FLIP), "Got caps %#lx.\n", desc.ddsCaps.dwCaps);
desc.ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY; hr = IDirectDrawSurface7_GetAttachedSurface(backbuffer2, &desc.ddsCaps, &backbuffer3); - todo_wine_if (tests[i].compression) ok(hr == S_OK, "Got hr %#lx.\n", hr); + ok(hr == S_OK, "Got hr %#lx.\n", hr); if (hr == S_OK) { ok(backbuffer3 == frontbuffer, "Expected only 2 backbuffers.\n");
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=144328
Your paranoid android.
=== w8adm (32 bit report) ===
ddraw: 0b6c:ddraw1: unhandled exception c0000005 at 003576F1
=== w11pro64_amd (64 bit report) ===
ddraw: ddraw2.c:3263: Test failed: Got unexpected screen size 800x600. ddraw2.c:3352: Test failed: Expected surface width 1024, got 640. ddraw2.c:3354: Test failed: Expected surface height 768, got 480. ddraw2.c:3372: Test failed: Expected surface width 1024, got 640. ddraw2.c:3374: Test failed: Expected surface height 768, got 480. ddraw2.c:3387: Test failed: Expected surface width 1024, got 640. ddraw2.c:3389: Test failed: Expected surface height 768, got 480. ddraw2.c:3453: Test failed: Expected surface width 1024, got 640. ddraw2.c:3455: Test failed: Expected surface height 768, got 480. ddraw2.c:3509: Test failed: Expected resolution 1024x768, got 640x480. ddraw2.c:3526: Test failed: Expected surface width 1024, got 640. ddraw2.c:3528: Test failed: Expected surface height 768, got 480. ddraw2.c:3549: Test failed: Expected surface width 1024, got 640. ddraw2.c:3551: Test failed: Expected surface height 768, got 480. ddraw2.c:3564: Test failed: Expected surface width 1024, got 640. ddraw2.c:3566: Test failed: Expected surface height 768, got 480. ddraw2.c:3623: Test failed: Expected surface width 1024, got 640. ddraw2.c:3625: Test failed: Expected surface height 768, got 480. ddraw2.c:3679: Test failed: Expected resolution 1024x768, got 640x480. ddraw2.c:3696: Test failed: Expected surface width 1024, got 640. ddraw2.c:3698: Test failed: Expected surface height 768, got 480. ddraw2.c:3723: Test failed: Expected screen size 1024x768, got 0x0. ddraw2.c:3730: Test failed: Expected (0,0)-(1024,768), got (0,0)-(640,480). ddraw2.c:3742: Test failed: Expected surface width 1024, got 640. ddraw2.c:3744: Test failed: Expected surface height 768, got 480. ddraw2.c:3795: Test failed: Expected screen size 2 1024x768, got 0x0. ddraw2.c:3803: Test failed: Expected (0,0)-(1024,768), got (0,0)-(136,100). ddraw2.c:3815: Test failed: Expected surface width 1024, got 640. ddraw2.c:3817: Test failed: Expected surface height 768, got 480. ddraw2.c:3974: Test failed: Got unexpected screen width 800. ddraw2.c:3976: Test failed: Got unexpected screen height 600. ddraw2.c:4119: Test failed: Got unexpected screen width 800. ddraw2.c:4121: Test failed: Got unexpected screen height 600. ddraw2.c:4126: Test failed: Got unexpected screen width 800. ddraw2.c:4128: Test failed: Got unexpected screen height 600.
=== w11pro64_amd (64 bit report) ===
ddraw: ddraw4.c:3593: Test failed: Expected surface width 1024, got 640. ddraw4.c:3595: Test failed: Expected surface height 768, got 480. ddraw4.c:3613: Test failed: Expected surface width 1024, got 640. ddraw4.c:3615: Test failed: Expected surface height 768, got 480. ddraw4.c:3628: Test failed: Expected surface width 1024, got 640. ddraw4.c:3630: Test failed: Expected surface height 768, got 480. ddraw4.c:3687: Test failed: Expected surface width 1024, got 640. ddraw4.c:3689: Test failed: Expected surface height 768, got 480. ddraw4.c:3743: Test failed: Expected resolution 1024x768, got 640x480. ddraw4.c:3760: Test failed: Expected surface width 1024, got 640. ddraw4.c:3762: Test failed: Expected surface height 768, got 480. ddraw4.c:3783: Test failed: Expected surface width 1024, got 640. ddraw4.c:3785: Test failed: Expected surface height 768, got 480. ddraw4.c:3798: Test failed: Expected surface width 1024, got 640. ddraw4.c:3800: Test failed: Expected surface height 768, got 480. ddraw4.c:3857: Test failed: Expected surface width 1024, got 640. ddraw4.c:3859: Test failed: Expected surface height 768, got 480. ddraw4.c:3913: Test failed: Expected resolution 1024x768, got 640x480. ddraw4.c:3930: Test failed: Expected surface width 1024, got 640. ddraw4.c:3932: Test failed: Expected surface height 768, got 480. ddraw4.c:3957: Test failed: Expected screen size 1024x768, got 0x0. ddraw4.c:3964: Test failed: Expected (0,0)-(1024,768), got (0,0)-(640,480). ddraw4.c:3976: Test failed: Expected surface width 1024, got 640. ddraw4.c:3978: Test failed: Expected surface height 768, got 480. ddraw4.c:4029: Test failed: Expected screen size 2 1024x768, got 0x0. ddraw4.c:4037: Test failed: Expected (0,0)-(1024,768), got (0,0)-(136,100). ddraw4.c:4049: Test failed: Expected surface width 1024, got 640. ddraw4.c:4051: Test failed: Expected surface height 768, got 480. ddraw4.c:4225: Test failed: Got unexpected screen width 640. ddraw4.c:4227: Test failed: Got unexpected screen height 480. ddraw4.c:4232: Test failed: Got unexpected screen width 640. ddraw4.c:4234: Test failed: Got unexpected screen height 480. ddraw4.c:4256: Test failed: Got unexpected screen width 640. ddraw4.c:4258: Test failed: Got unexpected screen height 480. ddraw4.c:4263: Test failed: Got unexpected screen width 640. ddraw4.c:4265: Test failed: Got unexpected screen height 480. ddraw4.c:4287: Test failed: Got unexpected screen width 640. ddraw4.c:4289: Test failed: Got unexpected screen height 480. ddraw4.c:4322: Test failed: Got unexpected screen width 640. ddraw4.c:4324: Test failed: Got unexpected screen height 480. ddraw4.c:8591: Test failed: Failed to create surface, hr 0x80070057. ddraw4.c:8600: Test failed: Failed to create surface, hr 0x80070057. ddraw4.c:8613: Test failed: Failed to attach surface, hr 0x80070057.
v2:
- removed todo from now succeeding tests in quartz/tests/vmr7 (also made todo caps test a bit more explicit WRT why is it todo); - added regression test to ddraw/tests. Reproducing what the game does is a bit not straightforward. For one, _SetDisplayMode for 8 bit it does fails on modern Windows (probably without a compatibility shim workaround). But tests with fourcc formats tests the same issue the patch here concerns.
This merge request was approved by Elizabeth Figura.
This merge request was approved by Jan Sikorski.