// Copyright (c) 2016-2020 NVIDIA Corporation
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_NV_sample_mask_override_coverage.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2016-12-08
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/NV/SPV_NV_sample_mask_override_coverage.html[`SPV_NV_sample_mask_override_coverage`]
  - This extension provides API support for
    https://www.khronos.org/registry/OpenGL/extensions/NV/NV_sample_mask_override_coverage.txt[`GL_NV_sample_mask_override_coverage`]
*Contributors*::
  - Daniel Koch, NVIDIA
  - Jeff Bolz, NVIDIA

=== Description

This extension adds support for the following SPIR-V extension in Vulkan:

  * `SPV_NV_sample_mask_override_coverage`

The extension provides access to the code:OverrideCoverageNV decoration
under the code:SampleMaskOverrideCoverageNV capability.
Adding this decoration to a variable with the code:SampleMask builtin
decoration allows the shader to modify the coverage mask and affect which
samples are used to process the fragment.

When using GLSL source-based shader languages, the code:override_coverage
layout qualifier from `GL_NV_sample_mask_override_coverage` maps to the
code:OverrideCoverageNV decoration.
To use the code:override_coverage layout qualifier in GLSL the
`GL_NV_sample_mask_override_coverage` extension must be enabled.
Behavior is described in the `GL_NV_sample_mask_override_coverage` extension
spec.

include::{generated}/interfaces/VK_NV_sample_mask_override_coverage.txt[]

=== New Variable Decoration

  * <<interfaces-builtin-variables-samplemask,OverrideCoverageNV in
    SampleMask>>

=== New SPIR-V Capabilities

  * <<spirvenv-capabilities-table-SampleMaskOverrideCoverageNV,SampleMaskOverrideCoverageNV>>

=== Version History

  * Revision 1, 2016-12-08 (Piers Daniell)
    - Internal revisions
