diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-09-16 17:19:48 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2022-09-16 17:48:49 +0300 |
commit | e74cc100883ab4f512461ffb21f0c2d7b49e1b2e (patch) | |
tree | 9a2690023323b6f73ba47136382e477e58845792 | |
parent | 6f19e3c40cc52af75cb94fc3f40315a7f206f5ca (diff) |
vkd3d: Actually allow unaligned mip 0 on compressed textures.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
-rw-r--r-- | libs/vkd3d/resource.c | 8 | ||||
-rw-r--r-- | tests/d3d12_resource.c | 40 |
2 files changed, 16 insertions, 32 deletions
diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index b7e86d9f..ee94a97d 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -2083,14 +2083,6 @@ static bool d3d12_resource_validate_texture_format(const D3D12_RESOURCE_DESC1 *d return false; } - if (align(desc->Width, format->block_width) != desc->Width - || align(desc->Height, format->block_height) != desc->Height) - { - WARN("Invalid size %"PRIu64"x%u for block compressed format %#x.\n", - desc->Width, desc->Height, desc->Format); - return false; - } - return true; } diff --git a/tests/d3d12_resource.c b/tests/d3d12_resource.c index dcc6667e..d1b3f877 100644 --- a/tests/d3d12_resource.c +++ b/tests/d3d12_resource.c @@ -178,28 +178,40 @@ void test_create_committed_resource(void) hr = ID3D12Device_CreateCommittedResource(device, &heap_properties, D3D12_HEAP_FLAG_NONE, &resource_desc, D3D12_RESOURCE_STATE_COMMON, NULL, &IID_ID3D12Resource, (void **)&resource); - ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); + /* Unaligned mip 0 textures are allowed now on AgilitySDK 606. */ + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + if (SUCCEEDED(hr)) + ID3D12Resource_Release(resource); resource_desc.Width = 31; resource_desc.Height = 32; hr = ID3D12Device_CreateCommittedResource(device, &heap_properties, D3D12_HEAP_FLAG_NONE, &resource_desc, D3D12_RESOURCE_STATE_COMMON, NULL, &IID_ID3D12Resource, (void **)&resource); - ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); + /* Unaligned mip 0 textures are allowed now on AgilitySDK 606. */ + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + if (SUCCEEDED(hr)) + ID3D12Resource_Release(resource); resource_desc.Width = 30; resource_desc.Height = 30; hr = ID3D12Device_CreateCommittedResource(device, &heap_properties, D3D12_HEAP_FLAG_NONE, &resource_desc, D3D12_RESOURCE_STATE_COMMON, NULL, &IID_ID3D12Resource, (void **)&resource); - ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); + /* Unaligned mip 0 textures are allowed now on AgilitySDK 606. */ + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + if (SUCCEEDED(hr)) + ID3D12Resource_Release(resource); resource_desc.Width = 2; resource_desc.Height = 2; hr = ID3D12Device_CreateCommittedResource(device, &heap_properties, D3D12_HEAP_FLAG_NONE, &resource_desc, D3D12_RESOURCE_STATE_COMMON, NULL, &IID_ID3D12Resource, (void **)&resource); - ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); + /* Unaligned mip 0 textures are allowed now on AgilitySDK 606. */ + ok(hr == S_OK, "Got unexpected hr %#x.\n", hr); + if (SUCCEEDED(hr)) + ID3D12Resource_Release(resource); resource_desc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE1D; resource_desc.Width = 32; @@ -1437,26 +1449,6 @@ void test_get_copyable_footprints(void) {D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, 4, 4, 1, 1, DXGI_FORMAT_R32_UINT, {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 2, }, - { - {D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, 3, 1, 1, 2, DXGI_FORMAT_BC1_UNORM, - {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 2, - }, - { - {D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, 3, 1, 1, 1, DXGI_FORMAT_BC1_UNORM, - {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 1, - }, - { - {D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, 3, 1, 1, 2, DXGI_FORMAT_BC7_UNORM, - {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 2, - }, - { - {D3D12_RESOURCE_DIMENSION_TEXTURE2D, 0, 3, 1, 1, 1, DXGI_FORMAT_BC7_UNORM, - {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 1, - }, - { - {D3D12_RESOURCE_DIMENSION_TEXTURE3D, 3, 2, 2, 2, 2, DXGI_FORMAT_BC1_UNORM, - {1, 0}, D3D12_TEXTURE_LAYOUT_UNKNOWN, D3D12_RESOURCE_FLAG_NONE}, 0, 1, - }, }; if (!(device = create_device())) |