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

[open,refpage='VkShaderModuleValidationCacheCreateInfoEXT',desc='Specify validation cache to use during shader module creation',type='structs']
--
To use a slink:VkValidationCacheEXT to cache shader validation results, add
a slink:VkShaderModuleValidationCacheCreateInfoEXT structure to the
pname:pNext chain of the slink:VkShaderModuleCreateInfo structure,
specifying the cache object to use.

The sname:VkShaderModuleValidationCacheCreateInfoEXT struct is defined as:

include::{generated}/api/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:validationCache is the validation cache object from which the
    results of prior validation attempts will be written, and to which new
    validation results for this slink:VkShaderModule will be written (if not
    already present).

include::{generated}/validity/structs/VkShaderModuleValidationCacheCreateInfoEXT.txt[]
--
