=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: tests: Skip "ps_movc" on Windows AMD drivers.

Alexandre Julliard julliard at winehq.org
Wed Dec 12 13:44:45 CST 2018


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Tue Dec 11 15:48:01 2018 +0100

tests: Skip "ps_movc" on Windows AMD drivers.

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>

---

 tests/d3d12.c           |  6 ++++++
 tests/d3d12_crosstest.h | 31 +++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/tests/d3d12.c b/tests/d3d12.c
index c127f6b..463e304 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -7986,6 +7986,12 @@ static void test_shader_instructions(void)
             continue;
         }
 
+        if (uint_tests[i].ps == &ps_movc && is_amd_device(context.device))
+        {
+            skip("ps_movc crashes on Windows with AMD GPUs.\n");
+            continue;
+        }
+
         if (current_ps != uint_tests[i].ps)
         {
             if (context.pipeline_state)
diff --git a/tests/d3d12_crosstest.h b/tests/d3d12_crosstest.h
index 00db064..ee12c89 100644
--- a/tests/d3d12_crosstest.h
+++ b/tests/d3d12_crosstest.h
@@ -294,6 +294,32 @@ static void init_adapter_info(void)
 
     IDXGIAdapter_Release(dxgi_adapter);
 }
+
+static inline bool is_amd_device(ID3D12Device *device)
+{
+    DXGI_ADAPTER_DESC desc = {0};
+    IDXGIFactory4 *factory;
+    IDXGIAdapter *adapter;
+    HRESULT hr;
+    LUID luid;
+
+    luid = ID3D12Device_GetAdapterLuid(device);
+
+    hr = CreateDXGIFactory1(&IID_IDXGIFactory4, (void **)&factory);
+    ok(hr == S_OK, "Failed to create IDXGIFactory4, hr %#x.\n", hr);
+
+    hr = IDXGIFactory4_EnumAdapterByLuid(factory, luid, &IID_IDXGIAdapter, (void **)&adapter);
+    if (SUCCEEDED(hr))
+    {
+        hr = IDXGIAdapter_GetDesc(adapter, &desc);
+        ok(hr == S_OK, "Failed to get adapter desc, hr %#x.\n", hr);
+        IDXGIAdapter_Release(adapter);
+    }
+
+    IDXGIFactory4_Release(factory);
+
+    return desc.VendorId == 0x1002;
+}
 #else
 static IUnknown *create_adapter(void)
 {
@@ -301,6 +327,11 @@ static IUnknown *create_adapter(void)
 }
 
 static void init_adapter_info(void) {}
+
+static inline bool is_amd_device(ID3D12Device *device)
+{
+    return false;
+}
 #endif
 
 static ID3D12Device *create_device(void)




More information about the wine-cvs mailing list