HORIZON HASKELLDocslts/ghc-10.0.xfc4e5982026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · fc4e598 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_QCOM_tile_memory_heap

Name

VK_QCOM_tile_memory_heap - device extension

VK_QCOM_tile_memory_heap

Name String

VK_QCOM_tile_memory_heap

Extension Type

Device extension

Registered Extension Number

548

Revision

1

Ratification Status

Not ratified

Extension and Version Dependencies

VK_KHR_get_memory_requirements2      and

VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1

API Interactions
  • Interacts with VK_QCOM_tile_properties

Contact
Extension Proposal

VK_QCOM_tile_memory_heap

Other Extension Metadata

Last Modified Date

2025-05-05

Interactions and External Dependencies
  • Interacts with VK_QCOM_tile_properties

  • Interacts with VK_QCOM_tile_shading

Contributors
  • Patrick Boyle, Qualcomm Technologies, Inc.

  • Matthew Netsch, Qualcomm Technologies, Inc.

  • Srihari Babu Alla, Qualcomm Technologies, Inc.

  • Kevin Matlage, Qualcomm Technologies, Inc.

Description

This extension adds a new memory heap which allows applications to allocate and manage tile memory. A tile memory heap is denoted by the new MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property. Memory contents within this heap behave differently than other heaps and only persist its memory contents within a command buffer submission batch boundary. This boundary may be extended to a queue submit boundary by querying queueSubmitBoundary in the new PhysicalDeviceTileMemoryHeapPropertiesQCOM structure.

Tile memory from this heap can be bound to VkImages or VkBuffers. The following new usage flags IMAGE_USAGE_TILE_MEMORY_BIT_QCOM, BUFFER_USAGE_TILE_MEMORY_BIT_QCOM, BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM were added for this. A new extended structure is added to get memory requirements for tile memory TileMemoryRequirementsQCOM.

A new command is added to bind tile memory to a command buffer in order to access and persist tile memory contents while executing commands cmdBindTileMemoryQCOM.

This extension can be used in combination with VK_QCOM_tile_properties with the new structure TileMemorySizeInfoQCOM.

Issues

None.

New Commands

New Structures

If VK_QCOM_tile_properties is supported:

New Enum Constants

If VK_QCOM_tile_properties is supported:

Version History

  • Revision 1, 2025-03-26 (Patrick Boyle)

    • Initial version

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.

  • 7 types
  • 1 value
  • Packagevulkan-3.27
  • Exports10
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_QCOM_tile_memory_heap.hs
valuecmdBindTileMemoryQCOM
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer that the tile memory will be bound to.

  3. -> "tileMemoryBindInfo" ::: Maybe TileMemoryBindInfoQCOM

    pTileMemoryBindInfo is NULL_HANDLE or a pointer to a TileMemoryBindInfoQCOM structure defining how tile memory is bound.

  4. -> io ()
#

vkCmdBindTileMemoryQCOM - Bind tile memory to a command buffer

Description

Calling cmdBindTileMemoryQCOM when pTileMemoryBindInfo is NULL is equivalent to binding no tile memory to the command buffer.

Valid Usage (Implicit)

  • If pTileMemoryBindInfo is not NULL, pTileMemoryBindInfo must be a valid pointer to a valid TileMemoryBindInfoQCOM structure

  • commandBuffer must be in the recording state

  • The CommandPool that commandBuffer was allocated from must support QUEUE_COMPUTE_BIT, or QUEUE_GRAPHICS_BIT operations

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

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

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was 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

State

Conditional Rendering

vkCmdBindTileMemoryQCOM is not affected by conditional rendering

See Also

VK_QCOM_tile_memory_heap, CommandBuffer, TileMemoryBindInfoQCOM

VkTileMemoryBindInfoQCOM - Structure specifying tile memory to bind

Description

memory is used to bind this memory object to tile memory for all subsequent commands in the commandBuffer. Tile memory contents for ranges in the heap outside the bound memory are discarded and become undefined for the active tile memory scope if an action command is executed.

For secondary command buffers executing within a render pass instance, the active bound tile memory object is provided with this structure included in the pNext chain of CommandBufferInheritanceInfo.

If this structure was not specified since recording started for commandBuffer, no tile memory is bound to the command buffer and all contents become undefined for the tile memory scope if an action command is executed.

Structure Chaining

Extends the structure

See Also

VK_QCOM_tile_memory_heap, DeviceMemory, StructureType, cmdBindTileMemoryQCOM

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceTileMemoryHeapFeaturesQCOM - Structure describing whether the tile memory heap features can be supported by an implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceTileMemoryHeapFeaturesQCOM 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 PhysicalDeviceTileMemoryHeapFeaturesQCOM, 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.

Structure Chaining

Extends the structures

See Also

VK_QCOM_tile_memory_heap, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkPhysicalDeviceTileMemoryHeapPropertiesQCOM - Structure describing tile memory heap properties that can be supported by an implementation

Description

If the PhysicalDeviceTileMemoryHeapPropertiesQCOM structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Structure Chaining

Extends the structure

See Also

VK_QCOM_tile_memory_heap, Bool32, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTileMemorySizeInfoQCOM - Structure describing tile memory size in use in a render pass instance

Description

The returned tile properties are invalid if the size is not equal to the bound tile memory’s allocation size when the render pass is executed.

If this structure is not provided, the size of the reserved region defaults to 0.

Tile memory is reserved for application use by binding tile memory objects to the command buffer.

The size provided by this command is informational only for use when evaluating tile properties. If the application does not need to query the tile properties, then this size can be safely omitted.

Structure Chaining

Extends the structures

See Also

VK_QCOM_tile_memory_heap, VK_QCOM_tile_properties, DeviceSize, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero

VkTileMemoryRequirementsQCOM - Structure specifying tile memory requirements

Description

The size and alignment must be used when the resource is bound to a DeviceMemory object that was allocated from a MemoryType that has a heapIndex that corresponds to a MemoryHeap with the MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property.

If the resource cannot be bound to tile memory, then size and alignment is filled with zero by the implementation.

Structure Chaining

Extends the structure

See Also

VK_QCOM_tile_memory_heap, DeviceSize, StructureType

Constructors

Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero