/ appendices / VK_NV_coverage_reduction_mode.txt
VK_NV_coverage_reduction_mode.txt
 1  include::meta/VK_NV_coverage_reduction_mode.txt[]
 2  
 3  *Last Modified Date*::
 4    2019-01-29
 5  *Contributors*::
 6    - Kedarnath Thangudu, NVIDIA
 7    - Jeff Bolz, NVIDIA
 8  
 9  When using a framebuffer with mixed samples, a per-fragment coverage
10  reduction operation is performed which generates a color sample mask from
11  the coverage mask.
12  This extension defines the following modes to control how this reduction is
13  performed.
14  
15    * Merge: When there are more raster samples than color samples, there is
16      an implementation dependent association of each raster sample to a color
17      sample.
18      In the merge mode, the reduced color sample mask is computed such that
19      the bit for each color sample is 1 if any of the associated bits in the
20      fragment’s coverage is on, and 0 otherwise.
21      This is the default mode.
22  
23    * Truncate: When there are more raster samples (N) than color samples(M),
24      there is one to one association of the first M raster samples to the M
25      color samples and the coverage bits for the other raster samples are
26      ignored.
27  
28  When the number of raster samples is equal to the color samples, there is a
29  one to one mapping between them in either of the above modes.
30  
31  The new command
32  flink:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV can
33  be used to query the various raster, color, depth/stencil sample count and
34  reduction mode combinations that are supported by the implementation.
35  This extension would allow an implementation to support the behavior of both
36  `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
37  extensions simultaneously.
38  
39  
40  === New Object Types
41  
42  None.
43  
44  === New Enum Constants
45  
46    * Extending elink:VkStructureType
47    ** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV
48    ** ename:VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV
49    ** ename:VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV
50  
51  === New Enums
52  
53    * elink:VkCoverageReductionModeNV
54    * tlink:VkPipelineCoverageReductionStateCreateFlagsNV
55  
56  === New Structures
57  
58    * slink:VkPhysicalDeviceCoverageReductionModeFeaturesNV
59    * slink:VkPipelineCoverageReductionStateCreateInfoNV
60    * slink:VkFramebufferMixedSamplesCombinationNV
61  
62  === New Functions
63  
64   * flink:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
65  
66  === Issues
67  
68  None.
69  
70  === Version History
71  
72    * Revision 1, 2019-01-29 (Kedarnath Thangudu)
73      - Internal revisions