vkCmdBeginPerTileExecutionQCOM(3)

# vkCmdBeginPerTileExecutionQCOM(3) Manual Page

## Name

vkCmdBeginPerTileExecutionQCOM - Begin per-tile execution mode

## C Specification

To enable the per-tile execution model, call:

    // Provided by VK_QCOM_tile_shading
    void vkCmdBeginPerTileExecutionQCOM(
        VkCommandBuffer                             commandBuffer,
        const VkPerTileBeginInfoQCOM*               pPerTileBeginInfo);

## Parameters

- `commandBuffer` is the command buffer in which to record the command.

- `pPerTileBeginInfo` is a pointer to a VkPerTileBeginInfoQCOM structure containing information about how the per-tile execution model is started.

## Description

When per-tile execution model is enabled, recorded `vkCmdDraw*` or `vkCmdDispatch*` commands are invoked per tile. That is, the recorded draw or dispatch is invoked exactly once for each covered tile. The set of covered tiles for a given render pass instance consists of the set of render pass tiles, which can be queried with `VK_QCOM_tile_properties`, that are completely or partially covered by the `renderArea` for the render pass instance. The draw or dispatch commands may be invoked for uncovered tiles.

Each per-tile command invocation is associated with a single tile, the active tile. These per-tile invocations are not specified to execute in any particular order, but the size and offset of the active tile is available via shader built-ins.

When per-tile execution model is enabled, the following restrictions apply:

- Transform feedback commands such as vkCmdBeginTransformFeedbackEXT, vkCmdEndTransformFeedbackEXT, vkCmdBeginQueryIndexedEXT, and vkCmdEndQueryIndexedEXT, must not be recorded.

- Query commands such as vkCmdWriteTimestamp, vkCmdDebugMarkerBeginEXT, vkCmdDebugMarkerEndEXT, vkCmdDebugMarkerInsertEXT, vkCmdBeginQuery, and vkCmdEndQuery, must not be recorded.

- Event commands such as vkCmdWaitEvents2 and vkCmdWaitEvents must not be recorded.

- Render pass clears like vkCmdClearAttachments must not be recorded

- Access of an attachment with layout VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT as provided by `VK_EXT_attachment_feedback_loop_layout` is disallowed

- Any commands that would cause a invocations of one of the following shader stages are not allowed

  - tessellation

  - geometry

  - ray tracing

  - mesh shading

Valid Usage

- VUID-vkCmdBeginPerTileExecutionQCOM-None-10664
  The current render pass must be a tile shading render pass

- VUID-vkCmdBeginPerTileExecutionQCOM-None-10665
  The tileShadingPerTileDispatch or tileShadingPerTileDraw feature must be enabled

Valid Usage (Implicit)

- VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-parameter
  `commandBuffer` must be a valid VkCommandBuffer handle

- VUID-vkCmdBeginPerTileExecutionQCOM-pPerTileBeginInfo-parameter
  `pPerTileBeginInfo` must be a valid pointer to a valid VkPerTileBeginInfoQCOM structure

- VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-recording
  `commandBuffer` must be in the recording state

- VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-cmdpool
  The `VkCommandPool` that `commandBuffer` was allocated from must support VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT operations

- VUID-vkCmdBeginPerTileExecutionQCOM-renderpass
  This command must only be called inside of a render pass instance

- VUID-vkCmdBeginPerTileExecutionQCOM-videocoding
  This command must only be called outside of a video coding scope

Host Synchronization

- Host access to the `VkCommandPool` 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 | Inside | Outside | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | State

Conditional Rendering

vkCmdBeginPerTileExecutionQCOM is not affected by conditional rendering

## See Also

VK_QCOM_tile_shading, VkCommandBuffer, VkPerTileBeginInfoQCOM

## 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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0