vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_QCOM_tile_memory_heap

Description

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.

Synopsis

Documentation

cmdBindTileMemoryQCOM Source #

Arguments

:: MonadIO io 
=> CommandBuffer

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

-> ("tileMemoryBindInfo" ::: Maybe TileMemoryBindInfoQCOM)

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

-> 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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryOutside Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITState

Conditional Rendering

vkCmdBindTileMemoryQCOM is not affected by conditional rendering

See Also

VK_QCOM_tile_memory_heap, CommandBuffer, TileMemoryBindInfoQCOM

data TileMemoryBindInfoQCOM Source #

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.

Valid Usage (Implicit)

See Also

VK_QCOM_tile_memory_heap, DeviceMemory, StructureType, cmdBindTileMemoryQCOM

Constructors

TileMemoryBindInfoQCOM 

Fields

Instances

Instances details
Eq TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Storable TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Show TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

FromCStruct TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

ToCStruct TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Zero TileMemoryBindInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

data PhysicalDeviceTileMemoryHeapFeaturesQCOM Source #

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.

Valid Usage (Implicit)

See Also

VK_QCOM_tile_memory_heap, Bool32, StructureType

Constructors

PhysicalDeviceTileMemoryHeapFeaturesQCOM 

Fields

  • tileMemoryHeap :: Bool

    tileMemoryHeap indicates whether the implementation supports tile memory heap functionality.

Instances

Instances details
Eq PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Storable PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Show PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

FromCStruct PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

ToCStruct PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Zero PhysicalDeviceTileMemoryHeapFeaturesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

data PhysicalDeviceTileMemoryHeapPropertiesQCOM Source #

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.

Valid Usage (Implicit)

See Also

VK_QCOM_tile_memory_heap, Bool32, StructureType

Constructors

PhysicalDeviceTileMemoryHeapPropertiesQCOM 

Fields

  • queueSubmitBoundary :: Bool

    queueSubmitBoundary is a boolean describing if tile memory becomes undefined at a queue submit boundary instead of the default command buffer submission batch boundary.

  • tileBufferTransfers :: Bool

    tileBufferTransfers is a boolean describing if buffers bound to tile memory support transfer operations.

Instances

Instances details
Eq PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Storable PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Show PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

FromCStruct PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

ToCStruct PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Zero PhysicalDeviceTileMemoryHeapPropertiesQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

data TileMemorySizeInfoQCOM Source #

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.

Valid Usage (Implicit)

See Also

VK_QCOM_tile_memory_heap, VK_QCOM_tile_properties, DeviceSize, StructureType

Constructors

TileMemorySizeInfoQCOM 

Fields

Instances

Instances details
Eq TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Storable TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Show TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

FromCStruct TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

ToCStruct TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Zero TileMemorySizeInfoQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

data TileMemoryRequirementsQCOM Source #

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.

Valid Usage (Implicit)

See Also

VK_QCOM_tile_memory_heap, DeviceSize, StructureType

Constructors

TileMemoryRequirementsQCOM 

Fields

  • size :: DeviceSize

    size is the size, in bytes, of the tile memory allocation required for the resource.

  • alignment :: DeviceSize

    alignment is the alignment, in bytes, of the offset within the tile memory allocation required for the resource.

Instances

Instances details
Eq TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Storable TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Show TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

FromCStruct TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

ToCStruct TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

Zero TileMemoryRequirementsQCOM Source # 
Instance details

Defined in Vulkan.Extensions.VK_QCOM_tile_memory_heap

type QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME = "VK_QCOM_tile_memory_heap" Source #