Józef Kucia : tests: Skip "ps_movc" on Windows AMD drivers.
Module: vkd3d Branch: master Commit: 56f79913f6f2e7e629865b7628cb7ac183561cab URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=56f79913f6f2e7e629865b76... Author: Józef Kucia <jkucia(a)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(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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)
participants (1)
-
Alexandre Julliard