KhronosGroup / Vulkan-ValidationLayers

Vulkan Validation Layers (VVL)
https://vulkan.lunarg.com/doc/sdk/latest/linux/khronos_validation_layer.html
Other
778 stars 407 forks source link

vkCmdCopyImage validation reports error when copying to compressed image with dimensions < block size #1908

Closed aellem closed 1 year ago

aellem commented 4 years ago

The only way to copy from a VK_FORMAT_R16G16B16A16_UINT to a VK_FORMAT_BC1_RGB_UNORM_BLOCK whose size < 4 is by specifying extents of 1 block.

However the validation layer interprets that as dimensions of 4x4 and complains the sizes don't match:

VUID-VkImageCopy-dstOffset-00150(ERROR / SPEC): msgNum: 1553015872 - Validation Error: [ VUID-VkImageCopy-dstOffset-00150 ] Object 0: handle = 0xc556330, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x5c912440 | vkCmdCopyImage(): Dest image pRegion 0 x-dimension offset [0] + extent [4] exceeds subResource width [2]. The Vulkan spec states: dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the destination image subresource width (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkImageCopy-dstOffset-00150)

aellem commented 4 years ago

VUID-vkCmdCopyImage-pRegions-00123 has a similar issue.

If you copy to a < blocksize compressed image the validation layer will complain: that extent [ 4, 4, 1 ] exceeds the destination image dimensions.

ziga-lunarg commented 1 year ago

Closing as a duplicate of #1946