# VkCoarseSampleOrderCustomNV(3) Manual Page

## Name

VkCoarseSampleOrderCustomNV - Structure specifying parameters controlling shading rate image usage

Loading… please wait.

## C Specification

The `VkCoarseSampleOrderCustomNV` structure is defined as:

    // Provided by VK_NV_shading_rate_image
    typedef struct VkCoarseSampleOrderCustomNV {
        VkShadingRatePaletteEntryNV        shadingRate;
        uint32_t                           sampleCount;
        uint32_t                           sampleLocationCount;
        const VkCoarseSampleLocationNV*    pSampleLocations;
    } VkCoarseSampleOrderCustomNV;

## Members

- `shadingRate` is a shading rate palette entry that identifies the fragment width and height for the combination of fragment area and per-pixel coverage sample count to control.

- `sampleCount` identifies the per-pixel coverage sample count for the combination of fragment area and coverage sample count to control.

- `sampleLocationCount` specifies the number of sample locations in the custom ordering.

- `pSampleLocations` is a pointer to an array of VkCoarseSampleLocationNV structures specifying the location of each sample in the custom ordering.

## Description

The `VkCoarseSampleOrderCustomNV` structure is used with a coverage sample ordering type of `VK_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

- VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073
  `shadingRate` must be a shading rate that generates fragments with more than one pixel

- VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074
  `sampleCount` must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::`framebufferNoAttachmentsSampleCounts`

- VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075
  `sampleLocationCount` must be equal to the product of `sampleCount`, the fragment width for `shadingRate`, and the fragment height for `shadingRate`

- VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076
  `sampleLocationCount` must be less than or equal to the value of `VkPhysicalDeviceShadingRateImagePropertiesNV`::`shadingRateMaxCoarseSamples`

- VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077
  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)

- VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter
  `shadingRate` must be a valid VkShadingRatePaletteEntryNV value

- VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter
  `pSampleLocations` must be a valid pointer to an array of `sampleLocationCount` VkCoarseSampleLocationNV structures

- VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength
  `sampleLocationCount` must be greater than `0`

## See Also

VK_NV_shading_rate_image, VkCoarseSampleLocationNV, VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkShadingRatePaletteEntryNV, vkCmdSetCoarseSampleOrderNV

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0