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