/ 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