mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-22 02:58:16 +00:00
* Bump API patch number and header version number to 53 for this update. Github Issues: Internal Issues: * Clarify mappings of coordinates for mutable, compatible image views in slink:VkImageViewCreateInfo (internal issue 815). * Make ename:VK_BIND_SFR_BIT require a logical device with multiple physical devices, so that standard sparse image block dimensions are only required on systems that support multi-GPU (internal issue 835). * Convert all files from use of // refBegin .. // refEnd comments to delimit ref pages, to use of open blocks, and update style guide accordingly (internal issue 839). * Add valid usage for slink:VkWriteDescriptorSet when performing updates to a ename:VK_STORAGE_IMAGE descriptor with layout ename:VK_IMAGE_LAYOUT_GENERAL. * Add a hack to the validity generator script to support an odd interaction between flink:vkCmdFillBuffer and an extension (internal issue 853). * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage, which was already covered by implicit valid usage (internal issue 854). * Update implicit validity generator script to properly handle the pname:sType and pname:pNext members of "returnedonly" structures (internal issue 874). * Note that slink:VkApplicationInfo::pname:pApplicationName & slink:VkApplicationInfo::pname:pEngineName are optional, and add missing implicit valid usage statements for flink:vkDestroyInstance. * Added missing valid usage for flink:vkCmdWriteTimestamp to require a timestamp query pool. * Simplify and/or split "`non-atomic`" valid usage statements. New Extensions: * `VK_AMD_gpu_shader_int16` * `VK_EXT_blend_operation_advanced` * `VK_EXT_sampler_filter_minmax` * `VK_NV_framebuffer_mixed_samples` ----------------------------------------------------- Note: the 1.0.52 spec wasn't published on github, so the 1.0.53 release combines both change sets. ----------------------------------------------------- Change log for June 13, 2017 Vulkan 1.0.52 spec update: * Bump API patch number and header version number to 52 for this update. Github Issues: Internal Issues: * Clarify behavior when non-coherent memory has <<memory-device-unmap-does-not-flush, not been flushed before being unmapped>> (internal issue 819). * Fix description of code:WorkgroupSize builtin to note it decorates an object, not a variable (internal issue 836). * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style equations are rendered properly (internal issue 845). * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`" section of the Procedures and Conventions document stating that any new handle type requires a corresponding entry in the elink:VkObjectType enumerated type (internal issue 856). * Update style guide to use slink macro for Vulkan handle type names, and define narrow conditions under which to use the *name and *text macros instead of *link (internal issue 886). * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>> extension on VK_KHX_device_group_creation to +vk.xml+ and the extension appendix. * Change the copyright on Vulkan specification asciidoc *source* files to CC-BY 4.0, and update the proprietary Khronos copyright applied to the generated *output* formats (internal issue 327). This enables broader re-use and modification of the Vulkan specification sources, while not affecting the Reciprocal IP License between Vulkan Adopters and Working Group Members. New Extensions: * `VK_NV_fill_rectangle` * `VK_NV_fragment_coverage_to_color`
87 lines
2.9 KiB
Plaintext
87 lines
2.9 KiB
Plaintext
[[VK_NV_framebuffer_mixed_samples]]
|
|
== VK_NV_framebuffer_mixed_samples
|
|
*Name String*::
|
|
VK_NV_framebuffer_mixed_samples
|
|
*Extension Type*::
|
|
Device extension
|
|
*Registered Extension Number*::
|
|
153
|
|
*Status*::
|
|
Complete
|
|
*Last Modified Data*::
|
|
2017-06-04
|
|
*Revision*::
|
|
1
|
|
*Dependencies*::
|
|
- This extension is written against version 1.0 of the Vulkan API.
|
|
- This extension requires Vulkan 1.0.
|
|
*Contributors*::
|
|
*Contact*::
|
|
- Jeff Bolz (jbolz 'at' nvidia.com)
|
|
*Overview*::
|
|
+
|
|
--
|
|
This extension allows multisample rendering with a raster and depth/stencil
|
|
sample count that is larger than the color sample count.
|
|
Rasterization and the results of the depth and stencil tests together
|
|
determine the portion of a pixel that is "covered".
|
|
It can be useful to evaluate coverage at a higher frequency than color
|
|
samples are stored.
|
|
This coverage is then "reduced" to a collection of covered color samples,
|
|
each having an opacity value corresponding to the fraction of the color
|
|
sample covered.
|
|
The opacity can optionally be blended into individual color samples.
|
|
|
|
Rendering with fewer color samples than depth/stencil samples greatly
|
|
reduces the amount of memory and bandwidth consumed by the color buffer.
|
|
However, converting the coverage values into opacity introduces artifacts
|
|
where triangles share edges and may: not be suitable for normal triangle
|
|
mesh rendering.
|
|
|
|
One expected use case for this functionality is Stencil-then-Cover path
|
|
rendering (similar to the OpenGL GL_NV_path_rendering extension).
|
|
The stencil step determines the coverage (in the stencil buffer) for an
|
|
entire path at the higher sample frequency, and then the cover step draws
|
|
the path into the lower frequency color buffer using the coverage
|
|
information to antialias path edges.
|
|
With this two-step process, internal edges are fully covered when
|
|
antialiasing is applied and there is no corruption on these edges.
|
|
|
|
The key features of this extension are:
|
|
|
|
* It allows render pass and framebuffer objects to be created where the
|
|
number of samples in the depth/stencil attachment in a subpass is a
|
|
multiple of the number of samples in the color attachments in the
|
|
subpass.
|
|
|
|
* A coverage reduction step is added to Fragment Operations which converts
|
|
a set of covered raster/depth/stencil samples to a set of color samples
|
|
that perform blending and color writes.
|
|
The coverage reduction step also includes an optional coverage modulation
|
|
step, multiplying color values by a fractional opacity corresponding to
|
|
the number of associated raster/depth/stencil samples covered.
|
|
--
|
|
|
|
=== New Object Types
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
None.
|
|
|
|
=== New Enums
|
|
* elink:VkCoverageModulationModeNV
|
|
* elink:VkPipelineCoverageModulationStateCreateFlagsNV
|
|
|
|
=== New Structures
|
|
* slink:VkPipelineCoverageModulationStateCreateInfoNV
|
|
|
|
=== New Functions
|
|
None.
|
|
|
|
=== Issues
|
|
None.
|
|
|
|
=== Version History
|
|
* Revision 1, 2017-06-04 (Jeff Bolz)
|
|
- Internal revisions
|