// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See valid_enum_values_generator.py for modifications

/***************************************************************************
 *
 * Copyright (c) 2015-2023 The Khronos Group Inc.
 * Copyright (c) 2015-2023 Valve Corporation
 * Copyright (c) 2015-2023 LunarG, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ****************************************************************************/

// NOLINTBEGIN
// clang-format off
template<> std::vector<VkResult> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPipelineCacheHeaderVersion> ValidationObject::ValidParamValues() const;
template<> std::vector<VkImageLayout> ValidationObject::ValidParamValues() const;
template<> std::vector<VkObjectType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFormat> ValidationObject::ValidParamValues() const;
template<> std::vector<VkImageTiling> ValidationObject::ValidParamValues() const;
template<> std::vector<VkImageType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkQueryType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSharingMode> ValidationObject::ValidParamValues() const;
template<> std::vector<VkComponentSwizzle> ValidationObject::ValidParamValues() const;
template<> std::vector<VkImageViewType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBlendFactor> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBlendOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCompareOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDynamicState> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFrontFace> ValidationObject::ValidParamValues() const;
template<> std::vector<VkVertexInputRate> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPrimitiveTopology> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPolygonMode> ValidationObject::ValidParamValues() const;
template<> std::vector<VkStencilOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkLogicOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBorderColor> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFilter> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSamplerAddressMode> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSamplerMipmapMode> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDescriptorType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAttachmentLoadOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAttachmentStoreOp> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPipelineBindPoint> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCommandBufferLevel> ValidationObject::ValidParamValues() const;
template<> std::vector<VkIndexType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSubpassContents> ValidationObject::ValidParamValues() const;
template<> std::vector<VkTessellationDomainOrigin> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSamplerYcbcrModelConversion> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSamplerYcbcrRange> ValidationObject::ValidParamValues() const;
template<> std::vector<VkChromaLocation> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDescriptorUpdateTemplateType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSamplerReductionMode> ValidationObject::ValidParamValues() const;
template<> std::vector<VkSemaphoreType> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPresentModeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkColorSpaceKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkQueueGlobalPriorityKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFragmentShadingRateCombinerOpKHR> ValidationObject::ValidParamValues() const;
#ifdef VK_ENABLE_BETA_EXTENSIONS
template<> std::vector<VkVideoEncodeTuningModeKHR> ValidationObject::ValidParamValues() const;
#endif //VK_ENABLE_BETA_EXTENSIONS
template<> std::vector<VkComponentTypeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkScopeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDebugReportObjectTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkRasterizationOrderAMD> ValidationObject::ValidParamValues() const;
template<> std::vector<VkShaderInfoTypeAMD> ValidationObject::ValidParamValues() const;
template<> std::vector<VkValidationCheckEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPipelineRobustnessBufferBehaviorEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPipelineRobustnessImageBehaviorEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDisplayPowerStateEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDeviceEventTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDisplayEventTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkViewportCoordinateSwizzleNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDiscardRectangleModeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkConservativeRasterizationModeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBlendOverlapEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCoverageModulationModeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkShadingRatePaletteEntryNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCoarseSampleOrderTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkRayTracingShaderGroupTypeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkGeometryTypeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAccelerationStructureTypeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCopyAccelerationStructureModeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAccelerationStructureMemoryRequirementsTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkTimeDomainEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkMemoryOverallocationBehaviorAMD> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPerformanceConfigurationTypeINTEL> ValidationObject::ValidParamValues() const;
template<> std::vector<VkQueryPoolSamplingModeINTEL> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPerformanceOverrideTypeINTEL> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPerformanceParameterTypeINTEL> ValidationObject::ValidParamValues() const;
template<> std::vector<VkPerformanceValueTypeINTEL> ValidationObject::ValidParamValues() const;
template<> std::vector<VkValidationFeatureEnableEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkValidationFeatureDisableEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCoverageReductionModeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkProvokingVertexModeEXT> ValidationObject::ValidParamValues() const;
#ifdef VK_USE_PLATFORM_WIN32_KHR
template<> std::vector<VkFullScreenExclusiveEXT> ValidationObject::ValidParamValues() const;
#endif //VK_USE_PLATFORM_WIN32_KHR
template<> std::vector<VkLineRasterizationModeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkIndirectCommandsTokenTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDepthBiasRepresentationEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFragmentShadingRateTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkFragmentShadingRateNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAccelerationStructureMotionInstanceTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDeviceFaultAddressTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDeviceFaultVendorBinaryHeaderVersionEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDeviceAddressBindingTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkMicromapTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBuildMicromapModeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCopyMicromapModeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAccelerationStructureCompatibilityKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkAccelerationStructureBuildTypeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkDirectDriverLoadingModeLUNARG> ValidationObject::ValidParamValues() const;
template<> std::vector<VkOpticalFlowPerformanceLevelNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkOpticalFlowSessionBindingPointNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkShaderCodeTypeEXT> ValidationObject::ValidParamValues() const;
template<> std::vector<VkLatencyMarkerNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkOutOfBandQueueTypeNV> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBlockMatchWindowCompareModeQCOM> ValidationObject::ValidParamValues() const;
template<> std::vector<VkCubicFilterWeightsQCOM> ValidationObject::ValidParamValues() const;
template<> std::vector<VkBuildAccelerationStructureModeKHR> ValidationObject::ValidParamValues() const;
template<> std::vector<VkShaderGroupShaderKHR> ValidationObject::ValidParamValues() const;
// clang-format on

// NOLINTEND
