vulkan-3.4: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_conservative_rasterization

Synopsis

Documentation

data PhysicalDeviceConservativeRasterizationPropertiesEXT Source #

VkPhysicalDeviceConservativeRasterizationPropertiesEXT - Structure describing conservative raster properties that can be supported by an implementation

Members

The members of the PhysicalDeviceConservativeRasterizationPropertiesEXT structure describe the following implementation-dependent limits:

Description

If the PhysicalDeviceConservativeRasterizationPropertiesEXT structure is included in the pNext chain of PhysicalDeviceProperties2, it is filled with the implementation-dependent limits and properties.

Valid Usage (Implicit)

See Also

Bool32, StructureType

Constructors

PhysicalDeviceConservativeRasterizationPropertiesEXT 

Fields

  • primitiveOverestimationSize :: Float

    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 :: Float

    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 :: Float

    extraPrimitiveOverestimationSizeGranularity is the granularity of extra overestimation that can be specified in the pipeline state between 0.0 and maxExtraPrimitiveOverestimationSize 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 :: Bool

    primitiveUnderestimation is true if the implementation supports the CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT conservative rasterization mode in addition to CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT. Otherwise the implementation only supports CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT.

  • conservativePointAndLineRasterization :: Bool

    conservativePointAndLineRasterization is 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 :: Bool

    degenerateTrianglesRasterized is 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 is 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 :: Bool

    degenerateLinesRasterized is false if the implementation culls lines that become zero length after they are quantized to the fixed-point rasterization pixel grid. degenerateLinesRasterized is true if zero length lines are not culled and the provoking vertex attributes and depth value are used for the fragments.

  • fullyCoveredFragmentShaderInputVariable :: Bool

    fullyCoveredFragmentShaderInputVariable is true if the implementation supports the SPIR-V builtin fragment shader input variable FullyCoveredEXT which specifies that conservative rasterization is enabled and the fragment area is fully covered by the generating primitive.

  • conservativeRasterizationPostDepthCoverage :: Bool

    conservativeRasterizationPostDepthCoverage is true if the implementation supports conservative rasterization with the PostDepthCoverage execution mode enabled. When supported the SampleMask built-in input variable will reflect the coverage after the early per-fragment depth and stencil tests are applied even when conservative rasterization is enabled. Otherwise PostDepthCoverage execution mode must not be used when conservative rasterization is enabled.

Instances

Instances details
Eq PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Show PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Generic PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Storable PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

FromCStruct PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

ToCStruct PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Zero PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

type Rep PhysicalDeviceConservativeRasterizationPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

type Rep PhysicalDeviceConservativeRasterizationPropertiesEXT = D1 ('MetaData "PhysicalDeviceConservativeRasterizationPropertiesEXT" "Vulkan.Extensions.VK_EXT_conservative_rasterization" "vulkan-3.4-inplace" 'False) (C1 ('MetaCons "PhysicalDeviceConservativeRasterizationPropertiesEXT" 'PrefixI 'True) (((S1 ('MetaSel ('Just "primitiveOverestimationSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Float) :*: S1 ('MetaSel ('Just "maxExtraPrimitiveOverestimationSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Float)) :*: (S1 ('MetaSel ('Just "extraPrimitiveOverestimationSizeGranularity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Float) :*: S1 ('MetaSel ('Just "primitiveUnderestimation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "conservativePointAndLineRasterization") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "degenerateTrianglesRasterized") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool)) :*: (S1 ('MetaSel ('Just "degenerateLinesRasterized") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "fullyCoveredFragmentShaderInputVariable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "conservativeRasterizationPostDepthCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool))))))

data PipelineRasterizationConservativeStateCreateInfoEXT Source #

VkPipelineRasterizationConservativeStateCreateInfoEXT - Structure specifying conservative raster state

Valid Usage (Implicit)

See Also

ConservativeRasterizationModeEXT, PipelineRasterizationConservativeStateCreateFlagsEXT, StructureType

Constructors

PipelineRasterizationConservativeStateCreateInfoEXT 

Fields

Instances

Instances details
Eq PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Show PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Generic PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Storable PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

FromCStruct PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

ToCStruct PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Zero PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

type Rep PipelineRasterizationConservativeStateCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

type Rep PipelineRasterizationConservativeStateCreateInfoEXT = D1 ('MetaData "PipelineRasterizationConservativeStateCreateInfoEXT" "Vulkan.Extensions.VK_EXT_conservative_rasterization" "vulkan-3.4-inplace" 'False) (C1 ('MetaCons "PipelineRasterizationConservativeStateCreateInfoEXT" 'PrefixI 'True) (S1 ('MetaSel ('Just "flags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineRasterizationConservativeStateCreateFlagsEXT) :*: (S1 ('MetaSel ('Just "conservativeRasterizationMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ConservativeRasterizationModeEXT) :*: S1 ('MetaSel ('Just "extraPrimitiveOverestimationSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Float))))

newtype PipelineRasterizationConservativeStateCreateFlagsEXT Source #

VkPipelineRasterizationConservativeStateCreateFlagsEXT - Reserved for future use

Description

PipelineRasterizationConservativeStateCreateFlagsEXT is a bitmask type for setting a mask, but is currently reserved for future use.

See Also

PipelineRasterizationConservativeStateCreateInfoEXT

Instances

Instances details
Eq PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Ord PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Read PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Show PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Storable PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Bits PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Methods

(.&.) :: PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT #

(.|.) :: PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT #

xor :: PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT #

complement :: PipelineRasterizationConservativeStateCreateFlagsEXT -> PipelineRasterizationConservativeStateCreateFlagsEXT #

shift :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

rotate :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

zeroBits :: PipelineRasterizationConservativeStateCreateFlagsEXT #

bit :: Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

setBit :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

clearBit :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

complementBit :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

testBit :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> Bool #

bitSizeMaybe :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Maybe Int #

bitSize :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int #

isSigned :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Bool #

shiftL :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

unsafeShiftL :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

shiftR :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

unsafeShiftR :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

rotateL :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

rotateR :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int -> PipelineRasterizationConservativeStateCreateFlagsEXT #

popCount :: PipelineRasterizationConservativeStateCreateFlagsEXT -> Int #

Zero PipelineRasterizationConservativeStateCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

newtype ConservativeRasterizationModeEXT Source #

VkConservativeRasterizationModeEXT - Specify the conservative rasterization mode

See Also

PipelineRasterizationConservativeStateCreateInfoEXT

Bundled Patterns

pattern CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT :: ConservativeRasterizationModeEXT

CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT specifies that conservative rasterization is disabled and rasterization proceeds as normal.

pattern CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT :: ConservativeRasterizationModeEXT

CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT specifies that conservative rasterization is enabled in overestimation mode.

pattern CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT :: ConservativeRasterizationModeEXT

CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT specifies that conservative rasterization is enabled in underestimation mode.

Instances

Instances details
Eq ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Ord ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Read ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Show ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Storable ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

Zero ConservativeRasterizationModeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_conservative_rasterization

type EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME = "VK_EXT_conservative_rasterization" Source #