[PATCH vkd3d 2/7] tests: Fix test failures in conditional rendering tests.
From: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Józef Kucia <jkucia(a)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
participants (2)
-
Henri Verbeet -
Józef Kucia