// Copyright 2017-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
    2017-07-19
*IP Status*::
    No known IP claims.
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/EXT/SPV_EXT_shader_stencil_export.html[`SPV_EXT_shader_stencil_export`]
  - This extension provides API support for
    https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_stencil_export.txt[`GL_ARB_shader_stencil_export`]
*Contributors*::
  - Dominik Witczak, AMD
  - Daniel Rakos, AMD
  - Rex Xu, AMD

=== Description

This extension adds support for the SPIR-V extension
`SPV_EXT_shader_stencil_export`, providing a mechanism whereby a shader may
generate the stencil reference value per invocation.
When stencil testing is enabled, this allows the test to be performed
against the value generated in the shader.

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

=== Version History

 * Revision 1, 2017-07-19 (Dominik Witczak)
   - Initial draft
