• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include::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
14This extension allows an application to modify the locations of samples
15within a pixel used in rasterization.
16Additionally, it allows applications to specify different sample locations
17for each pixel in a group of adjacent pixels, which can: increase
18antialiasing quality (particularly if a custom resolve shader is used that
19takes advantage of these different locations).
20
21It is common for implementations to optimize the storage of depth values by
22storing values that can: be used to reconstruct depth at each sample
23location, rather than storing separate depth values for each sample.
24For example, the depth values from a single triangle may: be represented
25using plane equations.
26When the depth value for a sample is needed, it is automatically evaluated
27at the sample location.
28Modifying the sample locations causes the reconstruction to no longer
29evaluate the same depth values as when the samples were originally
30generated, thus the depth aspect of a depth/stencil attachment must: be
31cleared before rendering to it using different sample locations.
32
33Some implementations may: need to evaluate depth image values while
34performing image layout transitions.
35To accommodate this, instances of the slink:VkSampleLocationsInfoEXT
36structure can: be specified for each situation where an explicit or
37automatic layout transition has to take place.
38slink:VkSampleLocationsInfoEXT can: be chained from
39slink:VkImageMemoryBarrier structures to provide sample locations for layout
40transitions performed by flink:vkCmdWaitEvents and
41flink:vkCmdPipelineBarrier calls, and
42slink:VkRenderPassSampleLocationsBeginInfoEXT can: be chained from
43slink:VkRenderPassBeginInfo to provide sample locations for layout
44transitions performed implicitly by a render pass instance.
45
46=== New Object Types
47
48None.
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
65None.
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
85None.
86
87=== Version History
88
89 * Revision 1, 2017-08-02 (Daniel Rakos)
90   - Internal revisions
91