Function Prototype

vkCmdDecompressMemoryNV

Decompress memory containing compressed data

To decompress memory containing compressed data, call:

void vkCmdDecompressMemoryNV(
    VkCommandBuffer commandBuffer,
    uint32_t decompressRegionCount,
    const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
  • commandBuffer is the command buffer into which the command will be recorded.
  • decompressRegionCount is the number of memory regions to decompress.
  • pDecompressMemoryRegions is a pointer to an array of decompressRegionCount VkDecompressMemoryRegionNV structures specifying decompression parameters.

Each region specified in pDecompressMemoryRegions is decompressed from the compressed to decompressed region based on the decompression method specified in VkDecompressMemoryRegionNV::decompressionMethod. If the regions containing compressed and decompressed data overlap, the decompression behavior is undefined.

Valid Usage

Valid Usage (Implicit)

VUID-vkCmdDecompressMemoryNV-pDecompressMemoryRegions-parameter

pDecompressMemoryRegions must be a valid pointer to an array of decompressRegionCount valid VkDecompressMemoryRegionNV structures

VUID-vkCmdDecompressMemoryNV-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT operations

VUID-vkCmdDecompressMemoryNV-renderpass

This command must only be called outside of a render pass instance

VUID-vkCmdDecompressMemoryNV-suspended

This command must not be called between suspended render pass instances

VUID-vkCmdDecompressMemoryNV-videocoding

This command must only be called outside of a video coding scope

VUID-vkCmdDecompressMemoryNV-decompressRegionCount-arraylength

decompressRegionCount must be greater than 0

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized