Class NVFramebufferMixedSamples
covered”. It can be useful to evaluate coverage at a higher frequency than color samples are stored. This coverage is then “reduced” to a collection of covered color samples, each having an opacity value corresponding to the fraction of the color sample covered. The opacity can optionally be blended into individual color samples.
Rendering with fewer color samples than depth/stencil samples greatly reduces the amount of memory and bandwidth consumed by the color buffer. However, converting the coverage values into opacity introduces artifacts where triangles share edges and may not be suitable for normal triangle mesh rendering.
One expected use case for this functionality is Stencil-then-Cover path rendering (similar to the OpenGL GL_NV_path_rendering extension). The stencil step determines the coverage (in the stencil buffer) for an entire path at the higher sample frequency, and then the cover step draws the path into the lower frequency color buffer using the coverage information to antialias path edges. With this two-step process, internal edges are fully covered when antialiasing is applied and there is no corruption on these edges.
The key features of this extension are:
- It allows render pass and framebuffer objects to be created where the number of samples in the depth/stencil attachment in a subpass is a multiple of the number of samples in the color attachments in the subpass.
- A coverage reduction step is added to Fragment Operations which converts a set of covered raster/depth/stencil samples to a set of color samples that perform blending and color writes. The coverage reduction step also includes an optional coverage modulation step, multiplying color values by a fractional opacity corresponding to the number of associated raster/depth/stencil samples covered.
- Name String
VK_NV_framebuffer_mixed_samples- Extension Type
- Device extension
- Registered Extension Number
- 153
- Revision
- 1
- API Interactions
- Interacts with VK_VERSION_1_3
- Interacts with VK_KHR_dynamic_rendering
- Contact
- Jeff Bolz jeffbolznv
Other Extension Metadata
- Last Modified Date
- 2017-06-04
- Contributors
- Jeff Bolz, NVIDIA
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intVkCoverageModulationModeNV - Specify the coverage modulation modestatic final intVkCoverageModulationModeNV - Specify the coverage modulation modestatic final intVkCoverageModulationModeNV - Specify the coverage modulation modestatic final intVkCoverageModulationModeNV - Specify the coverage modulation modestatic final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
-
Field Details
-
VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION
public static final int VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV
public static final int VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NVExtendsVkStructureType.- See Also:
-
VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NVExtendsVkStructureType.- See Also:
-
VK_COVERAGE_MODULATION_MODE_NONE_NV
public static final int VK_COVERAGE_MODULATION_MODE_NONE_NVVkCoverageModulationModeNV - Specify the coverage modulation modeDescription
COVERAGE_MODULATION_MODE_NONE_NVspecifies that no components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGB_NVspecifies that the red, green, and blue components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_ALPHA_NVspecifies that the alpha component is multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGBA_NVspecifies that all components are multiplied by the modulation factor.
See Also
VkPipelineCoverageModulationStateCreateInfoNV,CmdSetCoverageModulationModeNV- See Also:
-
VK_COVERAGE_MODULATION_MODE_RGB_NV
public static final int VK_COVERAGE_MODULATION_MODE_RGB_NVVkCoverageModulationModeNV - Specify the coverage modulation modeDescription
COVERAGE_MODULATION_MODE_NONE_NVspecifies that no components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGB_NVspecifies that the red, green, and blue components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_ALPHA_NVspecifies that the alpha component is multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGBA_NVspecifies that all components are multiplied by the modulation factor.
See Also
VkPipelineCoverageModulationStateCreateInfoNV,CmdSetCoverageModulationModeNV- See Also:
-
VK_COVERAGE_MODULATION_MODE_ALPHA_NV
public static final int VK_COVERAGE_MODULATION_MODE_ALPHA_NVVkCoverageModulationModeNV - Specify the coverage modulation modeDescription
COVERAGE_MODULATION_MODE_NONE_NVspecifies that no components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGB_NVspecifies that the red, green, and blue components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_ALPHA_NVspecifies that the alpha component is multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGBA_NVspecifies that all components are multiplied by the modulation factor.
See Also
VkPipelineCoverageModulationStateCreateInfoNV,CmdSetCoverageModulationModeNV- See Also:
-
VK_COVERAGE_MODULATION_MODE_RGBA_NV
public static final int VK_COVERAGE_MODULATION_MODE_RGBA_NVVkCoverageModulationModeNV - Specify the coverage modulation modeDescription
COVERAGE_MODULATION_MODE_NONE_NVspecifies that no components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGB_NVspecifies that the red, green, and blue components are multiplied by the modulation factor.COVERAGE_MODULATION_MODE_ALPHA_NVspecifies that the alpha component is multiplied by the modulation factor.COVERAGE_MODULATION_MODE_RGBA_NVspecifies that all components are multiplied by the modulation factor.
See Also
VkPipelineCoverageModulationStateCreateInfoNV,CmdSetCoverageModulationModeNV- See Also:
-