Name Strings
SPV_QCOM_tile_shading
Contact
To report problems with this extension, please open a new issue at:
Contributors
-
Jeff Leger, Qualcomm
-
Ruihao Zhang, Qualcomm
-
Wooyoung Kim, Qualcomm
Notice
Copyright (c) 2025 The Khronos Group Inc. Copyright terms at http://www.khronos.org/registry/speccopyright.html
Status
-
Final
Version
Last Modified Date |
2025-04-15 |
Revision |
1 |
Dependencies
This extension is written against the Unified SPIR-V Specification, Version 1.6 Revision 2.
This extension requires SPIR-V 1.0.
Overview
This extension adds a new storage class and two new execution modes along with a new capability to support the Vulkan tile shading extension described in VK_QCOM_tile_shading. It also adds three new built-in variables to facilitate use of the tile shading extension.
With the new storage class, operations on 2D image/sampled image variables (i.e. tile image attachment variables) may execute per-tile while the framebuffer content is still cached in high-bandwidth on-die tile memory.
Extension Name
To use this extension within a SPIR-V module, the following OpExtension must be present in the module:
OpExtension "SPV_QCOM_tile_shading"
New Capabilities
This extension introduces a new capability:
TileShadingQCOM
New Storage Classes
Storage class added under the TileShadingQCOM capability:
TileAttachmentQCOM
New BuiltIns
BuiltIn variables added under the TileShadingQCOM capability:
TileOffsetQCOM TileDimensionQCOM TileApronSizeQCOM
New Execution Mode
Execution mode added under the TileShadingQCOM capability:
NonCoherentTileAttachmentReadQCOM TileShadingRateQCOM
Modifications to the SPIR-V Specification, Version 1.6
Execution Mode
Modify Section 3.6, "Execution Mode", adding the following row before EarlyAndLateFragmentTestsAMD
Execution Mode | Extra Operands | Enabling Capabilities | |||
---|---|---|---|---|---|
4489 |
NonCoherentTileAttachmentReadQCOM |
TileShadingQCOM |
|||
4490 |
TileShadingRateQCOM |
Literal x rate |
Literal y rate |
Literal z rate |
TileShadingQCOM |
Storage Class
Modify Section 3.7, "Storage Class", adding the following row before CallableDataNV:
Storage Class | Enabling Capabilities | Enabled by Extension | |
---|---|---|---|
4491 |
TileAttachmentQCOM |
TileShadingQCOM |
SPV_QCOM_tile_shading |
Builtin
Modify Section 3.21, "BuiltIn", adding the following rows to the Builtin table before BaryCoordNoPerspAMD:
BuiltIn | Enabling Capabilities | |
---|---|---|
4492 |
TileOffsetQCOM |
TileShadingQCOM |
4493 |
TileDimensionQCOM |
TileShadingQCOM |
4494 |
TileApronSizeQCOM |
TileShadingQCOM |
Capabilities
Modify Section 3.31, "Capability", adding the following rows to the Capability table after RayTracingKHR:
Capability | Implicitly Declares | |
---|---|---|
4495 |
TileShadingQCOM |
Shader |
Validation Rules
An OpExtension must be added to the SPIR-V for validation layers to check legal use of this extension:
OpExtension "SPV_QCOM_tile_shading"
-
The x and y rate values of the TileShadingRateQCOM execution mode must be powers of 2.
Issues
Revision History
Rev | Date | Author | Changes |
---|---|---|---|
1 |
2025-04-15 |
Wooyoung Kim |
Initial version |