vulkan-3.1.0.0: Bindings to the Vulkan graphics API.

Safe HaskellNone
LanguageHaskell2010

Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Synopsis

Documentation

cmdBindShadingRateImageNV :: forall io. MonadIO io => CommandBuffer -> ImageView -> ImageLayout -> io () Source #

vkCmdBindShadingRateImageNV - Bind a shading rate image on a command buffer

Parameters

  • commandBuffer is the command buffer into which the command will be recorded.
  • imageView is an image view handle specifying the shading rate image. imageView may be set to NULL_HANDLE, which is equivalent to specifying a view of an image filled with zero values.
  • imageLayout is the layout that the image subresources accessible from imageView will be in when the shading rate image is accessed.

Valid Usage

Valid Usage (Implicit)

  • If imageView is not NULL_HANDLE, imageView must be a valid ImageView handle
  • imageLayout must be a valid ImageLayout value
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics

See Also

CommandBuffer, ImageLayout, ImageView

cmdSetViewportShadingRatePaletteNV :: forall io. MonadIO io => CommandBuffer -> ("firstViewport" ::: Word32) -> ("shadingRatePalettes" ::: Vector ShadingRatePaletteNV) -> io () Source #

vkCmdSetViewportShadingRatePaletteNV - Set shading rate image palettes on a command buffer

Parameters

  • commandBuffer is the command buffer into which the command will be recorded.
  • firstViewport is the index of the first viewport whose shading rate palette is updated by the command.
  • viewportCount is the number of viewports whose shading rate palettes are updated by the command.
  • pShadingRatePalettes is a pointer to an array of ShadingRatePaletteNV structures defining the palette for each viewport.

Valid Usage

Valid Usage (Implicit)

  • pShadingRatePalettes must be a valid pointer to an array of viewportCount valid ShadingRatePaletteNV structures
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • viewportCount must be greater than 0

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics

See Also

CommandBuffer, ShadingRatePaletteNV

cmdSetCoarseSampleOrderNV :: forall io. MonadIO io => CommandBuffer -> CoarseSampleOrderTypeNV -> ("customSampleOrders" ::: Vector CoarseSampleOrderCustomNV) -> io () Source #

vkCmdSetCoarseSampleOrderNV - Set sample order for coarse fragments on a command buffer

Parameters

  • commandBuffer is the command buffer into which the command will be recorded.
  • sampleOrderType specifies the mechanism used to order coverage samples in fragments larger than one pixel.
  • customSampleOrderCount specifies the number of custom sample orderings to use when ordering coverage samples.
  • pCustomSampleOrders is a pointer to an array of CoarseSampleOrderCustomNV structures, each of which specifies the coverage sample order for a single combination of fragment area and coverage sample count.

Description

If sampleOrderType is COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, the coverage sample order used for any combination of fragment area and coverage sample count not enumerated in pCustomSampleOrders will be identical to that used for COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV.

Valid Usage

  • The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members.

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels Render Pass Scope Supported Queue Types Pipeline Type
Primary Secondary Both Graphics

See Also

CoarseSampleOrderCustomNV, CoarseSampleOrderTypeNV, CommandBuffer

data ShadingRatePaletteNV Source #

VkShadingRatePaletteNV - Structure specifying a single shading rate palette

Valid Usage (Implicit)

See Also

PipelineViewportShadingRateImageStateCreateInfoNV, ShadingRatePaletteEntryNV, cmdSetViewportShadingRatePaletteNV

Constructors

ShadingRatePaletteNV 

Fields

data PipelineViewportShadingRateImageStateCreateInfoNV Source #

VkPipelineViewportShadingRateImageStateCreateInfoNV - Structure specifying parameters controlling shading rate image usage

Description

If this structure is not present, shadingRateImageEnable is considered to be FALSE, and the shading rate image and palettes are not used.

Valid Usage

Valid Usage (Implicit)

  • If viewportCount is not 0, and pShadingRatePalettes is not NULL, pShadingRatePalettes must be a valid pointer to an array of viewportCount valid ShadingRatePaletteNV structures

See Also

Bool32, ShadingRatePaletteNV, StructureType

Constructors

PipelineViewportShadingRateImageStateCreateInfoNV 

Fields

Instances
Show PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

data PhysicalDeviceShadingRateImageFeaturesNV Source #

VkPhysicalDeviceShadingRateImageFeaturesNV - Structure describing shading rate image features that can be supported by an implementation

Members

The members of the PhysicalDeviceShadingRateImageFeaturesNV structure describe the following features:

Description

See Shading Rate Image for more information.

If the PhysicalDeviceShadingRateImageFeaturesNV structure is included in the pNext chain of PhysicalDeviceFeatures2, it is filled with values indicating whether the feature is supported. PhysicalDeviceShadingRateImageFeaturesNV can also be included in the pNext chain of DeviceCreateInfo to enable features.

Valid Usage (Implicit)

See Also

Bool32, StructureType

Constructors

PhysicalDeviceShadingRateImageFeaturesNV 

Fields

  • shadingRateImage :: Bool

    shadingRateImage indicates that the implementation supports the use of a shading rate image to derive an effective shading rate for fragment processing. It also indicates that the implementation supports the ShadingRateNV SPIR-V execution mode.

  • shadingRateCoarseSampleOrder :: Bool

    shadingRateCoarseSampleOrder indicates that the implementation supports a user-configurable ordering of coverage samples in fragments larger than one pixel.

Instances
Show PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Storable PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

data PhysicalDeviceShadingRateImagePropertiesNV Source #

VkPhysicalDeviceShadingRateImagePropertiesNV - Structure describing shading rate image limits that can be supported by an implementation

Members

The members of the PhysicalDeviceShadingRateImagePropertiesNV structure describe the following implementation-dependent properties related to the shading rate image feature:

Description

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

Valid Usage (Implicit)

See Also

Extent2D, StructureType

Constructors

PhysicalDeviceShadingRateImagePropertiesNV 

Fields

  • shadingRateTexelSize :: Extent2D

    shadingRateTexelSize indicates the width and height of the portion of the framebuffer corresponding to each texel in the shading rate image.

  • shadingRatePaletteSize :: Word32

    shadingRatePaletteSize indicates the maximum number of palette entries supported for the shading rate image.

  • shadingRateMaxCoarseSamples :: Word32

    shadingRateMaxCoarseSamples specifies the maximum number of coverage samples supported in a single fragment. If the product of the fragment size derived from the base shading rate and the number of coverage samples per pixel exceeds this limit, the final shading rate will be adjusted so that its product does not exceed the limit.

data CoarseSampleLocationNV Source #

VkCoarseSampleLocationNV - Structure specifying parameters controlling shading rate image usage

Valid Usage

See Also

CoarseSampleOrderCustomNV

Constructors

CoarseSampleLocationNV 

Fields

  • pixelX :: Word32

    pixelX must be less than the width (in pixels) of the fragment.

  • pixelY :: Word32

    pixelY must be less than the height (in pixels) of the fragment.

  • sample :: Word32

    sample must be less than the number of coverage samples in each pixel belonging to the fragment.

Instances
Show CoarseSampleLocationNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Storable CoarseSampleLocationNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct CoarseSampleLocationNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct CoarseSampleLocationNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero CoarseSampleLocationNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

data CoarseSampleOrderCustomNV Source #

VkCoarseSampleOrderCustomNV - Structure specifying parameters controlling shading rate image usage

Description

When using a custom sample ordering, element i in pSampleLocations specifies a specific pixel and per-pixel coverage sample number that corresponds to the coverage sample numbered i in the multi-pixel fragment.

Valid Usage

  • shadingRate must be a shading rate that generates fragments with more than one pixel.
  • sampleCount must correspond to a sample count enumerated in SampleCountFlags whose corresponding bit is set in PhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts.
  • sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate.
  • sampleLocationCount must be less than or equal to the value of PhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples.
  • The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure CoarseSampleOrderCustomNV.

Valid Usage (Implicit)

  • pSampleLocations must be a valid pointer to an array of sampleLocationCount CoarseSampleLocationNV structures
  • sampleLocationCount must be greater than 0

See Also

CoarseSampleLocationNV, PipelineViewportCoarseSampleOrderStateCreateInfoNV, ShadingRatePaletteEntryNV, cmdSetCoarseSampleOrderNV

Constructors

CoarseSampleOrderCustomNV 

Fields

data PipelineViewportCoarseSampleOrderStateCreateInfoNV Source #

VkPipelineViewportCoarseSampleOrderStateCreateInfoNV - Structure specifying parameters controlling sample order in coarse fragments

Description

If this structure is not present, sampleOrderType is considered to be COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV.

If sampleOrderType is COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, the coverage sample order used for any combination of fragment area and coverage sample count not enumerated in pCustomSampleOrders will be identical to that used for COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV.

If the pipeline was created with DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, the contents of this structure (if present) are ignored, and the coverage sample order is instead specified by cmdSetCoarseSampleOrderNV.

Valid Usage

  • The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members.

Valid Usage (Implicit)

See Also

CoarseSampleOrderCustomNV, CoarseSampleOrderTypeNV, StructureType

Constructors

PipelineViewportCoarseSampleOrderStateCreateInfoNV 

Fields

Instances
Show PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

newtype ShadingRatePaletteEntryNV Source #

VkShadingRatePaletteEntryNV - Shading rate image palette entry types

Description

The following table indicates the width and height (in pixels) of each fragment generated using the indicated shading rate, as well as the maximum number of fragment shader invocations launched for each fragment. When processing regions of a primitive that have a shading rate of SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, no fragments will be generated in that region.

Shading Rate Width Height Invocations
SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV 0 0 0
SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV 1 1 16
SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV 1 1 8
SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV 1 1 4
SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV 1 1 2
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV 1 1 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV 2 1 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV 1 2 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV 2 2 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV 4 2 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV 2 4 1
SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV 4 4 1

See Also

CoarseSampleOrderCustomNV, ShadingRatePaletteNV

Instances
Eq ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Ord ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Read ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Show ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Storable ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

newtype CoarseSampleOrderTypeNV Source #

VkCoarseSampleOrderTypeNV - Shading rate image sample ordering types

See Also

PipelineViewportCoarseSampleOrderStateCreateInfoNV, cmdSetCoarseSampleOrderNV

Bundled Patterns

pattern COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV :: CoarseSampleOrderTypeNV

COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV specifies that coverage samples will be ordered in an implementation-dependent manner.

pattern COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV :: CoarseSampleOrderTypeNV

COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV specifies that coverage samples will be ordered according to the array of custom orderings provided in either the pCustomSampleOrders member of PipelineViewportCoarseSampleOrderStateCreateInfoNV or the pCustomSampleOrders member of cmdSetCoarseSampleOrderNV.

pattern COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV :: CoarseSampleOrderTypeNV

COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV specifies that coverage samples will be ordered sequentially, sorted first by pixel coordinate (in row-major order) and then by coverage sample number.

pattern COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV :: CoarseSampleOrderTypeNV

COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV specifies that coverage samples will be ordered sequentially, sorted first by coverage sample number and then by pixel coordinate (in row-major order).

Instances
Eq CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Ord CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Read CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Show CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Storable CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

Zero CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Graphics.Vulkan.Extensions.VK_NV_shading_rate_image

type NV_SHADING_RATE_IMAGE_EXTENSION_NAME = "VK_NV_shading_rate_image" Source #

pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #