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