| // Copyright 2017-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_sample_locations.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2017-08-02 |
| *Contributors*:: |
| - Mais Alnasser, AMD |
| - Matthaeus G. Chajdas, AMD |
| - Maciej Jesionowski, AMD |
| - Daniel Rakos, AMD |
| - Slawomir Grajewski, Intel |
| - Jeff Bolz, NVIDIA |
| - Bill Licea-Kane, Qualcomm |
| |
| === Description |
| |
| This extension allows an application to modify the locations of samples |
| within a pixel used in rasterization. |
| Additionally, it allows applications to specify different sample locations |
| for each pixel in a group of adjacent pixels, which can: increase |
| antialiasing quality (particularly if a custom resolve shader is used that |
| takes advantage of these different locations). |
| |
| It is common for implementations to optimize the storage of depth values by |
| storing values that can: be used to reconstruct depth at each sample |
| location, rather than storing separate depth values for each sample. |
| For example, the depth values from a single triangle may: be represented |
| using plane equations. |
| When the depth value for a sample is needed, it is automatically evaluated |
| at the sample location. |
| Modifying the sample locations causes the reconstruction to no longer |
| evaluate the same depth values as when the samples were originally |
| generated, thus the depth aspect of a depth/stencil attachment must: be |
| cleared before rendering to it using different sample locations. |
| |
| Some implementations may: need to evaluate depth image values while |
| performing image layout transitions. |
| To accommodate this, instances of the slink:VkSampleLocationsInfoEXT |
| structure can: be specified for each situation where an explicit or |
| automatic layout transition has to take place. |
| slink:VkSampleLocationsInfoEXT can: be chained from |
| slink:VkImageMemoryBarrier structures to provide sample locations for layout |
| transitions performed by flink:vkCmdWaitEvents and |
| flink:vkCmdPipelineBarrier calls, and |
| slink:VkRenderPassSampleLocationsBeginInfoEXT can: be chained from |
| slink:VkRenderPassBeginInfo to provide sample locations for layout |
| transitions performed implicitly by a render pass instance. |
| |
| include::{generated}/interfaces/VK_EXT_sample_locations.txt[] |
| |
| === Version History |
| |
| * Revision 1, 2017-08-02 (Daniel Rakos) |
| - Internal revisions |