| // Copyright 2018-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| [open,refpage='VkValidationFeaturesEXT',desc='Specify validation features to enable or disable for a Vulkan instance',type='structs'] |
| -- |
| When creating a Vulkan instance for which you wish to enable or disable |
| specific validation features, add a slink:VkValidationFeaturesEXT structure |
| to the pname:pNext chain of the slink:VkInstanceCreateInfo structure, |
| specifying the features to be enabled or disabled. |
| |
| include::{generated}/api/structs/VkValidationFeaturesEXT.txt[] |
| |
| * pname:sType is the type of this structure. |
| * pname:pNext is `NULL` or a pointer to a structure extending this |
| structure. |
| * pname:enabledValidationFeatureCount is the number of features to enable. |
| * pname:pEnabledValidationFeatures is a pointer to an array of |
| elink:VkValidationFeatureEnableEXT values specifying the validation |
| features to be enabled. |
| * pname:disabledValidationFeatureCount is the number of features to |
| disable. |
| * pname:pDisabledValidationFeatures is a pointer to an array of |
| elink:VkValidationFeatureDisableEXT values specifying the validation |
| features to be disabled. |
| |
| .Valid Usage |
| **** |
| * [[VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967]] |
| If the pname:pEnabledValidationFeatures array contains |
| ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, |
| then it must: also contain |
| ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT |
| * [[VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968]] |
| If the pname:pEnabledValidationFeatures array contains |
| ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must: not |
| contain ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT |
| **** |
| |
| include::{generated}/validity/structs/VkValidationFeaturesEXT.txt[] |
| -- |
| |
| [open,refpage='VkValidationFeatureEnableEXT',desc='Specify validation features to enable',type='enums'] |
| -- |
| Possible values of elements of the |
| slink:VkValidationFeaturesEXT::pname:pEnabledValidationFeatures array, |
| specifying validation features to be enabled, are: |
| |
| include::{generated}/api/enums/VkValidationFeatureEnableEXT.txt[] |
| |
| * ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT specifies that |
| GPU-assisted validation is enabled. |
| Activating this feature instruments shader programs to generate |
| additional diagnostic data. |
| This feature is disabled by default. |
| * ename:VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT |
| specifies that the validation layers reserve a descriptor set binding |
| slot for their own use. |
| The layer reports a value for |
| slink:VkPhysicalDeviceLimits::pname:maxBoundDescriptorSets that is one |
| less than the value reported by the device. |
| If the device supports the binding of only one descriptor set, the |
| validation layer does not perform GPU-assisted validation. |
| This feature is disabled by default. |
| * ename:VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT specifies that |
| Vulkan best-practices validation is enabled. |
| Activating this feature enables the output of warnings related to common |
| misuse of the API, but which are not explicitly prohibited by the |
| specification. |
| This feature is disabled by default. |
| * ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT specifies that the |
| layers will process code:debugPrintfEXT operations in shaders and send |
| the resulting output to the debug callback. |
| This feature is disabled by default. |
| * ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT |
| specifies that Vulkan synchronization validation is enabled. |
| This feature reports resource access conflicts due to missing or |
| incorrect synchronization operations between actions (Draw, Copy, |
| Dispatch, Blit) reading or writing the same regions of memory. |
| This feature is disabled by default. |
| -- |
| |
| [open,refpage='VkValidationFeatureDisableEXT',desc='Specify validation features to disable',type='enums'] |
| -- |
| Possible values of elements of the |
| slink:VkValidationFeaturesEXT::pname:pDisabledValidationFeatures array, |
| specifying validation features to be disabled, are: |
| |
| include::{generated}/api/enums/VkValidationFeatureDisableEXT.txt[] |
| |
| * ename:VK_VALIDATION_FEATURE_DISABLE_ALL_EXT specifies that all |
| validation checks are disabled. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT specifies that shader |
| validation is disabled. |
| This feature is enabled by default. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT specifies that |
| thread safety validation is disabled. |
| This feature is enabled by default. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT specifies that |
| stateless parameter validation is disabled. |
| This feature is enabled by default. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT specifies that |
| object lifetime validation is disabled. |
| This feature is enabled by default. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT specifies that core |
| validation checks are disabled. |
| This feature is enabled by default. |
| If this feature is disabled, the shader validation and GPU-assisted |
| validation features are also disabled. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT specifies that |
| protection against duplicate non-dispatchable object handles is |
| disabled. |
| This feature is enabled by default. |
| * ename:VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT |
| specifies that there will be no caching of shader validation results and |
| every shader will be validated on every application execution. |
| Shader validation caching is enabled by default. |
| -- |
| |
| [NOTE] |
| .Note |
| ==== |
| Disabling checks such as parameter validation and object lifetime validation |
| prevents the reporting of error conditions that can cause other validation |
| checks to behave incorrectly or crash. |
| Some validation checks assume that their inputs are already valid and do not |
| always revalidate them. |
| ==== |
| |
| [NOTE] |
| .Note |
| ==== |
| The `apiext:VK_EXT_validation_features` extension subsumes all the |
| functionality provided in the `apiext:VK_EXT_validation_flags` extension. |
| ==== |