From 589ed1e358a28d54287ed3ff3effbc677587dcdb Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Thu, 23 May 2024 12:32:23 +1000 Subject: [PATCH] vkd3d: Allow block compressed textures to have unaligned width and height. --- libs/vkd3d/device.c | 3 ++- libs/vkd3d/resource.c | 8 -------- tests/d3d12.c | 1 - 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index cfc9c5f5..c27a96e2 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3806,7 +3806,8 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device9 return E_INVALIDARG; } - data->UnalignedBlockTexturesSupported = FALSE; + /* Vulkan does not restrict block texture alignment. */ + data->UnalignedBlockTexturesSupported = TRUE; TRACE("Unaligned block texture support %#x.\n", data->UnalignedBlockTexturesSupported); return S_OK; diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index c897d9f2..db2d8742 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -1809,14 +1809,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.c b/tests/d3d12.c index 589fd33a..55a85e8c 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -20519,7 +20519,6 @@ static void test_get_copyable_footprints(void) { resource_desc.Width = align(resource_desc.Width, 4); resource_desc.Height = align(resource_desc.Height, 4); - todo check_copyable_footprints(&resource_desc, 0, invalid_descs[i].sub_resource_count, 0, layouts, row_counts, row_sizes, &total_size); }