[PATCH vkd3d 2/7] tests: Fix test failures in conditional rendering tests.

Józef Kucia joseph.kucia at gmail.com
Tue Jun 18 03:07:48 CDT 2019


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 tests/d3d12.c           |  9 ++++++++-
 tests/d3d12_crosstest.h | 27 +++++++++++++++++++++++----
 2 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/tests/d3d12.c b/tests/d3d12.c
index 79c30ec2465f..b75cd996a2ff 100644
--- a/tests/d3d12.c
+++ b/tests/d3d12.c
@@ -30553,6 +30553,13 @@ static void test_conditional_rendering(void)
     command_list = context.list;
     queue = context.queue;
 
+    if (is_intel_windows_device(context.device))
+    {
+        skip("Predicated rendering is broken on Intel.\n");
+        destroy_test_context(&context);
+        return;
+    }
+
     conditions = create_default_buffer(context.device, sizeof(predicate_args),
             D3D12_RESOURCE_FLAG_NONE, D3D12_RESOURCE_STATE_COPY_DEST);
     upload_buffer_data(conditions, 0, sizeof(predicate_args), &predicate_args, queue, command_list);
@@ -30587,7 +30594,7 @@ static void test_conditional_rendering(void)
     transition_resource_state(command_list, context.render_target,
             D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE);
 
-    check_sub_resource_uint(context.render_target, 0, queue, command_list, 0xffffffff, 0);
+    todo check_sub_resource_uint(context.render_target, 0, queue, command_list, 0x00000000, 0);
 
     reset_command_list(command_list, context.allocator);
     transition_resource_state(command_list, context.render_target,
diff --git a/tests/d3d12_crosstest.h b/tests/d3d12_crosstest.h
index 4a490628e483..22844ab398e7 100644
--- a/tests/d3d12_crosstest.h
+++ b/tests/d3d12_crosstest.h
@@ -323,14 +323,15 @@ static void init_adapter_info(void)
     IDXGIAdapter_Release(dxgi_adapter);
 }
 
-static inline bool is_amd_windows_device(ID3D12Device *device)
+static inline bool get_adapter_desc(ID3D12Device *device, DXGI_ADAPTER_DESC *desc)
 {
-    DXGI_ADAPTER_DESC desc = {0};
     IDXGIFactory4 *factory;
     IDXGIAdapter *adapter;
     HRESULT hr;
     LUID luid;
 
+    memset(desc, 0, sizeof(*desc));
+
     if (!vkd3d_test_platform_is_windows())
         return false;
 
@@ -342,14 +343,27 @@ static inline bool is_amd_windows_device(ID3D12Device *device)
     hr = IDXGIFactory4_EnumAdapterByLuid(factory, luid, &IID_IDXGIAdapter, (void **)&adapter);
     if (SUCCEEDED(hr))
     {
-        hr = IDXGIAdapter_GetDesc(adapter, &desc);
+        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 SUCCEEDED(hr);
+}
+
+static inline bool is_amd_windows_device(ID3D12Device *device)
+{
+    DXGI_ADAPTER_DESC desc;
+
+    return get_adapter_desc(device, &desc) && desc.VendorId == 0x1002;
+}
+
+static inline bool is_intel_windows_device(ID3D12Device *device)
+{
+    DXGI_ADAPTER_DESC desc;
 
-    return desc.VendorId == 0x1002;
+    return get_adapter_desc(device, &desc) && desc.VendorId == 0x8086;
 }
 
 static inline bool is_mesa_device(ID3D12Device *device)
@@ -566,6 +580,11 @@ static inline bool is_amd_windows_device(ID3D12Device *device)
     return false;
 }
 
+static inline bool is_intel_windows_device(ID3D12Device *device)
+{
+    return false;
+}
+
 static inline bool is_mesa_device(ID3D12Device *device)
 {
     VkPhysicalDeviceDriverPropertiesKHR properties;
-- 
2.21.0




More information about the wine-devel mailing list