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 byVK_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
-
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.