Module: wine Branch: master Commit: 4f00a1f9e2f5bc60edfe9c15f3720785cd68a978 URL: https://gitlab.winehq.org/wine/wine/-/commit/4f00a1f9e2f5bc60edfe9c15f372078...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Fri Aug 19 17:19:28 2022 +0800
ddraw: Don't report unsupported device capabilities in d3d3_EnumDevices().
---
dlls/ddraw/ddraw.c | 5 +++++ dlls/ddraw/tests/ddraw1.c | 6 ------ dlls/ddraw/tests/ddraw2.c | 6 ------ dlls/ddraw/tests/ddraw4.c | 6 ------ 4 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index 64eb7235ebf..fd4c5bd4862 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -3882,6 +3882,9 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA hal_desc.dcmColorModel = 0; /* RGB, RAMP and MMX devices cannot report HAL hardware flags */ hal_desc.dwFlags = 0; + /* RGB, REF, RAMP and MMX devices don't report hardware transform and lighting capability */ + hal_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX); + hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX);
hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description, device_name, &hal_desc, &hel_desc, context); @@ -3906,6 +3909,8 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA | D3DPTEXTURECAPS_NONPOW2CONDITIONAL | D3DPTEXTURECAPS_PERSPECTIVE); /* HAL devices have a HEL dcmColorModel of 0 */ hel_desc.dcmColorModel = 0; + /* HAL devices report hardware transform and lighting capability, but not in hel */ + hel_desc.dwDevCaps &= ~(D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_DRAWPRIMITIVES2EX);
hr = callback((GUID *)&IID_IDirect3DHALDevice, wined3d_description, device_name, &hal_desc, &hel_desc, context); diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index c9702bbfaf8..94d41dbc34d 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -15174,16 +15174,12 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d ok(hal->dwFlags == 0, "RGB Device hal caps has hardware flags %#lx\n", hal->dwFlags); ok(hel->dwFlags != 0, "RGB Device hel caps has hardware flags %#lx\n", hel->dwFlags);
- todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hal device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hal device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); } @@ -15197,12 +15193,10 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d
ok(hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT, "HAL Device hal device caps does not have D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); ok(hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX, "HAL Device hal device caps does not have D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); } diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index eae41eb77ae..d5b72793526 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -16120,16 +16120,12 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d ok(hal->dwFlags == 0, "RGB Device hal caps has hardware flags %#lx\n", hal->dwFlags); ok(hel->dwFlags != 0, "RGB Device hel caps has hardware flags %#lx\n", hel->dwFlags);
- todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hal device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hal device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); } @@ -16143,12 +16139,10 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d
ok(hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT, "HAL Device hal device caps does not have D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); ok(hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX, "HAL Device hal device caps does not have D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); } diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index eb1852e0832..471f6fc3f09 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -19189,16 +19189,12 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d ok(hal->dwFlags == 0, "RGB Device hal caps has hardware flags %#lx\n", hal->dwFlags); ok(hel->dwFlags != 0, "RGB Device hel caps has hardware flags %#lx\n", hel->dwFlags);
- todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hal device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hal device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); } @@ -19212,12 +19208,10 @@ static HRESULT WINAPI test_enum_devices_caps_callback(GUID *guid, char *device_d
ok(hal->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT, "HAL Device hal device caps does not have D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == 0, "RGB Device hel device caps has D3DDEVCAPS_HWTRANSFORMANDLIGHT set\n"); ok(hal->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX, "HAL Device hal device caps does not have D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); - todo_wine ok((hel->dwDevCaps & D3DDEVCAPS_DRAWPRIMITIVES2EX) == 0, "RGB Device hel device caps has D3DDEVCAPS_DRAWPRIMITIVES2EX set\n"); }