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

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

=== Other Extension Metadata

*Last Modified Date*::
    2019-08-19
*IP Status*::
    No known IP claims.
*Contributors*::
  - Tobin Ehlis, Google
  - Courtney Goeltzenleuchter, Google

=== Description

This extension provides the slink:VkValidationFlagsEXT struct that can be
included in the pname:pNext chain of the slink:VkInstanceCreateInfo
structure passed as the pname:pCreateInfo parameter of
flink:vkCreateInstance.
The structure contains an array of elink:VkValidationCheckEXT values that
will be disabled by the validation layers.

=== Deprecation by `VK_EXT_validation_features`
Functionality in this extension is subsumed into the
`apiext:VK_EXT_validation_features` extension.

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

=== Version History

 * Revision 2, 2019-08-19 (Mark Lobodzinski)
   - Marked as deprecated
 * Revision 1, 2016-08-26 (Courtney Goeltzenleuchter)
   - Initial draft
