| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
- Interacts with
- 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
Extending
MemoryRequirements2:Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:Extending
PhysicalDeviceProperties2:
If VK_QCOM_tile_properties is supported:
New Enum Constants
QCOM_TILE_MEMORY_HEAP_SPEC_VERSIONExtending
BufferUsageFlagBits:Extending
BufferUsageFlagBits2:Extending
ImageUsageFlagBits:Extending
MemoryHeapFlagBits:Extending
StructureType:
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
- cmdBindTileMemoryQCOM :: MonadIO io => CommandBuffer -> ("tileMemoryBindInfo" ::: Maybe TileMemoryBindInfoQCOM) -> io ()
- data TileMemoryBindInfoQCOM = TileMemoryBindInfoQCOM {}
- data PhysicalDeviceTileMemoryHeapFeaturesQCOM = PhysicalDeviceTileMemoryHeapFeaturesQCOM {}
- data PhysicalDeviceTileMemoryHeapPropertiesQCOM = PhysicalDeviceTileMemoryHeapPropertiesQCOM {}
- data TileMemorySizeInfoQCOM = TileMemorySizeInfoQCOM {
- size :: DeviceSize
- data TileMemoryRequirementsQCOM = TileMemoryRequirementsQCOM {}
- type QCOM_TILE_MEMORY_HEAP_SPEC_VERSION = 1
- pattern QCOM_TILE_MEMORY_HEAP_SPEC_VERSION :: Integral a => a
- type QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME = "VK_QCOM_tile_memory_heap"
- pattern QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME :: (Eq a, IsString a) => a
Documentation
cmdBindTileMemoryQCOM Source #
Arguments
| :: MonadIO io | |
| => CommandBuffer |
|
| -> ("tileMemoryBindInfo" ::: Maybe TileMemoryBindInfoQCOM) |
|
| -> 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)
-
commandBuffermust be a validCommandBufferhandle
- If
pTileMemoryBindInfois notNULL,pTileMemoryBindInfomust be a valid pointer to a validTileMemoryBindInfoQCOMstructure -
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 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 | State |
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
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
Constructors
| PhysicalDeviceTileMemoryHeapFeaturesQCOM | |
Fields | |
Instances
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
Constructors
| PhysicalDeviceTileMemoryHeapPropertiesQCOM | |
Fields | |
Instances
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
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
Constructors
| TileMemoryRequirementsQCOM | |
Fields
| |
Instances
type QCOM_TILE_MEMORY_HEAP_SPEC_VERSION = 1 Source #
pattern QCOM_TILE_MEMORY_HEAP_SPEC_VERSION :: Integral a => a Source #
type QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME = "VK_QCOM_tile_memory_heap" Source #
pattern QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME :: (Eq a, IsString a) => a Source #