VkDecompressMemoryRegionNV
The VkDecompressMemoryRegionNV structure is defined as:
typedef struct VkDecompressMemoryRegionNV {
VkDeviceAddress srcAddress;
VkDeviceAddress dstAddress;
VkDeviceSize compressedSize;
VkDeviceSize decompressedSize;
VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
} VkDecompressMemoryRegionNV;
pub struct DecompressMemoryRegionNV {
src_address: vk::DeviceAddress,
dst_address: vk::DeviceAddress,
compressed_size: vk::DeviceSize, // Specified in bytes
decompressed_size: vk::DeviceSize, // Specified in bytes
decompression_method: vk::MemoryDecompressionMethodFlagsEXT,
}
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.decompressionMethodis a bitmask of VkMemoryDecompressionMethodFlagBitsNV with a single bit set specifying the method used to decompress data.
Valid Usage
VUID-VkDecompressMemoryRegionNV-decompressionMethod-07690
The decompressionMethod must have a single bit set
VUID-VkDecompressMemoryRegionNV-srcAddress-07685
srcAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-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-VkDecompressMemoryRegionNV-dstAddress-07687
dstAddress must be 4 byte aligned
VUID-VkDecompressMemoryRegionNV-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-VkDecompressMemoryRegionNV-decompressedSize-07689
decompressedSize must be large enough to hold the decompressed
data based on the decompressionMethod
VUID-VkDecompressMemoryRegionNV-compressedSize-11795
compressedSize must not be zero
VUID-VkDecompressMemoryRegionNV-decompressedSize-11796
decompressedSize must not be zero
VUID-VkDecompressMemoryRegionNV-srcAddress-07691
The memory range defined by srcAddress and compressedSizemust not overlap the memory range defined by dstAddress and
decompressedSize
VUID-VkDecompressMemoryRegionNV-decompressionMethod-09395
If decompressionMethod is
VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT, then
decompressedSize must be less than or equal to 65536 bytes
VUID-vkCmdDecompressMemoryNV-memoryDecompression-11766
The memoryDecompression feature
must be enabled