mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-20 01:58:06 +00:00
* Update release number to 96. Public Issues: * Fix typo in `vk.xml` for `structextends` attribute of slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870). * Fix links in optimized PDF output (public PR 879). Internal Issues: * Add a link to GitHub contributors in the <<credits, Other Credits>> section (internal issue 808). * Clarify the behavior of command aliases described in the <<versions,Core Revisions>> and <<initialization-functionpointers, Command Function Pointers>> sections and the registry schema document with respect to whether they are or are not the same entry point, and what the behaviour of the ftext:vkGet*ProcAddr commands is for each alias (internal issue 1462). * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for writing to code:Layer and code:viewportIndex to apply to any vertex processing stage (internal issue 1475). * Make sparse image creation optional for Y'C~B~C~R~ formats in the <<features-required-format-support, Required Format Support>> section and the <<features-formats-requiring-sampler-ycbcr-conversion, Formats requiring sampler Y'C~B~C~R~ conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue 1476). * Modify the valid usage statement for flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the pname:maxTransformFeedbackBufferDataStride limit rather than the pname:maxVertexInputBindingStride limit, which is a better match for transform feedback related operations (internal issue 1487). * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to have the `uint32_t` type. This is an imcompatible change to an EXT that's very recently released; although this is against usual Vulkan WG policy, we discussed and consider this an acceptable risk, but have polled the mesa-dev list in case there are use cases we missed (internal issue 1492). * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948). * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395` (internal MR 2950). * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many minor markup issues discovered by the script (internal MR 2955). * Update `BUILD.md` to the current Ruby version (2.5.3), and make some corresponding updates to per-platform build instructions (internal MR 2956). * Fix binding numbers and other details in flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks (internal MR 2960). * Remove some nautovalidity="true" in `vk.xml` for NV extensions where it's clearly wrong (internal MR 2970).
78 lines
2.7 KiB
Plaintext
78 lines
2.7 KiB
Plaintext
include::meta/VK_NV_framebuffer_mixed_samples.txt[]
|
|
|
|
*Last Modified Date*::
|
|
2017-06-04
|
|
*Contributors*::
|
|
- Jeff Bolz, NVIDIA
|
|
|
|
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
|
|
|
|
* Extending elink:VkStructureType
|
|
** ename:VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
|
|
|
|
=== New Enums
|
|
|
|
* elink:VkCoverageModulationModeNV
|
|
* tlink:VkPipelineCoverageModulationStateCreateFlagsNV
|
|
|
|
=== New Structures
|
|
|
|
* slink:VkPipelineCoverageModulationStateCreateInfoNV
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== Issues
|
|
|
|
None.
|
|
|
|
=== Version History
|
|
|
|
* Revision 1, 2017-06-04 (Jeff Bolz)
|
|
- Internal revisions
|