| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_NV_memory_decompression
Description
Name
VK_NV_memory_decompression - device extension
VK_NV_memory_decompression
- Name String
VK_NV_memory_decompression
- Extension Type
- Device extension
- Registered Extension Number
- 428
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or
VK_KHR_buffer_device_address or Vulkan Version 1.2
- Deprecation State
- Promoted to VK_EXT_memory_decompression extension
- Contact
Other Extension Metadata
- Last Modified Date
- 2022-01-31
- Contributors
- Vikram Kushwaha, NVIDIA
- Jeff Bolz, NVIDIA
- Christoph Kubisch, NVIDIA
- Piers Daniell, NVIDIA
Description
This extension adds support for performing memory to memory decompression.
New Commands
New Structures
Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
New Enums
New Bitmasks
New Enum Constants
Version History
Revision 1, 2022-01-31 (Vikram Kushwaha)
- Initial draft
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- cmdDecompressMemoryNV :: MonadIO io => CommandBuffer -> ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV) -> io ()
- cmdDecompressMemoryIndirectCountNV :: MonadIO io => CommandBuffer -> ("indirectCommandsAddress" ::: DeviceAddress) -> ("indirectCommandsCountAddress" ::: DeviceAddress) -> ("stride" ::: Word32) -> io ()
- pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV :: StructureType
- pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV :: StructureType
- data DecompressMemoryRegionNV = DecompressMemoryRegionNV {}
- type MemoryDecompressionMethodFlagsNV = MemoryDecompressionMethodFlagsEXT
- type MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsEXT
- type PhysicalDeviceMemoryDecompressionFeaturesNV = PhysicalDeviceMemoryDecompressionFeaturesEXT
- type PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesEXT
- type NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1
- pattern NV_MEMORY_DECOMPRESSION_SPEC_VERSION :: Integral a => a
- type NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression"
- pattern NV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: (Eq a, IsString a) => a
- data PhysicalDeviceMemoryDecompressionFeaturesEXT = PhysicalDeviceMemoryDecompressionFeaturesEXT {}
- data PhysicalDeviceMemoryDecompressionPropertiesEXT = PhysicalDeviceMemoryDecompressionPropertiesEXT {}
- newtype MemoryDecompressionMethodFlagBitsEXT where
- type MemoryDecompressionMethodFlagsEXT = MemoryDecompressionMethodFlagBitsEXT
Documentation
cmdDecompressMemoryNV Source #
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV) |
|
| -> io () |
vkCmdDecompressMemoryNV - Decompress memory containing compressed data
Description
Each region specified in pDecompressMemoryRegions is decompressed from
the compressed to decompressed region based on the decompression method
specified in DecompressMemoryRegionNV::decompressionMethod. If the
regions containing compressed and decompressed data overlap, the
decompression behavior is undefined.
Valid Usage
- The memoryDecompression feature must be enabled
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
pDecompressMemoryRegionsmust be a valid pointer to an array ofdecompressRegionCountvalidDecompressMemoryRegionNVstructures -
commandBuffermust be in the recording state - The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT, orQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a render pass instance
- This command must not be called between suspended render pass instances
- This command must only be called outside of a video coding scope
-
decompressRegionCountmust be greater than0
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
|---|---|---|---|---|
| Primary Secondary | Outside | Outside | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | Action |
Conditional Rendering
vkCmdDecompressMemoryNV is not affected by conditional rendering
See Also
VK_NV_memory_decompression,
CommandBuffer, DecompressMemoryRegionNV
cmdDecompressMemoryIndirectCountNV Source #
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("indirectCommandsAddress" ::: DeviceAddress) |
|
| -> ("indirectCommandsCountAddress" ::: DeviceAddress) |
|
| -> ("stride" ::: Word32) |
|
| -> io () |
vkCmdDecompressMemoryIndirectCountNV - Indirect decompress data between memory regions
Description
Each region specified in indirectCommandsAddress is decompressed from
the source to destination region based on the specified
decompressionMethod.
Valid Usage
- The memoryDecompression feature must be enabled
-
indirectCommandsAddressmust be a device address allocated to the application from a buffer created with theBUFFER_USAGE_INDIRECT_BUFFER_BITusage flag set -
indirectCommandsAddressmust be a multiple of4 -
indirectCommandsCountAddressmust be a device address allocated to the application from a buffer created with theBUFFER_USAGE_INDIRECT_BUFFER_BITusage flag set -
indirectCommandsCountAddressmust be a multiple of4 -
The count stored in
indirectCommandsCountAddressmust be less than or equal toPhysicalDeviceMemoryDecompressionPropertiesEXT::maxDecompressionIndirectCount -
All device addresses between
indirectCommandsAddressandindirectCommandsAddress+ (stride× (count stored inindirectCommandsCountAddress)) - 1 must be in the buffer device address range of the same buffer -
stridemust be a multiple of4and must be greater than or equal to sizeof(DecompressMemoryRegionNV)
Valid Usage (Implicit)
-
commandBuffermust be a validCommandBufferhandle
-
indirectCommandsAddressmust be a validDeviceAddressvalue -
indirectCommandsCountAddressmust be a validDeviceAddressvalue -
commandBuffermust be in the recording state -
The
CommandPoolthatcommandBufferwas allocated from must supportQUEUE_COMPUTE_BIT, orQUEUE_GRAPHICS_BIToperations - This command must only be called outside of a render pass instance
- This command must not be called between suspended render pass instances
- This command must only be called outside of a video coding scope
Host Synchronization
- Host access to
commandBuffermust be externally synchronized
- Host access to the
CommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
'
| Command Buffer Levels | Render Pass Scope | Video Coding Scope | Supported Queue Types | Command Type |
|---|---|---|---|---|
| Primary Secondary | Outside | Outside | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | Action |
Conditional Rendering
vkCmdDecompressMemoryIndirectCountNV is not affected by conditional rendering
See Also
data DecompressMemoryRegionNV Source #
VkDecompressMemoryRegionNV - Structure specifying decompression region parameters
Valid Usage
-
srcAddressmust be 4 byte aligned - The memory range
defined by
srcAddressandcompressedSizemust be contained within the size of the buffer bound tosrcAddress, minus the offset ofsrcAddressfrom the base address of that buffer -
dstAddressmust be 4 byte aligned - The memory range
defined by
dstAddressanddecompressedSizemust be contained within the size of the buffer bound todstAddress, minus the offset ofdstAddressfrom the base address of that buffer -
decompressedSizemust be large enough to hold the decompressed data based on thedecompressionMethod -
compressedSizemust not be zero -
decompressedSizemust not be zero - The memory range
defined by
srcAddressandcompressedSizemust not overlap the memory range defined bydstAddressanddecompressedSize - If
decompressionMethodisMEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT, thendecompressedSizemust be less than or equal to 65536 bytes - The memoryDecompression feature must be enabled
See Also
VK_NV_memory_decompression,
DeviceAddress,
DeviceSize,
MemoryDecompressionMethodFlagsEXT,
cmdDecompressMemoryNV
Constructors
| DecompressMemoryRegionNV | |
Fields
| |
Instances
type PhysicalDeviceMemoryDecompressionFeaturesNV = PhysicalDeviceMemoryDecompressionFeaturesEXT Source #
type PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesEXT Source #
type NV_MEMORY_DECOMPRESSION_SPEC_VERSION = 1 Source #
pattern NV_MEMORY_DECOMPRESSION_SPEC_VERSION :: Integral a => a Source #
type NV_MEMORY_DECOMPRESSION_EXTENSION_NAME = "VK_NV_memory_decompression" Source #
pattern NV_MEMORY_DECOMPRESSION_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
data PhysicalDeviceMemoryDecompressionFeaturesEXT Source #
VkPhysicalDeviceMemoryDecompressionFeaturesEXT - Structure describing if memory decompression is supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceMemoryDecompressionFeaturesEXT structure is
included in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceMemoryDecompressionFeaturesEXT, it must add an
instance of the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
VK_EXT_memory_decompression,
VK_NV_memory_decompression,
Bool32,
StructureType
Constructors
| PhysicalDeviceMemoryDecompressionFeaturesEXT | |
Fields | |
Instances
data PhysicalDeviceMemoryDecompressionPropertiesEXT Source #
VkPhysicalDeviceMemoryDecompressionPropertiesEXT - Structure describing supported memory decompression methods by an implementation
Description
If
memoryDecompression
feature is supported, decompressionMethods must have at least one
bit set.
If the PhysicalDeviceMemoryDecompressionPropertiesEXT structure is
included in the pNext chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2,
it is filled in with each corresponding implementation-dependent
property.
Valid Usage (Implicit)
See Also
VK_EXT_memory_decompression,
VK_NV_memory_decompression,
MemoryDecompressionMethodFlagsEXT,
StructureType
Constructors
| PhysicalDeviceMemoryDecompressionPropertiesEXT | |
Fields
| |
Instances
newtype MemoryDecompressionMethodFlagBitsEXT Source #
VkMemoryDecompressionMethodFlagBitsEXT - List the supported memory decompression methods
Description
MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXTspecifies that the GDeflate 1.0 algorithm is used to decompress data.
See Also
VK_EXT_memory_decompression,
VK_NV_memory_decompression,
MemoryDecompressionMethodFlagsEXT
Constructors
| MemoryDecompressionMethodFlagBitsEXT Flags64 |
Bundled Patterns
| pattern MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT :: MemoryDecompressionMethodFlagBitsEXT |