Class VkCoarseSampleOrderCustomNV

All Implemented Interfaces:
AutoCloseable, NativeResource, Pointer

public class VkCoarseSampleOrderCustomNV extends Struct<VkCoarseSampleOrderCustomNV> implements NativeResource
Structure specifying parameters controlling shading rate image usage.
Description

The VkCoarseSampleOrderCustomNV 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 VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::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 VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples
  • The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV
Valid Usage (Implicit)
  • shadingRate must be a valid VkShadingRatePaletteEntryNV value
  • pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures
  • sampleLocationCount must be greater than 0
See Also

VkCoarseSampleLocationNV, VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, CmdSetCoarseSampleOrderNV

Layout


 struct VkCoarseSampleOrderCustomNV {
     VkShadingRatePaletteEntryNV shadingRate();
     uint32_t sampleCount();
     uint32_t sampleLocationCount();
     VkCoarseSampleLocationNV const * pSampleLocations();
 }