# VkDecompressMemoryRegionEXT(3) Manual Page

## Name

VkDecompressMemoryRegionEXT - Structure specifying decompression region

Loading… please wait.

## C Specification

The `VkDecompressMemoryRegionEXT` structure is defined as:

    // Provided by VK_EXT_memory_decompression
    typedef struct VkDecompressMemoryRegionEXT {
        VkDeviceAddress    srcAddress;
        VkDeviceAddress    dstAddress;
        VkDeviceSize       compressedSize;
        VkDeviceSize       decompressedSize;
    } VkDecompressMemoryRegionEXT;

## Members

- `srcAddress` is the address where compressed data is stored.

- `dstAddress` is the destination address where decompressed data will be written.

- `compressedSize` is the size of compressed data in bytes.

- `decompressedSize` is the size of decompressed data in bytes.

## Description

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 `compressedSize` must 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 `decompressedSize` must 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 `compressedSize` must not overlap the memory range defined by `dstAddress` and `decompressedSize`

- VUID-VkDecompressMemoryRegionEXT-srcAddress-11764
  The underlying buffer for `srcAddress` must have the `VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT` bit set in its usage flag

- VUID-VkDecompressMemoryRegionEXT-dstAddress-11765
  The underlying buffer for `dstAddress` must have the `VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT` bit set in its usage flag

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

## See Also

VK_EXT_memory_decompression, VkDecompressMemoryInfoEXT, VkDeviceAddress, VkDeviceSize

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0