• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2017-2020 NVIDIA Corporation
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_NV_framebuffer_mixed_samples.txt[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2017-06-04
11*Contributors*::
12  - Jeff Bolz, NVIDIA
13
14=== Description
15
16This extension allows multisample rendering with a raster and depth/stencil
17sample count that is larger than the color sample count.
18Rasterization and the results of the depth and stencil tests together
19determine the portion of a pixel that is "`covered`".
20It can be useful to evaluate coverage at a higher frequency than color
21samples are stored.
22This coverage is then "`reduced`" to a collection of covered color samples,
23each having an opacity value corresponding to the fraction of the color
24sample covered.
25The opacity can optionally be blended into individual color samples.
26
27Rendering with fewer color samples than depth/stencil samples greatly
28reduces the amount of memory and bandwidth consumed by the color buffer.
29However, converting the coverage values into opacity introduces artifacts
30where triangles share edges and may: not be suitable for normal triangle
31mesh rendering.
32
33One expected use case for this functionality is Stencil-then-Cover path
34rendering (similar to the OpenGL GL_NV_path_rendering extension).
35The stencil step determines the coverage (in the stencil buffer) for an
36entire path at the higher sample frequency, and then the cover step draws
37the path into the lower frequency color buffer using the coverage
38information to antialias path edges.
39With this two-step process, internal edges are fully covered when
40antialiasing is applied and there is no corruption on these edges.
41
42The key features of this extension are:
43
44  * It allows render pass and framebuffer objects to be created where the
45    number of samples in the depth/stencil attachment in a subpass is a
46    multiple of the number of samples in the color attachments in the
47    subpass.
48  * A coverage reduction step is added to Fragment Operations which converts
49    a set of covered raster/depth/stencil samples to a set of color samples
50    that perform blending and color writes.
51    The coverage reduction step also includes an optional coverage
52    modulation step, multiplying color values by a fractional opacity
53    corresponding to the number of associated raster/depth/stencil samples
54    covered.
55
56include::{generated}/interfaces/VK_NV_framebuffer_mixed_samples.txt[]
57
58=== Version History
59
60  * Revision 1, 2017-06-04 (Jeff Bolz)
61    - Internal revisions
62