Vulkan-Docs/doc/specs/vulkan/appendices/VK_EXT_sample_locations.txt
Jon Leech 5436521608 Change log for October 20, 2017 Vulkan 1.0.64 spec update:
* Bump API patch number and header version number to 64 for this update.

Github Issues:

  * Add chapter name to the PDF page footer (public pull request 458).
  * Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST
    status to etext:VK_ERROR_DEVICE_LOST (public pull request 502).
  * Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report
    callback function pointer to match the validation layer behavior (public
    issue 534).
  * Document experimental KHX extensions and alternate vendor author IDs
    also ending in X in more detail in the <<extensions, Layers &
    Extensions>> appendix, the extensions section of the style guide, and
    the registry schema description document (public issues 536, 580).
  * Fix references to ptext:pDepthStencil to properly refer to
    pname:pDepthStencilState or pname:pRasterizationState as appropriate in
    the slink:VkGraphicsPipelineCreateInfo description (public issue 542).
  * Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo
    valid usage (public pull request 571).

Internal Issues:

  * Update the style guide to describe how to write LaTeX math expressions
    in table cells (internal issue 908).
  * Define how framebuffer-local dependencies work between subpasses with
    the same or different numbers of samples, in the
    slink:VkSubpassDescription and <<synchronization-framebuffer-regions,
    Framebuffer Region Dependencies>> sections. This clarifies which samples
    in an input attachment you are allowed to access after a
    framebuffer-local dependency (internal issue 915).
  * Specify which storage classes can have an initializer in the
    <<spirvenv-module-validation, Validation Rules within a Module>> section
    (internal issue 1023).
  * Use "LOD" consistently for "level-of-detail", to eliminate spelling
    inconsistencies. The term is already standardized in the Glossary
    (internal issue 1027).

Other Issues:

  * Fix false positives in Makefile dependencies when rules fail, by
    deleting partially-made targets.

New Extensions:

  * `VK_AMD_shader_info`
2017-10-20 17:18:37 -07:00

91 lines
3.2 KiB
Plaintext

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