1// Copyright 2017-2024 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_EXT_sample_locations.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2017-08-02 11*Contributors*:: 12 - Mais Alnasser, AMD 13 - Matthaeus G. Chajdas, AMD 14 - Maciej Jesionowski, AMD 15 - Daniel Rakos, AMD 16 - Slawomir Grajewski, Intel 17 - Jeff Bolz, NVIDIA 18 - Bill Licea-Kane, Qualcomm 19 20=== Description 21 22This extension allows an application to modify the locations of samples 23within a pixel used in rasterization. 24Additionally, it allows applications to specify different sample locations 25for each pixel in a group of adjacent pixels, which can: increase 26antialiasing quality (particularly if a custom resolve shader is used that 27takes advantage of these different locations). 28 29It is common for implementations to optimize the storage of depth values by 30storing values that can: be used to reconstruct depth at each sample 31location, rather than storing separate depth values for each sample. 32For example, the depth values from a single triangle may: be represented 33using plane equations. 34When the depth value for a sample is needed, it is automatically evaluated 35at the sample location. 36Modifying the sample locations causes the reconstruction to no longer 37evaluate the same depth values as when the samples were originally 38generated, thus the depth aspect of a depth/stencil attachment must: be 39cleared before rendering to it using different sample locations. 40 41Some implementations may: need to evaluate depth image values while 42performing image layout transitions. 43To accommodate this, instances of the slink:VkSampleLocationsInfoEXT 44structure can: be specified for each situation where an explicit or 45automatic layout transition has to take place. 46slink:VkSampleLocationsInfoEXT can: be chained from 47slink:VkImageMemoryBarrier structures to provide sample locations for layout 48transitions performed by flink:vkCmdWaitEvents and 49flink:vkCmdPipelineBarrier calls, and 50slink:VkRenderPassSampleLocationsBeginInfoEXT can: be chained from 51slink:VkRenderPassBeginInfo to provide sample locations for layout 52transitions performed implicitly by a render pass instance. 53 54include::{generated}/interfaces/VK_EXT_sample_locations.adoc[] 55 56=== Version History 57 58 * Revision 1, 2017-08-02 (Daniel Rakos) 59 ** Internal revisions 60