=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: tests: Print adapter info on Windows.

Alexandre Julliard julliard at winehq.org
Mon Dec 3 15:23:59 CST 2018


Module: vkd3d
Branch: master
Commit: b4d2306b9ba726a678b2d08c3585f56da3cdb0b3
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=b4d2306b9ba726a678b2d08c3585f56da3cdb0b3

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Mon Dec  3 11:31:26 2018 +0100

tests: Print adapter info on Windows.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 5b80e1f..7e07a78 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,
@@ -80,6 +92,18 @@ interface IDXGIDeviceSubObject : IDXGIObject
 }
 
 [
+    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,
     uuid(310d36a0-d2e7-4c0a-aa04-6a9d23b8886a),
diff --git a/tests/d3d12.c b/tests/d3d12.c
index e5a6249..3956fba 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);




More information about the wine-cvs mailing list