[PATCH vkd3d v2 1/6] tests: Print adapter info on Windows.
Józef Kucia
joseph.kucia at gmail.com
Mon Dec 3 04:31:26 CST 2018
From: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
Version 2:
* Fix formatting.
* Merge #ifdef blocks.
---
include/vkd3d_dxgi.idl | 26 +++++++++++++++++++++++++-
tests/d3d12.c | 29 +++++++++++++++++++++++++++--
2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/include/vkd3d_dxgi.idl b/include/vkd3d_dxgi.idl
index 5b80e1f6c3f4..7e07a78dd365 100644
--- a/include/vkd3d_dxgi.idl
+++ b/include/vkd3d_dxgi.idl
@@ -38,7 +38,6 @@ typedef enum DXGI_MODE_ROTATION
DXGI_MODE_ROTATION_ROTATE270 = 0x4,
} DXGI_MODE_ROTATION;
-interface IDXGIAdapter;
interface IDXGIAdapter1;
interface IDXGIOutput;
typedef struct DXGI_SWAP_CHAIN_DESC DXGI_SWAP_CHAIN_DESC;
@@ -54,6 +53,19 @@ const DXGI_USAGE DXGI_USAGE_READ_ONLY = 0x00000100ul;
const DXGI_USAGE DXGI_USAGE_DISCARD_ON_PRESENT = 0x00000200ul;
const DXGI_USAGE DXGI_USAGE_UNORDERED_ACCESS = 0x00000400ul;
+typedef struct DXGI_ADAPTER_DESC
+{
+ WCHAR Description[128];
+ UINT VendorId;
+ UINT DeviceId;
+ UINT SubSysId;
+ UINT Revision;
+ SIZE_T DedicatedVideoMemory;
+ SIZE_T DedicatedSystemMemory;
+ SIZE_T SharedSystemMemory;
+ LUID AdapterLuid;
+} DXGI_ADAPTER_DESC;
+
[
local,
object,
@@ -79,6 +91,18 @@ interface IDXGIDeviceSubObject : IDXGIObject
HRESULT GetDevice(REFIID riid, void **device);
}
+[
+ object,
+ local,
+ uuid(2411e7e1-12ac-4ccf-bd14-9798e8534dc0)
+]
+interface IDXGIAdapter : IDXGIObject
+{
+ HRESULT EnumOutputs(UINT output_idx, IDXGIOutput **output);
+ HRESULT GetDesc(DXGI_ADAPTER_DESC *desc);
+ HRESULT CheckInterfaceSupport(REFGUID guid, void *umd_version);
+}
+
[
local,
object,
diff --git a/tests/d3d12.c b/tests/d3d12.c
index e5a6249afff8..3956fbaa3b56 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -890,18 +890,41 @@ static IUnknown *create_adapter(void)
return adapter;
}
- if (use_adapter_idx)
- hr = IDXGIFactory4_EnumAdapters(factory, use_adapter_idx, (IDXGIAdapter **)&adapter);
+ hr = IDXGIFactory4_EnumAdapters(factory, use_adapter_idx, (IDXGIAdapter **)&adapter);
IDXGIFactory4_Release(factory);
if (FAILED(hr))
trace("Failed to get adapter, hr %#x.\n", hr);
return adapter;
}
+
+static void print_adapter_info(void)
+{
+ IDXGIAdapter *dxgi_adapter;
+ DXGI_ADAPTER_DESC desc;
+ IUnknown *adapter;
+ HRESULT hr;
+
+ if (!(adapter = create_adapter()))
+ return;
+
+ hr = IUnknown_QueryInterface(adapter, &IID_IDXGIAdapter, (void **)&dxgi_adapter);
+ ok(hr == S_OK, "Failed to query IDXGIAdapter, hr %#x.\n", hr);
+ IUnknown_Release(adapter);
+
+ hr = IDXGIAdapter_GetDesc(dxgi_adapter, &desc);
+ ok(hr == S_OK, "Failed to get adapter desc, hr %#x.\n", hr);
+
+ trace("Adapter: %04x:%04x.\n", desc.VendorId, desc.DeviceId);
+
+ IDXGIAdapter_Release(dxgi_adapter);
+}
#else
static IUnknown *create_adapter(void)
{
return NULL;
}
+
+static void print_adapter_info(void) {}
#endif
static ID3D12Device *create_device(void)
@@ -21923,6 +21946,8 @@ START_TEST(d3d12)
ID3D12Debug_Release(debug);
}
+ print_adapter_info();
+
run_test(test_create_device);
run_test(test_node_count);
run_test(test_check_feature_support);
--
2.18.1
More information about the wine-devel
mailing list