| include::meta/VK_EXT_sample_locations.txt[] |
| |
| *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 |
| |
| 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. |
| |
| === New Object Types |
| |
| None. |
| |
| === New Enum Constants |
| |
| * Extending elink:VkImageCreateFlagBits: |
| ** ename:VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT |
| * Extending elink:VkStructureType: |
| ** ename:VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT |
| ** ename:VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT |
| ** ename:VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT |
| ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT |
| ** ename:VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT |
| * Extending elink:VkDynamicState: |
| ** ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT |
| |
| === New Enums |
| |
| None. |
| |
| === New Structures |
| |
| * slink:VkSampleLocationEXT |
| * slink:VkSampleLocationsInfoEXT |
| * slink:VkAttachmentSampleLocationsEXT |
| * slink:VkSubpassSampleLocationsEXT |
| * slink:VkRenderPassSampleLocationsBeginInfoEXT |
| * slink:VkPipelineSampleLocationsStateCreateInfoEXT |
| * slink:VkPhysicalDeviceSampleLocationsPropertiesEXT |
| * slink:VkMultisamplePropertiesEXT |
| |
| === New Functions |
| |
| * flink:vkCmdSetSampleLocationsEXT |
| * flink:vkGetPhysicalDeviceMultisamplePropertiesEXT |
| |
| === Issues |
| |
| None. |
| |
| === Version History |
| |
| * Revision 1, 2017-08-02 (Daniel Rakos) |
| - Internal revisions |