VK_EXT_shader_tile_image(3)

# VK_EXT_shader_tile_image(3) Manual Page

## Name

VK_EXT_shader_tile_image - device extension

## Registered Extension Number

396

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

Vulkan Version 1.3

## SPIR-V Dependencies

- SPV_EXT_shader_tile_image

## Contact

- Jan-Harald Fredriksen [GitHub]janharaldfredriksen-arm

## Extension Proposal

VK_EXT_shader_tile_image

## Other Extension Metadata

Last Modified Date

  2023-03-23

IP Status

  No known IP claims.

Interactions and External Dependencies

  - This extension provides API support for `GL_EXT_shader_tile_image`

Contributors

  - Sandeep Kakarlapudi, Arm

  - Jan-Harald Fredriksen, Arm

  - James Fitzpatrick, Imagination

  - Andrew Garrard, Imagination

  - Jeff Leger, Qualcomm

  - Huilong Wang, Huawei

  - Graeme Leese, Broadcom

  - Hans-Kristian Arntzen, Valve

  - Tobias Hector, AMD

  - Jeff Bolz, NVIDIA

  - Shahbaz Youssefi, Google

## Description

This extension allows fragment shader invocations to read color, depth, and stencil values at their pixel location in rasterization order. The functionality is only available when using dynamic render passes introduced by VK_KHR_dynamic_rendering. Example use cases are programmable blending and deferred shading.

See fragment shader tile image reads for more information.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceShaderTileImageFeaturesEXT

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceShaderTileImagePropertiesEXT

## New Enum Constants

- `VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME`

- `VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT

## Issues

None.

## Examples

Color read example.

    layout( location = 0 /* aliased to color attachment 0 */ ) tileImageEXT highp attachmentEXT color0;
    layout( location = 1 /* aliased to color attachment 1 */ ) tileImageEXT highp attachmentEXT color1;

    layout( location = 0 ) out vec4 fragColor;

    void main()
    {
        vec4 value = colorAttachmentReadEXT(color0) + colorAttachmentReadEXT(color1);
        fragColor = value;
    }

Depth & Stencil read example.

    void main()
    {
        // read sample 0: works for non-MSAA or MSAA targets
        highp float last_depth = depthAttachmentReadEXT();
        lowp uint last_stencil = stencilAttachmentReadEXT();

        //..
    }

## Version History

- Revision 1, 2023-03-23 (Sandeep Kakarlapudi)

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

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0