mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
tests: Fix unsupported formats tests on WARP.
A recent version of WARP supports B8G8R8A8 UAVs even on D3D_FEATURE_LEVEL_11_0. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4595f71afd
commit
8995c681d5
@ -90,6 +90,12 @@ vkd3d_test_platform_is_windows(void)
|
||||
return !strcmp(vkd3d_test_platform, "windows");
|
||||
}
|
||||
|
||||
static inline bool
|
||||
broken(bool condition)
|
||||
{
|
||||
return condition && vkd3d_test_platform_is_windows();
|
||||
}
|
||||
|
||||
static void
|
||||
vkd3d_test_check_ok(unsigned int line, bool result, const char *fmt, va_list args)
|
||||
{
|
||||
|
@ -869,6 +869,11 @@ static ID3D12Device *create_device(void)
|
||||
return device;
|
||||
}
|
||||
|
||||
static bool broken_on_warp(bool condition)
|
||||
{
|
||||
return broken(use_warp_device && condition);
|
||||
}
|
||||
|
||||
static bool is_min_max_filtering_supported(ID3D12Device *device)
|
||||
{
|
||||
D3D12_FEATURE_DATA_D3D12_OPTIONS options;
|
||||
@ -1307,12 +1312,18 @@ static void test_format_support(void)
|
||||
unsigned int i;
|
||||
HRESULT hr;
|
||||
|
||||
static const D3D12_FEATURE_DATA_FORMAT_SUPPORT unsupported_format_features[] =
|
||||
static const struct
|
||||
{
|
||||
{DXGI_FORMAT_B8G8R8A8_TYPELESS, D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW,
|
||||
D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE},
|
||||
{DXGI_FORMAT_B8G8R8A8_UNORM, D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW,
|
||||
D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE},
|
||||
D3D12_FEATURE_DATA_FORMAT_SUPPORT f;
|
||||
bool broken;
|
||||
}
|
||||
unsupported_format_features[] =
|
||||
{
|
||||
/* A recent version of WARP suppots B8G8R8A8 UAVs even on D3D_FEATURE_LEVEL_11_0. */
|
||||
{{DXGI_FORMAT_B8G8R8A8_TYPELESS, D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW,
|
||||
D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE}, true},
|
||||
{{DXGI_FORMAT_B8G8R8A8_UNORM, D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW,
|
||||
D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE}, true},
|
||||
};
|
||||
|
||||
if (!(device = create_device()))
|
||||
@ -1333,16 +1344,18 @@ static void test_format_support(void)
|
||||
for (i = 0; i < ARRAY_SIZE(unsupported_format_features); ++i)
|
||||
{
|
||||
memset(&format_support, 0, sizeof(format_support));
|
||||
format_support.Format = unsupported_format_features[i].Format;
|
||||
format_support.Format = unsupported_format_features[i].f.Format;
|
||||
hr = ID3D12Device_CheckFeatureSupport(device, D3D12_FEATURE_FORMAT_SUPPORT,
|
||||
&format_support, sizeof(format_support));
|
||||
ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
|
||||
ok(!(format_support.Support1 & unsupported_format_features[i].Support1),
|
||||
"Format %#x supports %#x.\n", unsupported_format_features[i].Format,
|
||||
format_support.Support1 & unsupported_format_features[i].Support1);
|
||||
ok(!(format_support.Support2 & unsupported_format_features[i].Support2),
|
||||
"Format %#x supports %#x.\n", unsupported_format_features[i].Format,
|
||||
format_support.Support2 & unsupported_format_features[i].Support2);
|
||||
ok(!(format_support.Support1 & unsupported_format_features[i].f.Support1)
|
||||
|| broken_on_warp(unsupported_format_features[i].broken),
|
||||
"Format %#x supports %#x.\n", unsupported_format_features[i].f.Format,
|
||||
format_support.Support1 & unsupported_format_features[i].f.Support1);
|
||||
ok(!(format_support.Support2 & unsupported_format_features[i].f.Support2)
|
||||
|| broken_on_warp(unsupported_format_features[i].broken),
|
||||
"Format %#x supports %#x.\n", unsupported_format_features[i].f.Format,
|
||||
format_support.Support2 & unsupported_format_features[i].f.Support2);
|
||||
}
|
||||
|
||||
refcount = ID3D12Device_Release(device);
|
||||
@ -1709,7 +1722,7 @@ static void test_create_committed_resource(void)
|
||||
hr = ID3D12Device_CreateCommittedResource(device, &heap_properties, D3D12_HEAP_FLAG_NONE,
|
||||
&resource_desc, D3D12_RESOURCE_STATE_RENDER_TARGET, NULL,
|
||||
&IID_ID3D12Resource, (void **)&resource);
|
||||
todo(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
|
||||
todo(hr == E_INVALIDARG || broken_on_warp(true), "Got unexpected hr %#x.\n", hr);
|
||||
if (SUCCEEDED(hr))
|
||||
ID3D12Resource_Release(resource);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user