Structures
VkPhysicalDeviceConservativeRasterizationPropertiesEXT
Structure describing conservative raster properties that can be supported by an implementation
The VkPhysicalDeviceConservativeRasterizationPropertiesEXT
structure
is defined as:
typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
VkStructureType sType;
void* pNext;
float primitiveOverestimationSize;
float maxExtraPrimitiveOverestimationSize;
float extraPrimitiveOverestimationSizeGranularity;
VkBool32 primitiveUnderestimation;
VkBool32 conservativePointAndLineRasterization;
VkBool32 degenerateTrianglesRasterized;
VkBool32 degenerateLinesRasterized;
VkBool32 fullyCoveredFragmentShaderInputVariable;
VkBool32 conservativeRasterizationPostDepthCoverage;
} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.-
primitiveOverestimationSize
is the size in pixels the generating primitive is increased at each of its edges during conservative rasterization overestimation mode. Even with a size of 0.0, conservative rasterization overestimation rules still apply and if any part of the pixel rectangle is covered by the generating primitive, fragments are generated for the entire pixel. However implementations may make the pixel coverage area even more conservative by increasing the size of the generating primitive. maxExtraPrimitiveOverestimationSize
is the maximum size in pixels of extra overestimation the implementation supports in the pipeline state. A value of 0.0 means the implementation does not support any additional overestimation of the generating primitive during conservative rasterization. A value above 0.0 allows the application to further increase the size of the generating primitive during conservative rasterization overestimation.extraPrimitiveOverestimationSizeGranularity
is the granularity of extra overestimation that can be specified in the pipeline state between 0.0 andmaxExtraPrimitiveOverestimationSize
inclusive. A value of 0.0 means the implementation can use the smallest representable non-zero value in the screen space pixel fixed-point grid.-
primitiveUnderestimation
isVK_TRUE
if the implementation supports theVK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
conservative rasterization mode in addition toVK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
. Otherwise the implementation only supportsVK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
. conservativePointAndLineRasterization
isVK_TRUE
if the implementation supports conservative rasterization of point and line primitives as well as triangle primitives. Otherwise the implementation only supports triangle primitives.degenerateTrianglesRasterized
isVK_FALSE
if the implementation culls primitives generated from triangles that become zero area after they are quantized to the fixed-point rasterization pixel grid.degenerateTrianglesRasterized
isVK_TRUE
if these primitives are not culled and the provoking vertex attributes and depth value are used for the fragments. The primitive area calculation is done on the primitive generated from the clipped triangle if applicable. Zero area primitives are backfacing and the application can enable backface culling if desired.-
degenerateLinesRasterized
isVK_FALSE
if the implementation culls lines that become zero length after they are quantized to the fixed-point rasterization pixel grid.degenerateLinesRasterized
isVK_TRUE
if zero length lines are not culled and the provoking vertex attributes and depth value are used for the fragments. fullyCoveredFragmentShaderInputVariable
isVK_TRUE
if the implementation supports the SPIR-V builtin fragment shader input variableFullyCoveredEXT
specifying that conservative rasterization is enabled and the fragment area is fully covered by the generating primitive.conservativeRasterizationPostDepthCoverage
isVK_TRUE
if the implementation supports conservative rasterization with thePostDepthCoverage
execution mode enabled. Otherwise thePostDepthCoverage
execution mode must not be used when conservative rasterization is enabled.
If the VkPhysicalDeviceConservativeRasterizationPropertiesEXT
structure is included in the pNext
chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT