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

Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Synopsis

Documentation

data PipelineCoverageModulationStateCreateInfoNV Source #

VkPipelineCoverageModulationStateCreateInfoNV - Structure specifying parameters controlling coverage modulation

Description

If coverageModulationTableEnable is FALSE, then for each color sample the associated bits of the fragment’s coverage are counted and divided by the number of associated bits to produce a modulation factor R in the range (0,1] (a value of zero would have been killed due to a color coverage of 0). Specifically:

  • N = value of rasterizationSamples
  • M = value of AttachmentDescription::samples for any color attachments
  • R = popcount(associated coverage bits) / (N / M)

If coverageModulationTableEnable is TRUE, the value R is computed using a programmable lookup table. The lookup table has N / M elements, and the element of the table is selected by:

  • R = pCoverageModulationTable[popcount(associated coverage bits)-1]

Note that the table does not have an entry for popcount(associated coverage bits) = 0, because such samples would have been killed.

The values of pCoverageModulationTable may be rounded to an implementation-dependent precision, which is at least as fine as 1 / N, and clamped to [0,1].

For each color attachment with a floating point or normalized color format, each fragment output color value is replicated to M values which can each be modulated (multiplied) by that color sample’s associated value of R. Which components are modulated is controlled by coverageModulationMode.

If this structure is not present, it is as if coverageModulationMode is COVERAGE_MODULATION_MODE_NONE_NV.

If the coverage reduction mode is COVERAGE_REDUCTION_MODE_TRUNCATE_NV, each color sample is associated with only a single coverage sample. In this case, it is as if coverageModulationMode is COVERAGE_MODULATION_MODE_NONE_NV.

Valid Usage

  • If coverageModulationTableEnable is TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass

Valid Usage (Implicit)

See Also

Bool32, CoverageModulationModeNV, PipelineCoverageModulationStateCreateFlagsNV, StructureType

Constructors

PipelineCoverageModulationStateCreateInfoNV 

Fields

Instances

Instances details
Show PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Generic PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

FromCStruct PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

ToCStruct PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Zero PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

type Rep PipelineCoverageModulationStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

type Rep PipelineCoverageModulationStateCreateInfoNV = D1 ('MetaData "PipelineCoverageModulationStateCreateInfoNV" "Vulkan.Extensions.VK_NV_framebuffer_mixed_samples" "vulkan-3.6-inplace" 'False) (C1 ('MetaCons "PipelineCoverageModulationStateCreateInfoNV" 'PrefixI 'True) ((S1 ('MetaSel ('Just "flags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PipelineCoverageModulationStateCreateFlagsNV) :*: S1 ('MetaSel ('Just "coverageModulationMode") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CoverageModulationModeNV)) :*: (S1 ('MetaSel ('Just "coverageModulationTableEnable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: (S1 ('MetaSel ('Just "coverageModulationTableCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: S1 ('MetaSel ('Just "coverageModulationTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Vector Float))))))

newtype PipelineCoverageModulationStateCreateFlagsNV Source #

VkPipelineCoverageModulationStateCreateFlagsNV - Reserved for future use

Description

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

See Also

PipelineCoverageModulationStateCreateInfoNV

Instances

Instances details
Eq PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Ord PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Read PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Show PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Storable PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Bits PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Methods

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

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

xor :: PipelineCoverageModulationStateCreateFlagsNV -> PipelineCoverageModulationStateCreateFlagsNV -> PipelineCoverageModulationStateCreateFlagsNV #

complement :: PipelineCoverageModulationStateCreateFlagsNV -> PipelineCoverageModulationStateCreateFlagsNV #

shift :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

rotate :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

zeroBits :: PipelineCoverageModulationStateCreateFlagsNV #

bit :: Int -> PipelineCoverageModulationStateCreateFlagsNV #

setBit :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

clearBit :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

complementBit :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

testBit :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> Bool #

bitSizeMaybe :: PipelineCoverageModulationStateCreateFlagsNV -> Maybe Int #

bitSize :: PipelineCoverageModulationStateCreateFlagsNV -> Int #

isSigned :: PipelineCoverageModulationStateCreateFlagsNV -> Bool #

shiftL :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

unsafeShiftL :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

shiftR :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

unsafeShiftR :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

rotateL :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

rotateR :: PipelineCoverageModulationStateCreateFlagsNV -> Int -> PipelineCoverageModulationStateCreateFlagsNV #

popCount :: PipelineCoverageModulationStateCreateFlagsNV -> Int #

Zero PipelineCoverageModulationStateCreateFlagsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

newtype CoverageModulationModeNV Source #

VkCoverageModulationModeNV - Specify the coverage modulation mode

See Also

PipelineCoverageModulationStateCreateInfoNV

Bundled Patterns

pattern COVERAGE_MODULATION_MODE_NONE_NV :: CoverageModulationModeNV

COVERAGE_MODULATION_MODE_NONE_NV specifies that no components are multiplied by the modulation factor.

pattern COVERAGE_MODULATION_MODE_RGB_NV :: CoverageModulationModeNV

COVERAGE_MODULATION_MODE_RGB_NV specifies that the red, green, and blue components are multiplied by the modulation factor.

pattern COVERAGE_MODULATION_MODE_ALPHA_NV :: CoverageModulationModeNV

COVERAGE_MODULATION_MODE_ALPHA_NV specifies that the alpha component is multiplied by the modulation factor.

pattern COVERAGE_MODULATION_MODE_RGBA_NV :: CoverageModulationModeNV

COVERAGE_MODULATION_MODE_RGBA_NV specifies that all components are multiplied by the modulation factor.

Instances

Instances details
Eq CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Ord CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Read CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Show CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Storable CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

Zero CoverageModulationModeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_framebuffer_mixed_samples

type NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME = "VK_NV_framebuffer_mixed_samples" Source #