vulkan-3.24.4: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_NV_shading_rate_image

Description

Name

VK_NV_shading_rate_image - device extension

VK_NV_shading_rate_image

Name String
VK_NV_shading_rate_image
Extension Type
Device extension
Registered Extension Number
165
Revision
3
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
Contact

Other Extension Metadata

Last Modified Date
2019-07-18
Interactions and External Dependencies
Contributors
  • Pat Brown, NVIDIA
  • Carsten Rohde, NVIDIA
  • Jeff Bolz, NVIDIA
  • Daniel Koch, NVIDIA
  • Mathias Schott, NVIDIA
  • Matthew Netsch, Qualcomm Technologies, Inc.

Description

This extension allows applications to use a variable shading rate when processing fragments of rasterized primitives. By default, Vulkan will spawn one fragment shader for each pixel covered by a primitive. In this extension, applications can bind a shading rate image that can be used to vary the number of fragment shader invocations across the framebuffer. Some portions of the screen may be configured to spawn up to 16 fragment shaders for each pixel, while other portions may use a single fragment shader invocation for a 4x4 block of pixels. This can be useful for use cases like eye tracking, where the portion of the framebuffer that the user is looking at directly can be processed at high frequency, while distant corners of the image can be processed at lower frequency. Each texel in the shading rate image represents a fixed-size rectangle in the framebuffer, covering 16x16 pixels in the initial implementation of this extension. When rasterizing a primitive covering one of these rectangles, the Vulkan implementation reads a texel in the bound shading rate image and looks up the fetched value in a palette to determine a base shading rate.

In addition to the API support controlling rasterization, this extension also adds Vulkan support for the SPV_NV_shading_rate extension to SPIR-V. That extension provides two fragment shader variable decorations that allow fragment shaders to determine the shading rate used for processing the fragment:

  • FragmentSizeNV, which indicates the width and height of the set of pixels processed by the fragment shader.
  • InvocationsPerPixel, which indicates the maximum number of fragment shader invocations that could be spawned for the pixel(s) covered by the fragment.

When using SPIR-V in conjunction with the OpenGL Shading Language (GLSL), the fragment shader capabilities are provided by the GL_NV_shading_rate_image language extension and correspond to the built-in variables gl_FragmentSizeNV and gl_InvocationsPerPixelNV, respectively.

New Commands

New Structures

New Enums

New Enum Constants

Issues

  1. When using shading rates specifying “coarse” fragments covering multiple pixels, we will generate a combined coverage mask that combines the coverage masks of all pixels covered by the fragment. By default, these masks are combined in an implementation-dependent order. Should we provide a mechanism allowing applications to query or specify an exact order?

RESOLVED: Yes, this feature is useful for cases where most of the fragment shader can be evaluated once for an entire coarse fragment, but where some per-pixel computations are also required. For example, a per-pixel alpha test may want to kill all the samples for some pixels in a coarse fragment. This sort of test can be implemented using an output sample mask, but such a shader would need to know which bit in the mask corresponds to each sample in the coarse fragment. We are including a mechanism to allow applications to specify the orders of coverage samples for each shading rate and sample count, either as static pipeline state or dynamically via a command buffer. This portion of the extension has its own feature bit.

We will not be providing a query to determine the implementation-dependent default ordering. The thinking here is that if an application cares enough about the coarse fragment sample ordering to perform such a query, it could instead just set its own order, also using custom per-pixel sample locations if required.

  1. For the pipeline stage PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, should we specify a precise location in the pipeline the shading rate image is accessed (after geometry shading, but before the early fragment tests) or leave it under-specified in case there are other implementations that access the image in a different pipeline location?

RESOLVED We are specifying the pipeline stage to be between the final pre-rasterization shader stage (PIPELINE_STAGE_GEOMETRY_SHADER_BIT) and before the first stage used for fragment processing (PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT), which seems to be the natural place to access the shading rate image.

  1. How do centroid-sampled variables work with fragments larger than one pixel?

RESOLVED For single-pixel fragments, fragment shader inputs decorated with Centroid are sampled at an implementation-dependent location in the intersection of the area of the primitive being rasterized and the area of the pixel that corresponds to the fragment. With multi-pixel fragments, we follow a similar pattern, using the intersection of the primitive and the set of pixels corresponding to the fragment.

One important thing to keep in mind when using such “coarse” shading rates is that fragment attributes are sampled at the center of the fragment by default, regardless of the set of pixels/samples covered by the fragment. For fragments with a size of 4x4 pixels, this center location will be more than two pixels (1.5 * sqrt(2)) away from the center of the pixels at the corners of the fragment. When rendering a primitive that covers only a small part of a coarse fragment, sampling a color outside the primitive can produce overly bright or dark color values if the color values have a large gradient. To deal with this, an application can use centroid sampling on attributes where “extrapolation” artifacts can lead to overly bright or dark pixels. Note that this same problem also exists for multisampling with single-pixel fragments, but is less severe because it only affects certain samples of a pixel and such bright/dark samples may be averaged with other samples that do not have a similar problem.

Version History

  • Revision 3, 2019-07-18 (Mathias Schott)

    • Fully list extension interfaces in this appendix.
  • Revision 2, 2018-09-13 (Pat Brown)

    • Miscellaneous edits preparing the specification for publication.
  • Revision 1, 2018-08-08 (Pat Brown)

    • Internal revisions

See Also

CoarseSampleLocationNV, CoarseSampleOrderCustomNV, CoarseSampleOrderTypeNV, PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceShadingRateImagePropertiesNV, PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportShadingRateImageStateCreateInfoNV, ShadingRatePaletteEntryNV, ShadingRatePaletteNV, cmdBindShadingRateImageNV, cmdSetCoarseSampleOrderNV, cmdSetViewportShadingRatePaletteNV

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

cmdBindShadingRateImageNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ImageView

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

imageLayout is the layout that the image subresources accessible from imageView will be in when the shading rate image is accessed.

-> io () 

vkCmdBindShadingRateImageNV - Bind a shading rate image on a command buffer

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
  • This command must only be called outside of a video coding scope
  • 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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBoth Outside Graphics State

See Also

VK_NV_shading_rate_image, CommandBuffer, ImageLayout, ImageView

cmdSetViewportShadingRatePaletteNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> ("firstViewport" ::: Word32)

firstViewport is the index of the first viewport whose shading rate palette is updated by the command.

-> ("shadingRatePalettes" ::: Vector ShadingRatePaletteNV)

pShadingRatePalettes is a pointer to an array of ShadingRatePaletteNV structures defining the palette for each viewport.

-> io () 

vkCmdSetViewportShadingRatePaletteNV - Set shading rate image palettes dynamically for a command buffer

Description

This command sets the per-viewport shading rate image palettes for subsequent drawing commands when the graphics pipeline is created with DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV set in PipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the PipelineViewportShadingRateImageStateCreateInfoNV::pShadingRatePalettes values used to create the currently active pipeline.

Valid Usage

  • The sum of firstViewport and viewportCount must be between 1 and PhysicalDeviceLimits::maxViewports, inclusive
  • If the multiViewport feature is not enabled, firstViewport must be 0
  • If the multiViewport feature is not enabled, viewportCount must be 1

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
  • This command must only be called outside of a video coding scope
  • 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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBoth Outside Graphics State

See Also

VK_NV_shading_rate_image, CommandBuffer, ShadingRatePaletteNV

cmdSetCoarseSampleOrderNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> CoarseSampleOrderTypeNV

sampleOrderType specifies the mechanism used to order coverage samples in fragments larger than one pixel.

-> ("customSampleOrders" ::: Vector CoarseSampleOrderCustomNV)

pCustomSampleOrders is a pointer to an array of CoarseSampleOrderCustomNV structures, each structure specifying the coverage sample order for a single combination of fragment area and coverage sample count.

-> io () 

vkCmdSetCoarseSampleOrderNV - Set order of coverage samples for coarse fragments dynamically for a command buffer

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.

This command sets the order of coverage samples for subsequent drawing commands when the graphics pipeline is created with DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV set in PipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by the PipelineViewportCoarseSampleOrderStateCreateInfoNV values used to create the currently active pipeline.

Valid Usage

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

Valid Usage (Implicit)

  • sampleOrderType must be a valid CoarseSampleOrderTypeNV value
  • If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid CoarseSampleOrderCustomNV structures
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support graphics operations
  • This command must only be called outside of a video coding scope

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 LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryBoth Outside Graphics State

See Also

VK_NV_shading_rate_image, CoarseSampleOrderCustomNV, CoarseSampleOrderTypeNV, CommandBuffer

data ShadingRatePaletteNV Source #

VkShadingRatePaletteNV - Structure specifying a single shading rate palette

Valid Usage (Implicit)

See Also

VK_NV_shading_rate_image, 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

  • If the multiViewport feature is not enabled, viewportCount must be 0 or 1

Valid Usage (Implicit)

See Also

VK_NV_shading_rate_image, Bool32, ShadingRatePaletteNV, StructureType

Constructors

PipelineViewportShadingRateImageStateCreateInfoNV 

Fields

Instances

Instances details
Show PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero PipelineViewportShadingRateImageStateCreateInfoNV Source # 
Instance details

Defined in 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

This structure describes the following features:

Description

See Shading Rate Image for more information.

If the PhysicalDeviceShadingRateImageFeaturesNV structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceShadingRateImageFeaturesNV can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_NV_shading_rate_image, 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

Instances details
Storable PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Show PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Eq PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero PhysicalDeviceShadingRateImageFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

data PhysicalDeviceShadingRateImagePropertiesNV Source #

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

Description

If the PhysicalDeviceShadingRateImagePropertiesNV structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

These properties are related to the shading rate image feature.

Valid Usage (Implicit)

See Also

VK_NV_shading_rate_image, 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.

Instances

Instances details
Storable PhysicalDeviceShadingRateImagePropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Show PhysicalDeviceShadingRateImagePropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PhysicalDeviceShadingRateImagePropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PhysicalDeviceShadingRateImagePropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero PhysicalDeviceShadingRateImagePropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

data CoarseSampleLocationNV Source #

VkCoarseSampleLocationNV - Structure specifying parameters controlling shading rate image usage

Valid Usage

See Also

VK_NV_shading_rate_image, CoarseSampleOrderCustomNV

Constructors

CoarseSampleLocationNV 

Fields

  • pixelX :: Word32

    pixelX is added to the x coordinate of the upper-leftmost pixel of each fragment to identify the pixel containing the coverage sample.

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

  • pixelY :: Word32

    pixelY is added to the y coordinate of the upper-leftmost pixel of each fragment to identify the pixel containing the coverage sample.

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

  • sample :: Word32

    sample is the number of the coverage sample in the pixel identified by pixelX and pixelY.

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

Instances

Instances details
Storable CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Show CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Eq CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero CoarseSampleLocationNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

data CoarseSampleOrderCustomNV Source #

VkCoarseSampleOrderCustomNV - Structure specifying parameters controlling shading rate image usage

Description

The CoarseSampleOrderCustomNV structure is used with a coverage sample ordering type of COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV to specify the order of coverage samples for one combination of fragment width, fragment height, and coverage sample count.

When using a custom sample ordering, element j in pSampleLocations specifies a specific pixel location and sample index that corresponds to coverage index j 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

VK_NV_shading_rate_image, 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

VK_NV_shading_rate_image, CoarseSampleOrderCustomNV, CoarseSampleOrderTypeNV, StructureType

Constructors

PipelineViewportCoarseSampleOrderStateCreateInfoNV 

Fields

Instances

Instances details
Show PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

FromCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

ToCStruct PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero PipelineViewportCoarseSampleOrderStateCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

newtype ShadingRatePaletteEntryNV Source #

Instances

Instances details
Storable ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Read ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Show ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Eq ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Ord ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero ShadingRatePaletteEntryNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

newtype CoarseSampleOrderTypeNV Source #

VkCoarseSampleOrderTypeNV - Shading rate image sample ordering types

See Also

VK_NV_shading_rate_image, 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 sample index.

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 sample index and then by pixel coordinate (in row-major order).

Instances

Instances details
Storable CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Read CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Show CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Eq CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Ord CoarseSampleOrderTypeNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_shading_rate_image

Zero CoarseSampleOrderTypeNV Source # 
Instance details

Defined in 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 #