VkDecompressMemoryRegionEXT
The VkDecompressMemoryRegionEXT structure is defined as:
typedef struct VkDecompressMemoryRegionEXT {
VkDeviceAddress srcAddress;
VkDeviceAddress dstAddress;
VkDeviceSize compressedSize;
VkDeviceSize decompressedSize;
} VkDecompressMemoryRegionEXT;
pub struct DecompressMemoryRegionEXT {
src_address: vk::DeviceAddress,
dst_address: vk::DeviceAddress,
compressed_size: vk::DeviceSize, // Specified in bytes
decompressed_size: vk::DeviceSize, // Specified in bytes
}
srcAddressis the address where compressed data is stored.dstAddressis the destination address where decompressed data will be written.compressedSizeis the size of compressed data in bytes.decompressedSizeis the size of decompressed data in bytes.
Accesses to compressed and decompressed data specified in srcAddress
and dstAddress must be synchronized
with the VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT
pipeline stage with
access type of
VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT or
VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT.
Valid Usage
VUID-VkDecompressMemoryRegionEXT-srcAddress-07685
srcAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionEXT-srcAddress-07686
The memory range defined by srcAddress and compressedSizemust be contained within the size of the buffer bound to
srcAddress, minus the offset of srcAddress from the base
address of that buffer
VUID-VkDecompressMemoryRegionEXT-dstAddress-07687
dstAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionEXT-dstAddress-07688
The memory range defined by dstAddress and decompressedSizemust be contained within the size of the buffer bound to
dstAddress, minus the offset of dstAddress from the base
address of that buffer
VUID-VkDecompressMemoryRegionEXT-decompressedSize-07689
decompressedSize must be large enough to hold the decompressed
data based on the decompressionMethod
VUID-VkDecompressMemoryRegionEXT-compressedSize-11795
compressedSize must not be zero
VUID-VkDecompressMemoryRegionEXT-decompressedSize-11796
decompressedSize must not be zero
VUID-VkDecompressMemoryRegionEXT-srcAddress-07691
The memory range defined by srcAddress and compressedSizemust not overlap the memory range defined by dstAddress and
decompressedSize
VUID-VkDecompressMemoryRegionEXT-srcAddress-11764
srcAddress must be a device address allocated to the application
from a buffer created with the
VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT usage flag set
VUID-VkDecompressMemoryRegionEXT-dstAddress-11765
dstAddress must be a device address allocated to the application
from a buffer created with the
VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT usage flag set
Valid Usage (Implicit)
VUID-VkDecompressMemoryRegionEXT-srcAddress-parameter
srcAddress must be a valid VkDeviceAddress value
VUID-VkDecompressMemoryRegionEXT-dstAddress-parameter
dstAddress must be a valid VkDeviceAddress value