ddraw/tests: Print driver and device information before running the tests.

Analogous to the d3d8 and d3d9 tests.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2017-12-27 17:30:14 +01:00 committed by Alexandre Julliard
parent 053272d665
commit 7c9671c002
4 changed files with 120 additions and 116 deletions

View File

@ -82,58 +82,45 @@ static BOOL compare_vec4(const struct vec4 *vec, float x, float y, float z, floa
&& compare_float(vec->w, w, ulps);
}
static BOOL ddraw_is_warp(IDirectDraw *ddraw)
static BOOL ddraw_get_identifier(IDirectDraw *ddraw, DDDEVICEIDENTIFIER *identifier)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return !!strstr(identifier.szDriver, "warp");
return SUCCEEDED(hr);
}
static BOOL ddraw_is_warp(IDirectDraw *ddraw)
{
DDDEVICEIDENTIFIER identifier;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& strstr(identifier.szDriver, "warp");
}
static BOOL ddraw_is_nvidia(IDirectDraw *ddraw)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return identifier.dwVendorId == 0x10de;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x10de;
}
static BOOL ddraw_is_intel(IDirectDraw *ddraw)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return identifier.dwVendorId == 0x8086;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x8086;
}
static IDirectDrawSurface *create_overlay(IDirectDraw *ddraw,
@ -10784,8 +10771,9 @@ done:
START_TEST(ddraw1)
{
IDirectDraw *ddraw;
DDDEVICEIDENTIFIER identifier;
DEVMODEW current_mode;
IDirectDraw *ddraw;
HMODULE dwmapi;
if (!(ddraw = create_ddraw()))
@ -10793,6 +10781,15 @@ START_TEST(ddraw1)
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
if (ddraw_get_identifier(ddraw, &identifier))
{
trace("Driver string: \"%s\"\n", identifier.szDriver);
trace("Description string: \"%s\"\n", identifier.szDescription);
trace("Driver version %d.%d.%d.%d\n",
HIWORD(U(identifier.liDriverVersion).HighPart), LOWORD(U(identifier.liDriverVersion).HighPart),
HIWORD(U(identifier.liDriverVersion).LowPart), LOWORD(U(identifier.liDriverVersion).LowPart));
}
IDirectDraw_Release(ddraw);
memset(&current_mode, 0, sizeof(current_mode));

View File

@ -84,58 +84,45 @@ static BOOL compare_vec4(const struct vec4 *vec, float x, float y, float z, floa
&& compare_float(vec->w, w, ulps);
}
static BOOL ddraw_is_warp(IDirectDraw2 *ddraw)
static BOOL ddraw_get_identifier(IDirectDraw2 *ddraw, DDDEVICEIDENTIFIER *identifier)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw2_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return !!strstr(identifier.szDriver, "warp");
return SUCCEEDED(hr);
}
static BOOL ddraw_is_warp(IDirectDraw2 *ddraw)
{
DDDEVICEIDENTIFIER identifier;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& strstr(identifier.szDriver, "warp");
}
static BOOL ddraw_is_nvidia(IDirectDraw2 *ddraw)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw2_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return identifier.dwVendorId == 0x10de;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x10de;
}
static BOOL ddraw_is_intel(IDirectDraw2 *ddraw)
{
IDirectDraw4 *ddraw4;
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw2_QueryInterface(ddraw, &IID_IDirectDraw4, (void **)&ddraw4);
ok(SUCCEEDED(hr), "Failed to get IDirectDraw4 interface, hr %#x.\n", hr);
hr = IDirectDraw4_GetDeviceIdentifier(ddraw4, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
IDirectDraw4_Release(ddraw4);
return identifier.dwVendorId == 0x8086;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x8086;
}
static IDirectDrawSurface *create_overlay(IDirectDraw2 *ddraw,
@ -12160,8 +12147,9 @@ done:
START_TEST(ddraw2)
{
IDirectDraw2 *ddraw;
DDDEVICEIDENTIFIER identifier;
DEVMODEW current_mode;
IDirectDraw2 *ddraw;
HMODULE dwmapi;
if (!(ddraw = create_ddraw()))
@ -12169,6 +12157,15 @@ START_TEST(ddraw2)
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
if (ddraw_get_identifier(ddraw, &identifier))
{
trace("Driver string: \"%s\"\n", identifier.szDriver);
trace("Description string: \"%s\"\n", identifier.szDescription);
trace("Driver version %d.%d.%d.%d\n",
HIWORD(U(identifier.liDriverVersion).HighPart), LOWORD(U(identifier.liDriverVersion).HighPart),
HIWORD(U(identifier.liDriverVersion).LowPart), LOWORD(U(identifier.liDriverVersion).LowPart));
}
IDirectDraw2_Release(ddraw);
memset(&current_mode, 0, sizeof(current_mode));

View File

@ -94,46 +94,41 @@ static BOOL compare_color(D3DCOLOR c1, D3DCOLOR c2, BYTE max_diff)
return TRUE;
}
static BOOL ddraw_get_identifier(IDirectDraw4 *ddraw, DDDEVICEIDENTIFIER *identifier)
{
HRESULT hr;
hr = IDirectDraw4_GetDeviceIdentifier(ddraw, identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return SUCCEEDED(hr);
}
static BOOL ddraw_is_warp(IDirectDraw4 *ddraw)
{
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw4_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return !!strstr(identifier.szDriver, "warp");
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& strstr(identifier.szDriver, "warp");
}
static BOOL ddraw_is_nvidia(IDirectDraw4 *ddraw)
{
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw4_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return identifier.dwVendorId == 0x10de;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x10de;
}
static BOOL ddraw_is_intel(IDirectDraw4 *ddraw)
{
DDDEVICEIDENTIFIER identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw4_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return identifier.dwVendorId == 0x8086;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x8086;
}
static IDirectDrawSurface4 *create_overlay(IDirectDraw4 *ddraw,
@ -14008,8 +14003,9 @@ static void test_compute_sphere_visibility(void)
START_TEST(ddraw4)
{
IDirectDraw4 *ddraw;
DDDEVICEIDENTIFIER identifier;
DEVMODEW current_mode;
IDirectDraw4 *ddraw;
HMODULE dwmapi;
if (!(ddraw = create_ddraw()))
@ -14017,6 +14013,15 @@ START_TEST(ddraw4)
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
if (ddraw_get_identifier(ddraw, &identifier))
{
trace("Driver string: \"%s\"\n", identifier.szDriver);
trace("Description string: \"%s\"\n", identifier.szDescription);
trace("Driver version %d.%d.%d.%d\n",
HIWORD(U(identifier.liDriverVersion).HighPart), LOWORD(U(identifier.liDriverVersion).HighPart),
HIWORD(U(identifier.liDriverVersion).LowPart), LOWORD(U(identifier.liDriverVersion).LowPart));
}
IDirectDraw4_Release(ddraw);
memset(&current_mode, 0, sizeof(current_mode));

View File

@ -108,46 +108,41 @@ static ULONG get_refcount(IUnknown *iface)
return IUnknown_Release(iface);
}
static BOOL ddraw_get_identifier(IDirectDraw7 *ddraw, DDDEVICEIDENTIFIER2 *identifier)
{
HRESULT hr;
hr = IDirectDraw7_GetDeviceIdentifier(ddraw, identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return SUCCEEDED(hr);
}
static BOOL ddraw_is_warp(IDirectDraw7 *ddraw)
{
DDDEVICEIDENTIFIER2 identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw7_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return !!strstr(identifier.szDriver, "warp");
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& strstr(identifier.szDriver, "warp");
}
static BOOL ddraw_is_nvidia(IDirectDraw7 *ddraw)
{
DDDEVICEIDENTIFIER2 identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw7_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return identifier.dwVendorId == 0x10de;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x10de;
}
static BOOL ddraw_is_intel(IDirectDraw7 *ddraw)
{
DDDEVICEIDENTIFIER2 identifier;
HRESULT hr;
if (!strcmp(winetest_platform, "wine"))
return FALSE;
hr = IDirectDraw7_GetDeviceIdentifier(ddraw, &identifier, 0);
ok(SUCCEEDED(hr), "Failed to get device identifier, hr %#x.\n", hr);
return identifier.dwVendorId == 0x8086;
return strcmp(winetest_platform, "wine")
&& ddraw_get_identifier(ddraw, &identifier)
&& identifier.dwVendorId == 0x8086;
}
static IDirectDrawSurface7 *create_overlay(IDirectDraw7 *ddraw,
@ -13384,11 +13379,12 @@ static void test_clip_planes_limits(void)
START_TEST(ddraw7)
{
HMODULE module = GetModuleHandleA("ddraw.dll");
HMODULE dwmapi;
IDirectDraw7 *ddraw;
DDDEVICEIDENTIFIER2 identifier;
HMODULE module, dwmapi;
DEVMODEW current_mode;
IDirectDraw7 *ddraw;
module = GetModuleHandleA("ddraw.dll");
if (!(pDirectDrawCreateEx = (void *)GetProcAddress(module, "DirectDrawCreateEx")))
{
win_skip("DirectDrawCreateEx not available, skipping tests.\n");
@ -13400,6 +13396,15 @@ START_TEST(ddraw7)
skip("Failed to create a ddraw object, skipping tests.\n");
return;
}
if (ddraw_get_identifier(ddraw, &identifier))
{
trace("Driver string: \"%s\"\n", identifier.szDriver);
trace("Description string: \"%s\"\n", identifier.szDescription);
trace("Driver version %d.%d.%d.%d\n",
HIWORD(U(identifier.liDriverVersion).HighPart), LOWORD(U(identifier.liDriverVersion).HighPart),
HIWORD(U(identifier.liDriverVersion).LowPart), LOWORD(U(identifier.liDriverVersion).LowPart));
}
IDirectDraw7_Release(ddraw);
memset(&current_mode, 0, sizeof(current_mode));