Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/HansKristian-Work/vkd3d-proton.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2022-09-16 17:19:48 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2022-09-16 17:48:49 +0300
commite74cc100883ab4f512461ffb21f0c2d7b49e1b2e (patch)
tree9a2690023323b6f73ba47136382e477e58845792
parent6f19e3c40cc52af75cb94fc3f40315a7f206f5ca (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.c8
-rw-r--r--tests/d3d12_resource.c40
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()))