[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