wined3d: Report WINEDDSCAPS_BACKBUFFER and WINEDDSCAPS_FRONTBUFFER only on 3D devices.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2019-08-11 14:05:16 +04:30 committed by Alexandre Julliard
parent 5eca371a6c
commit 4773e0add0
7 changed files with 31 additions and 13 deletions

View File

@ -12894,6 +12894,7 @@ static void test_caps(void)
DDCAPS hal_caps, hel_caps;
IDirectDraw *ddraw;
HRESULT hr;
BOOL no3d;
caps_never = DDSCAPS_RESERVED1
| DDSCAPS_ALPHA
@ -12944,6 +12945,7 @@ static void test_caps(void)
"Got unexpected caps %#x, expected %#x.\n",
hel_caps.ddsOldCaps.dwCaps, hel_caps.ddsCaps.dwCaps);
no3d = !(hal_caps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE);
if (hal_caps.ddsCaps.dwCaps)
{
ok(!(hal_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
@ -12952,7 +12954,8 @@ static void test_caps(void)
}
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw_Release(ddraw);
@ -13001,7 +13004,8 @@ static void test_caps(void)
todo_wine ok(!hal_caps.ddsCaps.dwCaps, "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw_Release(ddraw);
}

View File

@ -13771,6 +13771,7 @@ static void test_caps(void)
IDirectDraw2 *ddraw;
IDirectDraw *ddraw1;
HRESULT hr;
BOOL no3d;
caps_never = DDSCAPS_RESERVED1
| DDSCAPS_ALPHA
@ -13821,6 +13822,7 @@ static void test_caps(void)
"Got unexpected caps %#x, expected %#x.\n",
hel_caps.ddsOldCaps.dwCaps, hel_caps.ddsCaps.dwCaps);
no3d = !(hal_caps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE);
if (hal_caps.ddsCaps.dwCaps)
{
ok(!(hal_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
@ -13829,7 +13831,8 @@ static void test_caps(void)
}
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw2_Release(ddraw);
@ -13884,7 +13887,8 @@ static void test_caps(void)
todo_wine ok(!hal_caps.ddsCaps.dwCaps, "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw2_Release(ddraw);
}

View File

@ -16332,6 +16332,7 @@ static void test_caps(void)
IDirectDraw4 *ddraw;
IDirectDraw *ddraw1;
HRESULT hr;
BOOL no3d;
caps_never = DDSCAPS_RESERVED1
| DDSCAPS_ALPHA
@ -16382,6 +16383,7 @@ static void test_caps(void)
"Got unexpected caps %#x, expected %#x.\n",
hel_caps.ddsOldCaps.dwCaps, hel_caps.ddsCaps.dwCaps);
no3d = !(hal_caps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE);
if (hal_caps.ddsCaps.dwCaps)
{
ok(!(hal_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
@ -16390,7 +16392,8 @@ static void test_caps(void)
}
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw4_Release(ddraw);
@ -16445,7 +16448,8 @@ static void test_caps(void)
todo_wine ok(!hal_caps.ddsCaps.dwCaps, "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw4_Release(ddraw);
}

View File

@ -16304,6 +16304,7 @@ static void test_caps(void)
DDCAPS hal_caps, hel_caps;
IDirectDraw7 *ddraw;
HRESULT hr;
BOOL no3d;
caps_never = DDSCAPS_RESERVED1
| DDSCAPS_ALPHA
@ -16354,6 +16355,7 @@ static void test_caps(void)
"Got unexpected caps %#x, expected %#x.\n",
hel_caps.ddsOldCaps.dwCaps, hel_caps.ddsCaps.dwCaps);
no3d = !(hal_caps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE);
if (hal_caps.ddsCaps.dwCaps)
{
ok(!(hal_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
@ -16362,7 +16364,8 @@ static void test_caps(void)
}
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw7_Release(ddraw);
@ -16411,7 +16414,8 @@ static void test_caps(void)
todo_wine ok(!hal_caps.ddsCaps.dwCaps, "Got unexpected caps %#x.\n", hal_caps.ddsCaps.dwCaps);
ok(!(hel_caps.ddsCaps.dwCaps & caps_never), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
ok(!(~hel_caps.ddsCaps.dwCaps & caps_always), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine ok(!(hel_caps.ddsCaps.dwCaps & caps_hal), "Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
todo_wine_if(!no3d) ok(!(hel_caps.ddsCaps.dwCaps & caps_hal),
"Got unexpected caps %#x.\n", hel_caps.ddsCaps.dwCaps);
IDirectDraw7_Release(ddraw);
}

View File

@ -4371,7 +4371,9 @@ static void adapter_gl_get_wined3d_caps(const struct wined3d_adapter *adapter, s
const struct wined3d_d3d_info *d3d_info = &adapter->d3d_info;
const struct wined3d_gl_info *gl_info = &adapter->gl_info;
caps->ddraw_caps.dds_caps |= WINEDDSCAPS_3DDEVICE
caps->ddraw_caps.dds_caps |= WINEDDSCAPS_BACKBUFFER
| WINEDDSCAPS_FRONTBUFFER
| WINEDDSCAPS_3DDEVICE
| WINEDDSCAPS_VIDEOMEMORY;
caps->ddraw_caps.caps |= WINEDDCAPS_3D;

View File

@ -297,7 +297,9 @@ static void adapter_vk_get_wined3d_caps(const struct wined3d_adapter *adapter, s
const VkPhysicalDeviceLimits *limits = &adapter_vk->device_limits;
BOOL sampler_anisotropy = limits->maxSamplerAnisotropy > 1.0f;
caps->ddraw_caps.dds_caps |= WINEDDSCAPS_3DDEVICE
caps->ddraw_caps.dds_caps |= WINEDDSCAPS_BACKBUFFER
| WINEDDSCAPS_FRONTBUFFER
| WINEDDSCAPS_3DDEVICE
| WINEDDSCAPS_VIDEOMEMORY;
caps->ddraw_caps.caps |= WINEDDCAPS_3D;

View File

@ -2192,9 +2192,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, unsigned in
caps->ddraw_caps.ssb_color_key_caps = ckey_caps;
caps->ddraw_caps.ssb_fx_caps = fx_caps;
caps->ddraw_caps.dds_caps = WINEDDSCAPS_BACKBUFFER
| WINEDDSCAPS_FLIP
| WINEDDSCAPS_FRONTBUFFER
caps->ddraw_caps.dds_caps = WINEDDSCAPS_FLIP
| WINEDDSCAPS_OFFSCREENPLAIN
| WINEDDSCAPS_PALETTE
| WINEDDSCAPS_PRIMARYSURFACE