/ appendices / VK_EXT_sample_locations.txt
VK_EXT_sample_locations.txt
 1  include::meta/VK_EXT_sample_locations.txt[]
 2  
 3  *Last Modified Date*::
 4      2017-08-02
 5  *Contributors*::
 6    - Mais Alnasser, AMD
 7    - Matthaeus G. Chajdas, AMD
 8    - Maciej Jesionowski, AMD
 9    - Daniel Rakos, AMD
10    - Slawomir Grajewski, Intel
11    - Jeff Bolz, NVIDIA
12    - Bill Licea-Kane, Qualcomm
13  
14  This extension allows an application to modify the locations of samples
15  within a pixel used in rasterization.
16  Additionally, it allows applications to specify different sample locations
17  for each pixel in a group of adjacent pixels, which can: increase
18  antialiasing quality (particularly if a custom resolve shader is used that
19  takes advantage of these different locations).
20  
21  It is common for implementations to optimize the storage of depth values by
22  storing values that can: be used to reconstruct depth at each sample
23  location, rather than storing separate depth values for each sample.
24  For example, the depth values from a single triangle may: be represented
25  using plane equations.
26  When the depth value for a sample is needed, it is automatically evaluated
27  at the sample location.
28  Modifying the sample locations causes the reconstruction to no longer
29  evaluate the same depth values as when the samples were originally
30  generated, thus the depth aspect of a depth/stencil attachment must: be
31  cleared before rendering to it using different sample locations.
32  
33  Some implementations may: need to evaluate depth image values while
34  performing image layout transitions.
35  To accommodate this, instances of the slink:VkSampleLocationsInfoEXT
36  structure can: be specified for each situation where an explicit or
37  automatic layout transition has to take place.
38  slink:VkSampleLocationsInfoEXT can: be chained from
39  slink:VkImageMemoryBarrier structures to provide sample locations for layout
40  transitions performed by flink:vkCmdWaitEvents and
41  flink:vkCmdPipelineBarrier calls, and
42  slink:VkRenderPassSampleLocationsBeginInfoEXT can: be chained from
43  slink:VkRenderPassBeginInfo to provide sample locations for layout
44  transitions performed implicitly by a render pass instance.
45  
46  === New Object Types
47  
48  None.
49  
50  === New Enum Constants
51  
52    * Extending elink:VkImageCreateFlagBits:
53    ** ename:VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
54    * Extending elink:VkStructureType:
55    ** ename:VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
56    ** ename:VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
57    ** ename:VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT
58    ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
59    ** ename:VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT
60    * Extending elink:VkDynamicState:
61    ** ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT
62  
63  === New Enums
64  
65  None.
66  
67  === New Structures
68  
69    * slink:VkSampleLocationEXT
70    * slink:VkSampleLocationsInfoEXT
71    * slink:VkAttachmentSampleLocationsEXT
72    * slink:VkSubpassSampleLocationsEXT
73    * slink:VkRenderPassSampleLocationsBeginInfoEXT
74    * slink:VkPipelineSampleLocationsStateCreateInfoEXT
75    * slink:VkPhysicalDeviceSampleLocationsPropertiesEXT
76    * slink:VkMultisamplePropertiesEXT
77  
78  === New Functions
79  
80    * flink:vkCmdSetSampleLocationsEXT
81    * flink:vkGetPhysicalDeviceMultisamplePropertiesEXT
82  
83  === Issues
84  
85  None.
86  
87  === Version History
88  
89   * Revision 1, 2017-08-02 (Daniel Rakos)
90     - Internal revisions