// Copyright 2019-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
// common to all creating of shaders using SPIR-V
  * [[VUID-{refpage}-codeSize-08735]]
    {prefixCondition} pname:codeSize must: be a multiple of 4
  * [[VUID-{refpage}-pCode-08736]]
     {prefixCondition} pname:pCode must: point to valid SPIR-V code,
     formatted and packed as described by the <<spirv-spec,Khronos SPIR-V
     Specification>>
  * [[VUID-{refpage}-pCode-08737]]
     {prefixCondition} pname:pCode must: adhere to the validation rules
     described by the <<spirvenv-module-validation,Validation Rules within a
     Module>> section of the <<spirvenv-capabilities,SPIR-V Environment>>
     appendix
  * [[VUID-{refpage}-pCode-08738]]
     {prefixCondition} pname:pCode must: declare the code:Shader capability
     for SPIR-V code
  * [[VUID-{refpage}-pCode-08739]]
     {prefixCondition} pname:pCode must: not declare any capability that is
     not supported by the API, as described by the
     <<spirvenv-module-validation,Capabilities>> section of the
     <<spirvenv-capabilities,SPIR-V Environment>> appendix
  * [[VUID-{refpage}-pCode-08740]]
     {prefixCondition} and pname:pCode declares any of the capabilities
     listed in the <<spirvenv-capabilities-table,SPIR-V Environment>>
     appendix, one of the corresponding requirements must: be satisfied
  * [[VUID-{refpage}-pCode-08741]]
     {prefixCondition} pname:pCode must: not declare any SPIR-V extension
     that is not supported by the API, as described by the
     <<spirvenv-extensions,Extension>> section of the
     <<spirvenv-capabilities,SPIR-V Environment>> appendix
  * [[VUID-{refpage}-pCode-08742]]
     {prefixCondition} and pname:pCode declares any of the SPIR-V extensions
     listed in the <<spirvenv-extensions-table,SPIR-V Environment>>
     appendix, one of the corresponding requirements must: be satisfied
// Common Valid Usage
