When overestimation is enabled, if any part of the primitive, including its edges, covers any part of the rectangular pixel area, including its sides, then a fragment is generated with all coverage samples turned on. This extension allows for some variation in implementations by accounting for differences in overestimation, where the generating primitive size is increased at each of its edges by some sub-pixel amount to further increase conservative pixel coverage. Implementations can allow the application to specify an extra overestimation beyond the base overestimation the implementation already does. It also allows implementations to either cull degenerate primitives or rasterize them.
When underestimation is enabled, fragments are only generated if the rectangular pixel area is fully covered by the generating primitive. If supported by the implementation, when a pixel rectangle is fully covered the fragment shader input variable builtin called FullyCoveredEXT is set to true. The shader variable works in either overestimation or underestimation mode.
Implementations can process degenerate triangles and lines by either discarding them or generating conservative fragments for them. Degenerate triangles are those that end up with zero area after the rasterizer quantizes them to the fixed-point pixel grid. Degenerate lines are those with zero length after quantization.
VK_EXT_conservative_rasterizationVK_KHR_get_physical_device_properties2 or Version 1.1SPV_EXT_fragment_fully_covered if the VkPhysicalDeviceConservativeRasterizationPropertiesEXT::fullyCoveredFragmentShaderInputVariable feature is used.SPV_KHR_post_depth_coverageif the VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage feature is used.GL_NV_conservative_raster_underestimation if the VkPhysicalDeviceConservativeRasterizationPropertiesEXT::fullyCoveredFragmentShaderInputVariable feature is used.| Modifier and Type | Field and Description |
|---|---|
| public static final int | VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
|
| public static final int | VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
|
| public static final int | VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
|
| public static final String | VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME
The extension name. |
| public static final int | VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION
The extension specification version. |
| public static final int | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
Extends |
| public static final int | VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT
Extends |
| Access | Constructor and Description |
|---|---|
| private |
| VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT | back to summary |
|---|---|
| public static final int VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
See Also
| |
| VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT | back to summary |
|---|---|
| public static final int VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
See Also
| |
| VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT | back to summary |
|---|---|
| public static final int VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode Description
See Also
| |
| VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME | back to summary |
|---|---|
| public static final String VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME The extension name. | |
| VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION | back to summary |
|---|---|
| public static final int VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION The extension specification version. | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT Extends Enum values: | |
| VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT | back to summary |
|---|---|
| public static final int VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT Extends Enum values: | |
| EXTConservativeRasterization | back to summary |
|---|---|
| private EXTConservativeRasterization() | |