1e5c31af7Sopenharmony_ci// Copyright 2015-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ci// This text fragment is used many times in the Features chapter. 6e5c31af7Sopenharmony_ciifdef::hidden[] 7e5c31af7Sopenharmony_ci// tag::features[] 8e5c31af7Sopenharmony_ciIf the sname:{refpage} structure is included in the pname:pNext chain of the 9e5c31af7Sopenharmony_cislink:VkPhysicalDeviceFeatures2 structure passed to 10e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each 11e5c31af7Sopenharmony_cicorresponding feature is supported. 12e5c31af7Sopenharmony_cisname:{refpage} can: also be used in the pname:pNext chain of 13e5c31af7Sopenharmony_cislink:VkDeviceCreateInfo to selectively enable these features. 14e5c31af7Sopenharmony_ci// end::features[] 15e5c31af7Sopenharmony_ciendif::hidden[] 16e5c31af7Sopenharmony_ci 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci[[features]] 19e5c31af7Sopenharmony_ci= Features 20e5c31af7Sopenharmony_ci 21e5c31af7Sopenharmony_ci_Features_ describe functionality which is not supported on all 22e5c31af7Sopenharmony_ciimplementations. 23e5c31af7Sopenharmony_ciFeatures are properties of the physical device. 24e5c31af7Sopenharmony_ciFeatures are optional:, and must: be explicitly enabled before use. 25e5c31af7Sopenharmony_ciSupport for features is reported and enabled on a per-feature basis. 26e5c31af7Sopenharmony_ci 27e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 28e5c31af7Sopenharmony_ci[NOTE] 29e5c31af7Sopenharmony_ci.Note 30e5c31af7Sopenharmony_ci==== 31e5c31af7Sopenharmony_ciFeatures are reported via the basic slink:VkPhysicalDeviceFeatures 32e5c31af7Sopenharmony_cistructure, as well as the extensible structure 33e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures2, which was added in the 34e5c31af7Sopenharmony_ci`apiext:VK_KHR_get_physical_device_properties2` extension and included in 35e5c31af7Sopenharmony_ciVulkan 1.1. 36e5c31af7Sopenharmony_ciWhen new features are added in future Vulkan versions or extensions, each 37e5c31af7Sopenharmony_ciextension should: introduce one new feature structure, if needed. 38e5c31af7Sopenharmony_ciThis structure can: be added to the pname:pNext chain of the 39e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures2 structure. 40e5c31af7Sopenharmony_ci==== 41e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 42e5c31af7Sopenharmony_ci 43e5c31af7Sopenharmony_ciFor convenience, new core versions of Vulkan may: introduce new unified 44e5c31af7Sopenharmony_cifeature structures for features promoted from extensions. 45e5c31af7Sopenharmony_ciAt the same time, the extension's original feature structure (if any) is 46e5c31af7Sopenharmony_cialso promoted to the core API, and is an alias of the extension's structure. 47e5c31af7Sopenharmony_ciThis results in multiple names for the same feature: in the original 48e5c31af7Sopenharmony_ciextension's feature structure and the promoted structure alias, in the 49e5c31af7Sopenharmony_ciunified feature structure. 50e5c31af7Sopenharmony_ciWhen a feature was implicitly supported and enabled in the extension, but an 51e5c31af7Sopenharmony_ciexplicit name was added during promotion, then the extension itself acts as 52e5c31af7Sopenharmony_cian alias for the feature as listed in the table below. 53e5c31af7Sopenharmony_ci 54e5c31af7Sopenharmony_ciAll aliases of the same feature in the core API must: be reported 55e5c31af7Sopenharmony_ciconsistently: either all must: be reported as supported, or none of them. 56e5c31af7Sopenharmony_ciWhen a promoted extension is available, any corresponding feature aliases 57e5c31af7Sopenharmony_cimust: be supported. 58e5c31af7Sopenharmony_ci 59e5c31af7Sopenharmony_ci[[features-extension-aliases]] 60e5c31af7Sopenharmony_ci.Extension Feature Aliases 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci// Jon 1.3 TBD - add any appropriate extensions promoted to 1.3 63e5c31af7Sopenharmony_ci[width="100%",options="header"] 64e5c31af7Sopenharmony_ci|==== 65e5c31af7Sopenharmony_ci| Extension | Feature(s) 66e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 67e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[] 68e5c31af7Sopenharmony_ci| `apiext:VK_KHR_shader_draw_parameters` | <<features-shaderDrawParameters, pname:shaderDrawParameters>> 69e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[] 70e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[] 71e5c31af7Sopenharmony_ci| `apiext:VK_KHR_draw_indirect_count` | <<features-drawIndirectCount, pname:drawIndirectCount>> 72e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[] 73e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_mirror_clamp_to_edge[] 74e5c31af7Sopenharmony_ci| `apiext:VK_KHR_sampler_mirror_clamp_to_edge` | <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>> 75e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_mirror_clamp_to_edge[] 76e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[] 77e5c31af7Sopenharmony_ci| `apiext:VK_EXT_descriptor_indexing` | <<features-descriptorIndexing, pname:descriptorIndexing>> 78e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[] 79e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[] 80e5c31af7Sopenharmony_ci| `apiext:VK_EXT_sampler_filter_minmax` | <<features-samplerFilterMinmax, pname:samplerFilterMinmax>> 81e5c31af7Sopenharmony_ciendif::VK_EXT_sampler_filter_minmax[] 82e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[] 83e5c31af7Sopenharmony_ci| `apiext:VK_EXT_shader_viewport_index_layer` | <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>, <<features-shaderOutputLayer, pname:shaderOutputLayer>> 84e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[] 85e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 86e5c31af7Sopenharmony_ci|==== 87e5c31af7Sopenharmony_ci 88e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures',desc='Reports capabilities of a physical device',type='protos'] 89e5c31af7Sopenharmony_ci-- 90e5c31af7Sopenharmony_ciTo query supported features, call: 91e5c31af7Sopenharmony_ci 92e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures.adoc[] 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 95e5c31af7Sopenharmony_ci supported features. 96e5c31af7Sopenharmony_ci * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures 97e5c31af7Sopenharmony_ci structure in which the physical device features are returned. 98e5c31af7Sopenharmony_ci For each feature, a value of ename:VK_TRUE specifies that the feature is 99e5c31af7Sopenharmony_ci supported on this physical device, and ename:VK_FALSE specifies that the 100e5c31af7Sopenharmony_ci feature is not supported. 101e5c31af7Sopenharmony_ci 102e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures.adoc[] 103e5c31af7Sopenharmony_ci-- 104e5c31af7Sopenharmony_ci 105e5c31af7Sopenharmony_ciFine-grained features used by a logical device must: be enabled at 106e5c31af7Sopenharmony_cisname:VkDevice creation time. 107e5c31af7Sopenharmony_ciIf a feature is enabled that the physical device does not support, 108e5c31af7Sopenharmony_cisname:VkDevice creation will fail and return 109e5c31af7Sopenharmony_ciename:VK_ERROR_FEATURE_NOT_PRESENT. 110e5c31af7Sopenharmony_ci 111e5c31af7Sopenharmony_ciThe fine-grained features are enabled by passing a pointer to the 112e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures structure via the pname:pEnabledFeatures 113e5c31af7Sopenharmony_cimember of the slink:VkDeviceCreateInfo structure that is passed into the 114e5c31af7Sopenharmony_cifname:vkCreateDevice call. 115e5c31af7Sopenharmony_ciIf a member of pname:pEnabledFeatures is set to ename:VK_TRUE or 116e5c31af7Sopenharmony_ciename:VK_FALSE, then the device will be created with the indicated feature 117e5c31af7Sopenharmony_cienabled or disabled, respectively. 118e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 119e5c31af7Sopenharmony_ciFeatures can: also be enabled by using the slink:VkPhysicalDeviceFeatures2 120e5c31af7Sopenharmony_cistructure. 121e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 122e5c31af7Sopenharmony_ci 123e5c31af7Sopenharmony_ciIf an application wishes to enable all features supported by a device, it 124e5c31af7Sopenharmony_cican: simply pass in the sname:VkPhysicalDeviceFeatures structure that was 125e5c31af7Sopenharmony_cipreviously returned by fname:vkGetPhysicalDeviceFeatures. 126e5c31af7Sopenharmony_ciTo disable an individual feature, the application can: set the desired 127e5c31af7Sopenharmony_cimember to ename:VK_FALSE in the same structure. 128e5c31af7Sopenharmony_ciSetting pname:pEnabledFeatures to `NULL` 129e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 130e5c31af7Sopenharmony_ciand not including a slink:VkPhysicalDeviceFeatures2 in the pname:pNext chain 131e5c31af7Sopenharmony_ciof slink:VkDeviceCreateInfo 132e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 133e5c31af7Sopenharmony_ciis equivalent to setting all members of the structure to ename:VK_FALSE. 134e5c31af7Sopenharmony_ci 135e5c31af7Sopenharmony_ci[NOTE] 136e5c31af7Sopenharmony_ci.Note 137e5c31af7Sopenharmony_ci==== 138e5c31af7Sopenharmony_ciSome features, such as pname:robustBufferAccess, may: incur a runtime 139e5c31af7Sopenharmony_ciperformance cost. 140e5c31af7Sopenharmony_ciApplication writers should: carefully consider the implications of enabling 141e5c31af7Sopenharmony_ciall supported features. 142e5c31af7Sopenharmony_ci==== 143e5c31af7Sopenharmony_ci 144e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 145e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures2',desc='Reports capabilities of a physical device',type='protos'] 146e5c31af7Sopenharmony_ci-- 147e5c31af7Sopenharmony_ciTo query supported features defined by the core or extensions, call: 148e5c31af7Sopenharmony_ci 149e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 150e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2.adoc[] 151e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 152e5c31af7Sopenharmony_ci 153e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1+VK_KHR_get_physical_device_properties2[or the equivalent command] 154e5c31af7Sopenharmony_ci 155e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 156e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2KHR.adoc[] 157e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 158e5c31af7Sopenharmony_ci 159e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 160e5c31af7Sopenharmony_ci supported features. 161e5c31af7Sopenharmony_ci * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures2 162e5c31af7Sopenharmony_ci structure in which the physical device features are returned. 163e5c31af7Sopenharmony_ci 164e5c31af7Sopenharmony_ciEach structure in pname:pFeatures and its pname:pNext chain contains members 165e5c31af7Sopenharmony_cicorresponding to fine-grained features. 166e5c31af7Sopenharmony_cifname:vkGetPhysicalDeviceFeatures2 writes each member to a boolean value 167e5c31af7Sopenharmony_ciindicating whether that feature is supported. 168e5c31af7Sopenharmony_ci 169e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures2.adoc[] 170e5c31af7Sopenharmony_ci-- 171e5c31af7Sopenharmony_ci 172e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures2',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs'] 173e5c31af7Sopenharmony_ci-- 174e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures2 structure is defined as: 175e5c31af7Sopenharmony_ci 176e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2.adoc[] 177e5c31af7Sopenharmony_ci 178e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 179e5c31af7Sopenharmony_cior the equivalent 180e5c31af7Sopenharmony_ci 181e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2KHR.adoc[] 182e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 183e5c31af7Sopenharmony_ci 184e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 185e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 186e5c31af7Sopenharmony_ci structure. 187e5c31af7Sopenharmony_ci * pname:features is a slink:VkPhysicalDeviceFeatures structure describing 188e5c31af7Sopenharmony_ci the fine-grained features of the Vulkan 1.0 API. 189e5c31af7Sopenharmony_ci 190e5c31af7Sopenharmony_ciThe pname:pNext chain of this structure is used to extend the structure with 191e5c31af7Sopenharmony_cifeatures defined by extensions. 192e5c31af7Sopenharmony_ciThis structure can: be used in flink:vkGetPhysicalDeviceFeatures2 or can: be 193e5c31af7Sopenharmony_ciincluded in the pname:pNext chain of a slink:VkDeviceCreateInfo structure, 194e5c31af7Sopenharmony_ciin which case it controls which features are enabled on the device in lieu 195e5c31af7Sopenharmony_ciof pname:pEnabledFeatures. 196e5c31af7Sopenharmony_ci 197e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures2.adoc[] 198e5c31af7Sopenharmony_ci-- 199e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 200e5c31af7Sopenharmony_ci 201e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs'] 202e5c31af7Sopenharmony_ci-- 203e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures structure is defined as: 204e5c31af7Sopenharmony_ci 205e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures.adoc[] 206e5c31af7Sopenharmony_ci 207e5c31af7Sopenharmony_ciThis structure describes the following features: 208e5c31af7Sopenharmony_ci 209e5c31af7Sopenharmony_ci * [[features-robustBufferAccess]] pname:robustBufferAccess specifies that 210e5c31af7Sopenharmony_ci accesses to buffers are bounds-checked against the range of the buffer 211e5c31af7Sopenharmony_ci descriptor (as determined by sname:VkDescriptorBufferInfo::pname:range, 212e5c31af7Sopenharmony_ci slink:VkBufferViewCreateInfo::pname:range, or the size of the buffer). 213e5c31af7Sopenharmony_ci Out of bounds accesses must: not cause application termination, and the 214e5c31af7Sopenharmony_ci effects of shader loads, stores, and atomics must: conform to an 215e5c31af7Sopenharmony_ci implementation-dependent behavior as described below. 216e5c31af7Sopenharmony_ci ** A buffer access is considered to be out of bounds if any of the 217e5c31af7Sopenharmony_ci following are true: 218e5c31af7Sopenharmony_ci *** The pointer was formed by code:OpImageTexelPointer and the coordinate 219e5c31af7Sopenharmony_ci is less than zero or greater than or equal to the number of whole 220e5c31af7Sopenharmony_ci elements in the bound range. 221e5c31af7Sopenharmony_ci *** The pointer was not formed by code:OpImageTexelPointer and the object 222e5c31af7Sopenharmony_ci pointed to is not wholly contained within the bound range. 223e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] 224e5c31af7Sopenharmony_ci This includes accesses performed via _variable pointers_ where the 225e5c31af7Sopenharmony_ci buffer descriptor being accessed cannot be statically determined. 226e5c31af7Sopenharmony_ci Uninitialized pointers and pointers equal to code:OpConstantNull are 227e5c31af7Sopenharmony_ci treated as pointing to a zero-sized object, so all accesses through 228e5c31af7Sopenharmony_ci such pointers are considered to be out of bounds. 229e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[] 230e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 231e5c31af7Sopenharmony_ci Buffer accesses through buffer device addresses are not 232e5c31af7Sopenharmony_ci bounds-checked. 233e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 234e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[] 235e5c31af7Sopenharmony_ci *** If the <<features-cooperativeMatrixRobustBufferAccess-NV, 236e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV::pname:cooperativeMatrixRobustBufferAccess>> 237e5c31af7Sopenharmony_ci feature is not enabled, then accesses using 238e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV 239e5c31af7Sopenharmony_ci may: not be bounds-checked. 240e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[] 241e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[] 242e5c31af7Sopenharmony_ci *** If the <<features-cooperativeMatrixRobustBufferAccess, 243e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceCooperativeMatrixFeaturesKHR::pname:cooperativeMatrixRobustBufferAccess>> 244e5c31af7Sopenharmony_ci feature is not enabled, then accesses using 245e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR 246e5c31af7Sopenharmony_ci may: not be bounds-checked. 247e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[] 248e5c31af7Sopenharmony_ci+ 249e5c31af7Sopenharmony_ci[NOTE] 250e5c31af7Sopenharmony_ci.Note 251e5c31af7Sopenharmony_ci==== 252e5c31af7Sopenharmony_ciIf a SPIR-V code:OpLoad instruction loads a structure and the tail end of 253e5c31af7Sopenharmony_cithe structure is out of bounds, then all members of the structure are 254e5c31af7Sopenharmony_ciconsidered out of bounds even if the members at the end are not statically 255e5c31af7Sopenharmony_ciused. 256e5c31af7Sopenharmony_ci==== 257e5c31af7Sopenharmony_ci 258e5c31af7Sopenharmony_ci *** If 259e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 260e5c31af7Sopenharmony_ci <<features-robustBufferAccess2, pname:robustBufferAccess2>> is not 261e5c31af7Sopenharmony_ci enabled and 262e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 263e5c31af7Sopenharmony_ci any buffer access is determined to be out of bounds, then any other 264e5c31af7Sopenharmony_ci access of the same type (load, store, or atomic) to the same buffer 265e5c31af7Sopenharmony_ci that accesses an address less than 16 bytes away from the out of 266e5c31af7Sopenharmony_ci bounds address may: also be considered out of bounds. 267e5c31af7Sopenharmony_ci *** If the access is a load that reads from the same memory locations as a 268e5c31af7Sopenharmony_ci prior store in the same shader invocation, with no other intervening 269e5c31af7Sopenharmony_ci accesses to the same memory locations in that shader invocation, then 270e5c31af7Sopenharmony_ci the result of the load may: be the value stored by the store 271e5c31af7Sopenharmony_ci instruction, even if the access is out of bounds. 272e5c31af7Sopenharmony_ci If the load is code:Volatile, then an out of bounds load must: return 273e5c31af7Sopenharmony_ci the appropriate out of bounds value. 274e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 275e5c31af7Sopenharmony_ci ** Accesses to descriptors written with a dlink:VK_NULL_HANDLE resource or 276e5c31af7Sopenharmony_ci view are not considered to be out of bounds. 277e5c31af7Sopenharmony_ci Instead, each type of descriptor access defines a specific behavior for 278e5c31af7Sopenharmony_ci accesses to a null descriptor. 279e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 280e5c31af7Sopenharmony_ci ** Out-of-bounds buffer loads will return any of the following values: 281e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 282e5c31af7Sopenharmony_ci *** If the access is to a uniform buffer and 283e5c31af7Sopenharmony_ci <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 284e5c31af7Sopenharmony_ci enabled, loads of offsets between the end of the descriptor range and 285e5c31af7Sopenharmony_ci the end of the descriptor range rounded up to a multiple of 286e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment, 287e5c31af7Sopenharmony_ci pname:robustUniformBufferAccessSizeAlignment>> bytes must: return 288e5c31af7Sopenharmony_ci either zero values or the contents of the memory at the offset being 289e5c31af7Sopenharmony_ci loaded. 290e5c31af7Sopenharmony_ci Loads of offsets past the descriptor range rounded up to a multiple of 291e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment, 292e5c31af7Sopenharmony_ci pname:robustUniformBufferAccessSizeAlignment>> bytes must: return zero 293e5c31af7Sopenharmony_ci values. 294e5c31af7Sopenharmony_ci *** If the access is to a storage buffer and 295e5c31af7Sopenharmony_ci <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 296e5c31af7Sopenharmony_ci enabled, loads of offsets between the end of the descriptor range and 297e5c31af7Sopenharmony_ci the end of the descriptor range rounded up to a multiple of 298e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment, 299e5c31af7Sopenharmony_ci pname:robustStorageBufferAccessSizeAlignment>> bytes must: return 300e5c31af7Sopenharmony_ci either zero values or the contents of the memory at the offset being 301e5c31af7Sopenharmony_ci loaded. 302e5c31af7Sopenharmony_ci Loads of offsets past the descriptor range rounded up to a multiple of 303e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment, 304e5c31af7Sopenharmony_ci pname:robustStorageBufferAccessSizeAlignment>> bytes must: return zero 305e5c31af7Sopenharmony_ci values. 306e5c31af7Sopenharmony_ci Similarly, stores to addresses between the end of the descriptor range 307e5c31af7Sopenharmony_ci and the end of the descriptor range rounded up to a multiple of 308e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment, 309e5c31af7Sopenharmony_ci pname:robustStorageBufferAccessSizeAlignment>> bytes may: be 310e5c31af7Sopenharmony_ci discarded. 311e5c31af7Sopenharmony_ci *** Non-atomic accesses to storage buffers that are a multiple of 32 bits 312e5c31af7Sopenharmony_ci may: be decomposed into 32-bit accesses that are individually 313e5c31af7Sopenharmony_ci bounds-checked. 314e5c31af7Sopenharmony_ci *** If the access is to an index buffer and 315e5c31af7Sopenharmony_ci <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 316e5c31af7Sopenharmony_ci enabled, zero values must: be returned. 317e5c31af7Sopenharmony_ci *** If the access is to a uniform texel buffer or storage texel buffer and 318e5c31af7Sopenharmony_ci <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 319e5c31af7Sopenharmony_ci enabled, zero values must: be returned, and then 320e5c31af7Sopenharmony_ci <<textures-conversion-to-rgba,Conversion to RGBA>> is applied based on 321e5c31af7Sopenharmony_ci the buffer view's format. 322e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 323e5c31af7Sopenharmony_ci *** Values from anywhere within the memory range(s) bound to the buffer 324e5c31af7Sopenharmony_ci (possibly including bytes of memory past the end of the buffer, up to 325e5c31af7Sopenharmony_ci the end of the bound range). 326e5c31af7Sopenharmony_ci *** Zero values, or [eq]#(0,0,0,x)# vectors for vector reads where x is a 327e5c31af7Sopenharmony_ci valid value represented in the type of the vector components and may: 328e5c31af7Sopenharmony_ci be any of: 329e5c31af7Sopenharmony_ci **** 0, 1, or the maximum representable positive integer value, for signed 330e5c31af7Sopenharmony_ci or unsigned integer components 331e5c31af7Sopenharmony_ci **** 0.0 or 1.0, for floating-point components 332e5c31af7Sopenharmony_ci ** Out-of-bounds writes may: modify values within the memory range(s) 333e5c31af7Sopenharmony_ci bound to the buffer, but must: not modify any other memory. 334e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 335e5c31af7Sopenharmony_ci *** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 336e5c31af7Sopenharmony_ci enabled, out of bounds writes must: not modify any memory. 337e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 338e5c31af7Sopenharmony_ci ** Out-of-bounds atomics may: modify values within the memory range(s) 339e5c31af7Sopenharmony_ci bound to the buffer, but must: not modify any other memory, and return 340e5c31af7Sopenharmony_ci an undefined: value. 341e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 342e5c31af7Sopenharmony_ci *** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 343e5c31af7Sopenharmony_ci enabled, out of bounds atomics must: not modify any memory, and return 344e5c31af7Sopenharmony_ci an undefined: value. 345e5c31af7Sopenharmony_ci ** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 346e5c31af7Sopenharmony_ci disabled, vertex 347e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 348e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[] 349e5c31af7Sopenharmony_ci ** Vertex 350e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 351e5c31af7Sopenharmony_ci input attributes are considered out of bounds if the offset of the 352e5c31af7Sopenharmony_ci attribute in the bound vertex buffer range plus the size of the 353e5c31af7Sopenharmony_ci attribute is greater than either: 354e5c31af7Sopenharmony_ci+ 355e5c31af7Sopenharmony_ci *** code:vertexBufferRangeSize, if [eq]#code:bindingStride == 0#; or 356e5c31af7Sopenharmony_ci *** [eq]#(code:vertexBufferRangeSize - (code:vertexBufferRangeSize % 357e5c31af7Sopenharmony_ci code:bindingStride))# 358e5c31af7Sopenharmony_ci+ 359e5c31af7Sopenharmony_ciwhere code:vertexBufferRangeSize is the byte size of the memory range bound 360e5c31af7Sopenharmony_cito the vertex buffer binding and code:bindingStride is the byte stride of 361e5c31af7Sopenharmony_cithe corresponding vertex input binding. 362e5c31af7Sopenharmony_ciFurther, if any vertex input attribute using a specific vertex input binding 363e5c31af7Sopenharmony_ciis out of bounds, then all vertex input attributes using that vertex input 364e5c31af7Sopenharmony_cibinding for that vertex shader invocation are considered out of bounds. 365e5c31af7Sopenharmony_ci *** If a vertex input attribute is out of bounds, it will be assigned one 366e5c31af7Sopenharmony_ci of the following values: 367e5c31af7Sopenharmony_ci **** Values from anywhere within the memory range(s) bound to the buffer, 368e5c31af7Sopenharmony_ci converted according to the format of the attribute. 369e5c31af7Sopenharmony_ci **** Zero values, format converted according to the format of the 370e5c31af7Sopenharmony_ci attribute. 371e5c31af7Sopenharmony_ci **** Zero values, or [eq]#(0,0,0,x)# vectors, as described above. 372e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 373e5c31af7Sopenharmony_ci ** If <<features-robustBufferAccess2, pname:robustBufferAccess2>> is 374e5c31af7Sopenharmony_ci enabled, vertex input attributes are considered out of bounds if the 375e5c31af7Sopenharmony_ci offset of the attribute in the bound vertex buffer range plus the size 376e5c31af7Sopenharmony_ci of the attribute is greater than the byte size of the memory range 377e5c31af7Sopenharmony_ci bound to the vertex buffer binding. 378e5c31af7Sopenharmony_ci *** If a vertex input attribute is out of bounds, the 379e5c31af7Sopenharmony_ci <<fxvertex-input-extraction,raw data>> extracted are zero values, and 380e5c31af7Sopenharmony_ci missing G, B, or A components are <<fxvertex-input-extraction,filled 381e5c31af7Sopenharmony_ci with [eq]#(0,0,1)#>>. 382e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 383e5c31af7Sopenharmony_ci ** If pname:robustBufferAccess is not enabled, applications must: not 384e5c31af7Sopenharmony_ci perform out of bounds accesses 385e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[] 386e5c31af7Sopenharmony_ci except under the conditions enabled by the 387e5c31af7Sopenharmony_ci <<features-pipelineRobustness, pname:pipelineRobustness>> feature 388e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[] 389e5c31af7Sopenharmony_ci . 390e5c31af7Sopenharmony_ci * [[features-fullDrawIndexUint32]] pname:fullDrawIndexUint32 specifies the 391e5c31af7Sopenharmony_ci full 32-bit range of indices is supported for indexed draw calls when 392e5c31af7Sopenharmony_ci using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32. 393e5c31af7Sopenharmony_ci pname:maxDrawIndexedIndexValue is the maximum index value that may: be 394e5c31af7Sopenharmony_ci used (aside from the primitive restart index, which is always 2^32^-1 395e5c31af7Sopenharmony_ci when the elink:VkIndexType is ename:VK_INDEX_TYPE_UINT32). 396e5c31af7Sopenharmony_ci If this feature is supported, pname:maxDrawIndexedIndexValue must: be 397e5c31af7Sopenharmony_ci 2^32^-1; otherwise it must: be no smaller than 2^24^-1. 398e5c31af7Sopenharmony_ci See <<limits-maxDrawIndexedIndexValue, pname:maxDrawIndexedIndexValue>>. 399e5c31af7Sopenharmony_ci * [[features-imageCubeArray]] pname:imageCubeArray specifies whether image 400e5c31af7Sopenharmony_ci views with a elink:VkImageViewType of 401e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can: be created, and that the 402e5c31af7Sopenharmony_ci corresponding code:SampledCubeArray and code:ImageCubeArray SPIR-V 403e5c31af7Sopenharmony_ci capabilities can: be used in shader code. 404e5c31af7Sopenharmony_ci * [[features-independentBlend]] pname:independentBlend specifies whether 405e5c31af7Sopenharmony_ci the sname:VkPipelineColorBlendAttachmentState settings are controlled 406e5c31af7Sopenharmony_ci independently per-attachment. 407e5c31af7Sopenharmony_ci If this feature is not enabled, the 408e5c31af7Sopenharmony_ci sname:VkPipelineColorBlendAttachmentState settings for all color 409e5c31af7Sopenharmony_ci attachments must: be identical. 410e5c31af7Sopenharmony_ci Otherwise, a different sname:VkPipelineColorBlendAttachmentState can: be 411e5c31af7Sopenharmony_ci provided for each bound color attachment. 412e5c31af7Sopenharmony_ci * [[features-geometryShader]] pname:geometryShader specifies whether 413e5c31af7Sopenharmony_ci geometry shaders are supported. 414e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_GEOMETRY_BIT 415e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must: not be 416e5c31af7Sopenharmony_ci used. 417e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 418e5c31af7Sopenharmony_ci code:Geometry capability. 419e5c31af7Sopenharmony_ci * [[features-tessellationShader]] pname:tessellationShader specifies 420e5c31af7Sopenharmony_ci whether tessellation control and evaluation shaders are supported. 421e5c31af7Sopenharmony_ci If this feature is not enabled, the 422e5c31af7Sopenharmony_ci ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, 423e5c31af7Sopenharmony_ci ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, 424e5c31af7Sopenharmony_ci ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, 425e5c31af7Sopenharmony_ci ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and 426e5c31af7Sopenharmony_ci ename:VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum 427e5c31af7Sopenharmony_ci values must: not be used. 428e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 429e5c31af7Sopenharmony_ci code:Tessellation capability. 430e5c31af7Sopenharmony_ci * [[features-sampleRateShading]] pname:sampleRateShading specifies whether 431e5c31af7Sopenharmony_ci <<primsrast-sampleshading,Sample Shading>> and multisample interpolation 432e5c31af7Sopenharmony_ci are supported. 433e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:sampleShadingEnable member of 434e5c31af7Sopenharmony_ci the slink:VkPipelineMultisampleStateCreateInfo structure must: be set to 435e5c31af7Sopenharmony_ci ename:VK_FALSE and the pname:minSampleShading member is ignored. 436e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 437e5c31af7Sopenharmony_ci code:SampleRateShading capability. 438e5c31af7Sopenharmony_ci * [[features-dualSrcBlend]] pname:dualSrcBlend specifies whether blend 439e5c31af7Sopenharmony_ci operations which take two sources are supported. 440e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_BLEND_FACTOR_SRC1_COLOR, 441e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, 442e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_SRC1_ALPHA, and 443e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must: not be used 444e5c31af7Sopenharmony_ci as source or destination blending factors. 445e5c31af7Sopenharmony_ci See <<framebuffer-dsb>>. 446e5c31af7Sopenharmony_ci * [[features-logicOp]] pname:logicOp specifies whether logic operations 447e5c31af7Sopenharmony_ci are supported. 448e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:logicOpEnable member of the 449e5c31af7Sopenharmony_ci slink:VkPipelineColorBlendStateCreateInfo structure must: be set to 450e5c31af7Sopenharmony_ci ename:VK_FALSE, and the pname:logicOp member is ignored. 451e5c31af7Sopenharmony_ci * [[features-multiDrawIndirect]] pname:multiDrawIndirect specifies whether 452e5c31af7Sopenharmony_ci multiple draw indirect is supported. 453e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:drawCount parameter to the 454e5c31af7Sopenharmony_ci fname:vkCmdDrawIndirect and fname:vkCmdDrawIndexedIndirect commands 455e5c31af7Sopenharmony_ci must: be 0 or 1. 456e5c31af7Sopenharmony_ci The pname:maxDrawIndirectCount member of the 457e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceLimits structure must: also be 1 if this feature 458e5c31af7Sopenharmony_ci is not supported. 459e5c31af7Sopenharmony_ci See <<limits-maxDrawIndirectCount, pname:maxDrawIndirectCount>>. 460e5c31af7Sopenharmony_ci * [[features-drawIndirectFirstInstance]] pname:drawIndirectFirstInstance 461e5c31af7Sopenharmony_ci specifies whether indirect drawing calls support the pname:firstInstance 462e5c31af7Sopenharmony_ci parameter. 463e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:firstInstance member of all 464e5c31af7Sopenharmony_ci sname:VkDrawIndirectCommand and sname:VkDrawIndexedIndirectCommand 465e5c31af7Sopenharmony_ci structures that are provided to the fname:vkCmdDrawIndirect and 466e5c31af7Sopenharmony_ci fname:vkCmdDrawIndexedIndirect commands must: be 0. 467e5c31af7Sopenharmony_ci * [[features-depthClamp]] pname:depthClamp specifies whether depth 468e5c31af7Sopenharmony_ci clamping is supported. 469e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthClampEnable member of the 470e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 471e5c31af7Sopenharmony_ci ename:VK_FALSE. 472e5c31af7Sopenharmony_ci Otherwise, setting pname:depthClampEnable to ename:VK_TRUE will enable 473e5c31af7Sopenharmony_ci depth clamping. 474e5c31af7Sopenharmony_ci * [[features-depthBiasClamp]] pname:depthBiasClamp specifies whether depth 475e5c31af7Sopenharmony_ci bias clamping is supported. 476e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthBiasClamp member of the 477e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 478e5c31af7Sopenharmony_ci 0.0 unless the ename:VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state is 479e5c31af7Sopenharmony_ci enabled, and the pname:depthBiasClamp parameter to 480e5c31af7Sopenharmony_ci fname:vkCmdSetDepthBias must: be set to 0.0. 481e5c31af7Sopenharmony_ci * [[features-fillModeNonSolid]] pname:fillModeNonSolid specifies whether 482e5c31af7Sopenharmony_ci point and wireframe fill modes are supported. 483e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_POLYGON_MODE_POINT and 484e5c31af7Sopenharmony_ci ename:VK_POLYGON_MODE_LINE enum values must: not be used. 485e5c31af7Sopenharmony_ci * [[features-depthBounds]] pname:depthBounds specifies whether depth 486e5c31af7Sopenharmony_ci bounds tests are supported. 487e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthBoundsTestEnable member 488e5c31af7Sopenharmony_ci of the slink:VkPipelineDepthStencilStateCreateInfo structure must: be 489e5c31af7Sopenharmony_ci set to ename:VK_FALSE. 490e5c31af7Sopenharmony_ci When pname:depthBoundsTestEnable is set to ename:VK_FALSE, the 491e5c31af7Sopenharmony_ci pname:minDepthBounds and pname:maxDepthBounds members of the 492e5c31af7Sopenharmony_ci slink:VkPipelineDepthStencilStateCreateInfo structure are ignored. 493e5c31af7Sopenharmony_ci * [[features-wideLines]] pname:wideLines specifies whether lines with 494e5c31af7Sopenharmony_ci width other than 1.0 are supported. 495e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:lineWidth member of the 496e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 497e5c31af7Sopenharmony_ci 1.0 unless the ename:VK_DYNAMIC_STATE_LINE_WIDTH dynamic state is 498e5c31af7Sopenharmony_ci enabled, and the pname:lineWidth parameter to fname:vkCmdSetLineWidth 499e5c31af7Sopenharmony_ci must: be set to 1.0. 500e5c31af7Sopenharmony_ci When this feature is supported, the range and granularity of supported 501e5c31af7Sopenharmony_ci line widths are indicated by the pname:lineWidthRange and 502e5c31af7Sopenharmony_ci pname:lineWidthGranularity members of the sname:VkPhysicalDeviceLimits 503e5c31af7Sopenharmony_ci structure, respectively. 504e5c31af7Sopenharmony_ci * [[features-largePoints]] pname:largePoints specifies whether points with 505e5c31af7Sopenharmony_ci size greater than 1.0 are supported. 506e5c31af7Sopenharmony_ci If this feature is not enabled, only a point size of 1.0 written by a 507e5c31af7Sopenharmony_ci shader is supported. 508e5c31af7Sopenharmony_ci The range and granularity of supported point sizes are indicated by the 509e5c31af7Sopenharmony_ci pname:pointSizeRange and pname:pointSizeGranularity members of the 510e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceLimits structure, respectively. 511e5c31af7Sopenharmony_ci * [[features-alphaToOne]] pname:alphaToOne specifies whether the 512e5c31af7Sopenharmony_ci implementation is able to replace the alpha value of the fragment shader 513e5c31af7Sopenharmony_ci color output in the <<fragops-covg, Multisample Coverage>> fragment 514e5c31af7Sopenharmony_ci operation. 515e5c31af7Sopenharmony_ci If this feature is not enabled, then the pname:alphaToOneEnable member 516e5c31af7Sopenharmony_ci of the slink:VkPipelineMultisampleStateCreateInfo structure must: be set 517e5c31af7Sopenharmony_ci to ename:VK_FALSE. 518e5c31af7Sopenharmony_ci Otherwise setting pname:alphaToOneEnable to ename:VK_TRUE will enable 519e5c31af7Sopenharmony_ci alpha-to-one behavior. 520e5c31af7Sopenharmony_ci * [[features-multiViewport]] pname:multiViewport specifies whether more 521e5c31af7Sopenharmony_ci than one viewport is supported. 522e5c31af7Sopenharmony_ci If this feature is not enabled: 523e5c31af7Sopenharmony_ci ** The pname:viewportCount and pname:scissorCount members of the 524e5c31af7Sopenharmony_ci slink:VkPipelineViewportStateCreateInfo structure must: be set to 1. 525e5c31af7Sopenharmony_ci ** The pname:firstViewport and pname:viewportCount parameters to the 526e5c31af7Sopenharmony_ci fname:vkCmdSetViewport command must: be set to 0 and 1, respectively. 527e5c31af7Sopenharmony_ci ** The pname:firstScissor and pname:scissorCount parameters to the 528e5c31af7Sopenharmony_ci fname:vkCmdSetScissor command must: be set to 0 and 1, respectively. 529e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[] 530e5c31af7Sopenharmony_ci ** The pname:exclusiveScissorCount member of the 531e5c31af7Sopenharmony_ci slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV structure 532e5c31af7Sopenharmony_ci must: be set to 0 or 1. 533e5c31af7Sopenharmony_ci ** The pname:firstExclusiveScissor and pname:exclusiveScissorCount 534e5c31af7Sopenharmony_ci parameters to the fname:vkCmdSetExclusiveScissorNV command must: be set 535e5c31af7Sopenharmony_ci to 0 and 1, respectively. 536e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[] 537e5c31af7Sopenharmony_ci * [[features-samplerAnisotropy]] pname:samplerAnisotropy specifies whether 538e5c31af7Sopenharmony_ci anisotropic filtering is supported. 539e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:anisotropyEnable member of the 540e5c31af7Sopenharmony_ci slink:VkSamplerCreateInfo structure must: be ename:VK_FALSE. 541e5c31af7Sopenharmony_ci * [[features-textureCompressionETC2]] pname:textureCompressionETC2 542e5c31af7Sopenharmony_ci specifies whether all of the ETC2 and EAC compressed texture formats are 543e5c31af7Sopenharmony_ci supported. 544e5c31af7Sopenharmony_ci If this feature is enabled, then the 545e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 546e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 547e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 548e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 549e5c31af7Sopenharmony_ci+ 550e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK 551e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK 552e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK 553e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK 554e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK 555e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 556e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11_UNORM_BLOCK 557e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11_SNORM_BLOCK 558e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK 559e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK 560e5c31af7Sopenharmony_ci+ 561e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 562e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 563e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 564e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 565e5c31af7Sopenharmony_ci 566e5c31af7Sopenharmony_ci * [[features-textureCompressionASTC_LDR]] pname:textureCompressionASTC_LDR 567e5c31af7Sopenharmony_ci specifies whether all of the ASTC LDR compressed texture formats are 568e5c31af7Sopenharmony_ci supported. 569e5c31af7Sopenharmony_ci If this feature is enabled, then the 570e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 571e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 572e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 573e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 574e5c31af7Sopenharmony_ci+ 575e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK 576e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK 577e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK 578e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK 579e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK 580e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK 581e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK 582e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK 583e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK 584e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK 585e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK 586e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK 587e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK 588e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK 589e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK 590e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK 591e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK 592e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK 593e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK 594e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK 595e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK 596e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK 597e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK 598e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK 599e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK 600e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK 601e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK 602e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK 603e5c31af7Sopenharmony_ci+ 604e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 605e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 606e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 607e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 608e5c31af7Sopenharmony_ci 609e5c31af7Sopenharmony_ci * [[features-textureCompressionBC]] pname:textureCompressionBC specifies 610e5c31af7Sopenharmony_ci whether all of the BC compressed texture formats are supported. 611e5c31af7Sopenharmony_ci If this feature is enabled, then the 612e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 613e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 614e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 615e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 616e5c31af7Sopenharmony_ci+ 617e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK 618e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK 619e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK 620e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK 621e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC2_UNORM_BLOCK 622e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC2_SRGB_BLOCK 623e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC3_UNORM_BLOCK 624e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC3_SRGB_BLOCK 625e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC4_UNORM_BLOCK 626e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC4_SNORM_BLOCK 627e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC5_UNORM_BLOCK 628e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC5_SNORM_BLOCK 629e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC6H_UFLOAT_BLOCK 630e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC6H_SFLOAT_BLOCK 631e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC7_UNORM_BLOCK 632e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC7_SRGB_BLOCK 633e5c31af7Sopenharmony_ci+ 634e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 635e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 636e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 637e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 638e5c31af7Sopenharmony_ci 639e5c31af7Sopenharmony_ci * [[features-occlusionQueryPrecise]] pname:occlusionQueryPrecise specifies 640e5c31af7Sopenharmony_ci whether occlusion queries returning actual sample counts are supported. 641e5c31af7Sopenharmony_ci Occlusion queries are created in a sname:VkQueryPool by specifying the 642e5c31af7Sopenharmony_ci pname:queryType of ename:VK_QUERY_TYPE_OCCLUSION in the 643e5c31af7Sopenharmony_ci slink:VkQueryPoolCreateInfo structure which is passed to 644e5c31af7Sopenharmony_ci fname:vkCreateQueryPool. 645e5c31af7Sopenharmony_ci If this feature is enabled, queries of this type can: enable 646e5c31af7Sopenharmony_ci ename:VK_QUERY_CONTROL_PRECISE_BIT in the pname:flags parameter to 647e5c31af7Sopenharmony_ci fname:vkCmdBeginQuery. 648e5c31af7Sopenharmony_ci If this feature is not supported, the implementation supports only 649e5c31af7Sopenharmony_ci boolean occlusion queries. 650e5c31af7Sopenharmony_ci When any samples are passed, boolean queries will return a non-zero 651e5c31af7Sopenharmony_ci result value, otherwise a result value of zero is returned. 652e5c31af7Sopenharmony_ci When this feature is enabled and ename:VK_QUERY_CONTROL_PRECISE_BIT is 653e5c31af7Sopenharmony_ci set, occlusion queries will report the actual number of samples passed. 654e5c31af7Sopenharmony_ci * [[features-pipelineStatisticsQuery]] pname:pipelineStatisticsQuery 655e5c31af7Sopenharmony_ci specifies whether the pipeline statistics queries are supported. 656e5c31af7Sopenharmony_ci If this feature is not enabled, queries of type 657e5c31af7Sopenharmony_ci ename:VK_QUERY_TYPE_PIPELINE_STATISTICS cannot: be created, and none of 658e5c31af7Sopenharmony_ci the elink:VkQueryPipelineStatisticFlagBits bits can: be set in the 659e5c31af7Sopenharmony_ci pname:pipelineStatistics member of the slink:VkQueryPoolCreateInfo 660e5c31af7Sopenharmony_ci structure. 661e5c31af7Sopenharmony_ci * [[features-vertexPipelineStoresAndAtomics]] 662e5c31af7Sopenharmony_ci pname:vertexPipelineStoresAndAtomics specifies whether storage buffers 663e5c31af7Sopenharmony_ci and images support stores and atomic operations in the vertex, 664e5c31af7Sopenharmony_ci tessellation, and geometry shader stages. 665e5c31af7Sopenharmony_ci If this feature is not enabled, all storage image, storage texel buffer, 666e5c31af7Sopenharmony_ci and storage buffer variables used by these stages in shader modules 667e5c31af7Sopenharmony_ci must: be decorated with the code:NonWritable decoration (or the 668e5c31af7Sopenharmony_ci code:readonly memory qualifier in GLSL). 669e5c31af7Sopenharmony_ci * [[features-fragmentStoresAndAtomics]] pname:fragmentStoresAndAtomics 670e5c31af7Sopenharmony_ci specifies whether storage buffers and images support stores and atomic 671e5c31af7Sopenharmony_ci operations in the fragment shader stage. 672e5c31af7Sopenharmony_ci If this feature is not enabled, all storage image, storage texel buffer, 673e5c31af7Sopenharmony_ci and storage buffer variables used by the fragment stage in shader 674e5c31af7Sopenharmony_ci modules must: be decorated with the code:NonWritable decoration (or the 675e5c31af7Sopenharmony_ci code:readonly memory qualifier in GLSL). 676e5c31af7Sopenharmony_ci * [[features-shaderTessellationAndGeometryPointSize]] 677e5c31af7Sopenharmony_ci pname:shaderTessellationAndGeometryPointSize specifies whether the 678e5c31af7Sopenharmony_ci code:PointSize built-in decoration is available in the tessellation 679e5c31af7Sopenharmony_ci control, tessellation evaluation, and geometry shader stages. 680e5c31af7Sopenharmony_ci If this feature is not enabled, members decorated with the 681e5c31af7Sopenharmony_ci code:PointSize built-in decoration must: not be read from or written to 682e5c31af7Sopenharmony_ci and all points written from a tessellation or geometry shader will have 683e5c31af7Sopenharmony_ci a size of 1.0. 684e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 685e5c31af7Sopenharmony_ci code:TessellationPointSize capability for tessellation control and 686e5c31af7Sopenharmony_ci evaluation shaders, or if the shader modules can: declare the 687e5c31af7Sopenharmony_ci code:GeometryPointSize capability for geometry shaders. 688e5c31af7Sopenharmony_ci An implementation supporting this feature must: also support one or both 689e5c31af7Sopenharmony_ci of the <<features-tessellationShader, pname:tessellationShader>> or 690e5c31af7Sopenharmony_ci <<features-geometryShader, pname:geometryShader>> features. 691e5c31af7Sopenharmony_ci * [[features-shaderImageGatherExtended]] pname:shaderImageGatherExtended 692e5c31af7Sopenharmony_ci specifies whether the extended set of image gather instructions are 693e5c31af7Sopenharmony_ci available in shader code. 694e5c31af7Sopenharmony_ci If this feature is not enabled, the code:OpImage*Gather instructions do 695e5c31af7Sopenharmony_ci not support the code:Offset and code:ConstOffsets operands. 696e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 697e5c31af7Sopenharmony_ci code:ImageGatherExtended capability. 698e5c31af7Sopenharmony_ci * [[features-shaderStorageImageExtendedFormats]] 699e5c31af7Sopenharmony_ci pname:shaderStorageImageExtendedFormats specifies whether all the 700e5c31af7Sopenharmony_ci "`storage image extended formats`" below are supported; if this feature 701e5c31af7Sopenharmony_ci is supported, then the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT must: 702e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 703e5c31af7Sopenharmony_ci+ 704e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SFLOAT 705e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 706e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SFLOAT 707e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16B16A16_UNORM 708e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32 709e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_UNORM 710e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_UNORM 711e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_UNORM 712e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_UNORM 713e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16B16A16_SNORM 714e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SNORM 715e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_SNORM 716e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SNORM 717e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_SNORM 718e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SINT 719e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_SINT 720e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SINT 721e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_SINT 722e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 723e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_UINT 724e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_UINT 725e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_UINT 726e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_UINT 727e5c31af7Sopenharmony_ci+ 728e5c31af7Sopenharmony_ci[NOTE] 729e5c31af7Sopenharmony_ci.Note 730e5c31af7Sopenharmony_ci==== 731e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats feature only adds a guarantee of 732e5c31af7Sopenharmony_ciformat support, which is specified for the whole physical device. 733e5c31af7Sopenharmony_ciTherefore enabling or disabling the feature via flink:vkCreateDevice has no 734e5c31af7Sopenharmony_cipractical effect. 735e5c31af7Sopenharmony_ci 736e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not supported, 737e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 738e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 739e5c31af7Sopenharmony_cisupported properties of individual formats, as usual rules allow. 740e5c31af7Sopenharmony_ci 741e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_UINT, ename:VK_FORMAT_R32G32_SINT, and 742e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_SFLOAT from code:StorageImageExtendedFormats SPIR-V 743e5c31af7Sopenharmony_cicapability, are already covered by core Vulkan 744e5c31af7Sopenharmony_ci<<formats-mandatory-features-32bit,mandatory format support>>. 745e5c31af7Sopenharmony_ci==== 746e5c31af7Sopenharmony_ci 747e5c31af7Sopenharmony_ci * [[features-shaderStorageImageMultisample]] 748e5c31af7Sopenharmony_ci pname:shaderStorageImageMultisample specifies whether multisampled 749e5c31af7Sopenharmony_ci storage images are supported. 750e5c31af7Sopenharmony_ci If this feature is not enabled, images that are created with a 751e5c31af7Sopenharmony_ci pname:usage that includes ename:VK_IMAGE_USAGE_STORAGE_BIT must: be 752e5c31af7Sopenharmony_ci created with pname:samples equal to ename:VK_SAMPLE_COUNT_1_BIT. 753e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 754e5c31af7Sopenharmony_ci code:StorageImageMultisample and code:ImageMSArray capabilities. 755e5c31af7Sopenharmony_ci * [[features-shaderStorageImageReadWithoutFormat]] 756e5c31af7Sopenharmony_ci pname:shaderStorageImageReadWithoutFormat specifies whether storage 757e5c31af7Sopenharmony_ci images and storage texel buffers require a format qualifier to be 758e5c31af7Sopenharmony_ci specified when reading. 759e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 760e5c31af7Sopenharmony_ci pname:shaderStorageImageReadWithoutFormat applies only to formats listed 761e5c31af7Sopenharmony_ci in the <<formats-without-shader-storage-format,storage without format>> 762e5c31af7Sopenharmony_ci list. 763e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 764e5c31af7Sopenharmony_ci * [[features-shaderStorageImageWriteWithoutFormat]] 765e5c31af7Sopenharmony_ci pname:shaderStorageImageWriteWithoutFormat specifies whether storage 766e5c31af7Sopenharmony_ci images and storage texel buffers require a format qualifier to be 767e5c31af7Sopenharmony_ci specified when writing. 768e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 769e5c31af7Sopenharmony_ci pname:shaderStorageImageWriteWithoutFormat applies only to formats 770e5c31af7Sopenharmony_ci listed in the <<formats-without-shader-storage-format,storage without 771e5c31af7Sopenharmony_ci format>> list. 772e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_format_feature_flags2[] 773e5c31af7Sopenharmony_ci * [[features-shaderUniformBufferArrayDynamicIndexing]] 774e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayDynamicIndexing specifies whether arrays 775e5c31af7Sopenharmony_ci of uniform buffers can: be indexed by _dynamically uniform_ integer 776e5c31af7Sopenharmony_ci expressions in shader code. 777e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 778e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or 779e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: be indexed only by 780e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 781e5c31af7Sopenharmony_ci code. 782e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 783e5c31af7Sopenharmony_ci code:UniformBufferArrayDynamicIndexing capability. 784e5c31af7Sopenharmony_ci * [[features-shaderSampledImageArrayDynamicIndexing]] 785e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayDynamicIndexing specifies whether arrays of 786e5c31af7Sopenharmony_ci samplers or sampled images can: be indexed by dynamically uniform 787e5c31af7Sopenharmony_ci integer expressions in shader code. 788e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 789e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 790e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 791e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: be indexed only by constant 792e5c31af7Sopenharmony_ci integral expressions when aggregated into arrays in shader code. 793e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 794e5c31af7Sopenharmony_ci code:SampledImageArrayDynamicIndexing capability. 795e5c31af7Sopenharmony_ci * [[features-shaderStorageBufferArrayDynamicIndexing]] 796e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayDynamicIndexing specifies whether arrays 797e5c31af7Sopenharmony_ci of storage buffers can: be indexed by dynamically uniform integer 798e5c31af7Sopenharmony_ci expressions in shader code. 799e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 800e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or 801e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: be indexed only by 802e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 803e5c31af7Sopenharmony_ci code. 804e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 805e5c31af7Sopenharmony_ci code:StorageBufferArrayDynamicIndexing capability. 806e5c31af7Sopenharmony_ci * [[features-shaderStorageImageArrayDynamicIndexing]] 807e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayDynamicIndexing specifies whether arrays of 808e5c31af7Sopenharmony_ci storage images can: be indexed by dynamically uniform integer 809e5c31af7Sopenharmony_ci expressions in shader code. 810e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 811e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: be indexed only by constant 812e5c31af7Sopenharmony_ci integral expressions when aggregated into arrays in shader code. 813e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 814e5c31af7Sopenharmony_ci code:StorageImageArrayDynamicIndexing capability. 815e5c31af7Sopenharmony_ci * [[features-shaderClipDistance]] pname:shaderClipDistance specifies 816e5c31af7Sopenharmony_ci whether clip distances are supported in shader code. 817e5c31af7Sopenharmony_ci If this feature is not enabled, any members decorated with the 818e5c31af7Sopenharmony_ci code:ClipDistance built-in decoration must: not be read from or written 819e5c31af7Sopenharmony_ci to in shader modules. 820e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 821e5c31af7Sopenharmony_ci code:ClipDistance capability. 822e5c31af7Sopenharmony_ci * [[features-shaderCullDistance]] pname:shaderCullDistance specifies 823e5c31af7Sopenharmony_ci whether cull distances are supported in shader code. 824e5c31af7Sopenharmony_ci If this feature is not enabled, any members decorated with the 825e5c31af7Sopenharmony_ci code:CullDistance built-in decoration must: not be read from or written 826e5c31af7Sopenharmony_ci to in shader modules. 827e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 828e5c31af7Sopenharmony_ci code:CullDistance capability. 829e5c31af7Sopenharmony_ci * [[features-shaderFloat64]] pname:shaderFloat64 specifies whether 64-bit 830e5c31af7Sopenharmony_ci floats (doubles) are supported in shader code. 831e5c31af7Sopenharmony_ci If this feature is not enabled, 64-bit floating-point types must: not be 832e5c31af7Sopenharmony_ci used in shader code. 833e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Float64 834e5c31af7Sopenharmony_ci capability. 835e5c31af7Sopenharmony_ci Declaring and using 64-bit floats is enabled for all storage classes 836e5c31af7Sopenharmony_ci that SPIR-V allows with the code:Float64 capability. 837e5c31af7Sopenharmony_ci * [[features-shaderInt64]] pname:shaderInt64 specifies whether 64-bit 838e5c31af7Sopenharmony_ci integers (signed and unsigned) are supported in shader code. 839e5c31af7Sopenharmony_ci If this feature is not enabled, 64-bit integer types must: not be used 840e5c31af7Sopenharmony_ci in shader code. 841e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Int64 842e5c31af7Sopenharmony_ci capability. 843e5c31af7Sopenharmony_ci Declaring and using 64-bit integers is enabled for all storage classes 844e5c31af7Sopenharmony_ci that SPIR-V allows with the code:Int64 capability. 845e5c31af7Sopenharmony_ci * [[features-shaderInt16]] pname:shaderInt16 specifies whether 16-bit 846e5c31af7Sopenharmony_ci integers (signed and unsigned) are supported in shader code. 847e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer types must: not be used 848e5c31af7Sopenharmony_ci in shader code. 849e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Int16 850e5c31af7Sopenharmony_ci capability. 851e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 852e5c31af7Sopenharmony_ci allows for the code:Int16 SPIR-V capability: Declaring and using 16-bit 853e5c31af7Sopenharmony_ci integers in the code:Private, 854e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 855e5c31af7Sopenharmony_ci code:Workgroup, 856e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 857e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 858e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 859e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 860e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 861e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 862e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 863e5c31af7Sopenharmony_ci not enabled. 864e5c31af7Sopenharmony_ci * [[features-shaderResourceResidency]] pname:shaderResourceResidency 865e5c31af7Sopenharmony_ci specifies whether image operations that return resource residency 866e5c31af7Sopenharmony_ci information are supported in shader code. 867e5c31af7Sopenharmony_ci If this feature is not enabled, the code:OpImageSparse* instructions 868e5c31af7Sopenharmony_ci must: not be used in shader code. 869e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 870e5c31af7Sopenharmony_ci code:SparseResidency capability. 871e5c31af7Sopenharmony_ci The feature requires at least one of the ptext:sparseResidency* features 872e5c31af7Sopenharmony_ci to be supported. 873e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 874e5c31af7Sopenharmony_ci * [[features-shaderResourceMinLod]] pname:shaderResourceMinLod specifies 875e5c31af7Sopenharmony_ci whether image operations specifying the minimum resource LOD are 876e5c31af7Sopenharmony_ci supported in shader code. 877e5c31af7Sopenharmony_ci If this feature is not enabled, the code:MinLod image operand must: not 878e5c31af7Sopenharmony_ci be used in shader code. 879e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:MinLod 880e5c31af7Sopenharmony_ci capability. 881e5c31af7Sopenharmony_ci * [[features-sparseBinding]] pname:sparseBinding specifies whether 882e5c31af7Sopenharmony_ci resource memory can: be managed at opaque sparse block level instead of 883e5c31af7Sopenharmony_ci at the object level. 884e5c31af7Sopenharmony_ci If this feature is not enabled, resource memory must: be bound only on a 885e5c31af7Sopenharmony_ci per-object basis using the fname:vkBindBufferMemory and 886e5c31af7Sopenharmony_ci fname:vkBindImageMemory commands. 887e5c31af7Sopenharmony_ci In this case, buffers and images must: not be created with 888e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and 889e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in the pname:flags member 890e5c31af7Sopenharmony_ci of the slink:VkBufferCreateInfo and slink:VkImageCreateInfo structures, 891e5c31af7Sopenharmony_ci respectively. 892e5c31af7Sopenharmony_ci Otherwise resource memory can: be managed as described in 893e5c31af7Sopenharmony_ci <<sparsememory-sparseresourcefeatures,Sparse Resource Features>>. 894e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 895e5c31af7Sopenharmony_ci * [[features-sparseResidencyBuffer]] pname:sparseResidencyBuffer specifies 896e5c31af7Sopenharmony_ci whether the device can: access partially resident buffers. 897e5c31af7Sopenharmony_ci If this feature is not enabled, buffers must: not be created with 898e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags 899e5c31af7Sopenharmony_ci member of the slink:VkBufferCreateInfo structure. 900e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 901e5c31af7Sopenharmony_ci * [[features-sparseResidencyImage2D]] pname:sparseResidencyImage2D 902e5c31af7Sopenharmony_ci specifies whether the device can: access partially resident 2D images 903e5c31af7Sopenharmony_ci with 1 sample per pixel. 904e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 905e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 906e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_1_BIT must: not be created with 907e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 908e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 909e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 910e5c31af7Sopenharmony_ci * [[features-sparseResidencyImage3D]] pname:sparseResidencyImage3D 911e5c31af7Sopenharmony_ci specifies whether the device can: access partially resident 3D images. 912e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 913e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_3D must: not be created with 914e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 915e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 916e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 917e5c31af7Sopenharmony_ci * [[features-sparseResidency2Samples]] pname:sparseResidency2Samples 918e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 919e5c31af7Sopenharmony_ci images with 2 samples per pixel. 920e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 921e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 922e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_2_BIT must: not be created with 923e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 924e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 925e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 926e5c31af7Sopenharmony_ci * [[features-sparseResidency4Samples]] pname:sparseResidency4Samples 927e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 928e5c31af7Sopenharmony_ci images with 4 samples per pixel. 929e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 930e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 931e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_4_BIT must: not be created with 932e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 933e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 934e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 935e5c31af7Sopenharmony_ci * [[features-sparseResidency8Samples]] pname:sparseResidency8Samples 936e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 937e5c31af7Sopenharmony_ci images with 8 samples per pixel. 938e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 939e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 940e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_8_BIT must: not be created with 941e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 942e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 943e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 944e5c31af7Sopenharmony_ci * [[features-sparseResidency16Samples]] pname:sparseResidency16Samples 945e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 946e5c31af7Sopenharmony_ci images with 16 samples per pixel. 947e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 948e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 949e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_16_BIT must: not be created with 950e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 951e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 952e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 953e5c31af7Sopenharmony_ci * [[features-sparseResidencyAliased]] pname:sparseResidencyAliased 954e5c31af7Sopenharmony_ci specifies whether the physical device can: correctly access data aliased 955e5c31af7Sopenharmony_ci into multiple locations. 956e5c31af7Sopenharmony_ci If this feature is not enabled, the 957e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT and 958e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must: not be used 959e5c31af7Sopenharmony_ci in pname:flags members of the slink:VkBufferCreateInfo and 960e5c31af7Sopenharmony_ci slink:VkImageCreateInfo structures, respectively. 961e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[This must: be ename:VK_FALSE in Vulkan SC <<SCID-8>>.] 962e5c31af7Sopenharmony_ci * [[features-variableMultisampleRate]] pname:variableMultisampleRate 963e5c31af7Sopenharmony_ci specifies whether all pipelines that will be bound to a command buffer 964e5c31af7Sopenharmony_ci during a <<renderpass-noattachments, subpass which uses no attachments>> 965e5c31af7Sopenharmony_ci must: have the same value for 966e5c31af7Sopenharmony_ci slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples. 967e5c31af7Sopenharmony_ci If set to ename:VK_TRUE, the implementation supports variable 968e5c31af7Sopenharmony_ci multisample rates in a subpass which uses no attachments. 969e5c31af7Sopenharmony_ci If set to ename:VK_FALSE, then all pipelines bound in such a subpass 970e5c31af7Sopenharmony_ci must: have the same multisample rate. 971e5c31af7Sopenharmony_ci This has no effect in situations where a subpass uses any attachments. 972e5c31af7Sopenharmony_ci * [[features-inheritedQueries]] pname:inheritedQueries specifies whether a 973e5c31af7Sopenharmony_ci secondary command buffer may: be executed while a query is active. 974e5c31af7Sopenharmony_ci 975e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[] 976e5c31af7Sopenharmony_ciifdef::hidden[] 977e5c31af7Sopenharmony_ci// tag::scdeviation[] 978e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:shaderResourceResidency must: be 979e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 980e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseBinding must: be reported as 981e5c31af7Sopenharmony_ci ename:VK_FALSE <<SCID-8>>. 982e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyBuffer must: be 983e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 984e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyImage2D must: be 985e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 986e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyImage3D must: be 987e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 988e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidency2Samples must: be 989e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 990e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidency4Samples must: be 991e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 992e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidency8Samples must: be 993e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 994e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidency16Samples must: be 995e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 996e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceFeatures::pname:sparseResidencyAliased must: be 997e5c31af7Sopenharmony_ci reported as ename:VK_FALSE <<SCID-8>>. 998e5c31af7Sopenharmony_ci// end::scdeviation[] 999e5c31af7Sopenharmony_ciendif::hidden[] 1000e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 1001e5c31af7Sopenharmony_ci 1002e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures.adoc[] 1003e5c31af7Sopenharmony_ci-- 1004e5c31af7Sopenharmony_ci 1005e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 1006e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan11Features',desc='Structure describing the Vulkan 1.1 features that can be supported by an implementation',type='structs'] 1007e5c31af7Sopenharmony_ci-- 1008e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan11Features structure is defined as: 1009e5c31af7Sopenharmony_ci 1010e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan11Features.adoc[] 1011e5c31af7Sopenharmony_ci 1012e5c31af7Sopenharmony_ciThis structure describes the following features: 1013e5c31af7Sopenharmony_ci 1014e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1015e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1016e5c31af7Sopenharmony_ci structure. 1017e5c31af7Sopenharmony_ci 1018e5c31af7Sopenharmony_ci:anchor-prefix: 1019e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_16bit_storage-features] 1020e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_multiview-features] 1021e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_variable_pointers-features] 1022e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_protected_memory-features] 1023e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_sampler_ycbcr_conversion-features] 1024e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_draw_parameters-features] 1025e5c31af7Sopenharmony_ci 1026e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan11Features 1027e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1028e5c31af7Sopenharmony_ci 1029e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan11Features.adoc[] 1030e5c31af7Sopenharmony_ci-- 1031e5c31af7Sopenharmony_ci 1032e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan12Features',desc='Structure describing the Vulkan 1.2 features that can be supported by an implementation',type='structs'] 1033e5c31af7Sopenharmony_ci-- 1034e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan12Features structure is defined as: 1035e5c31af7Sopenharmony_ci 1036e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan12Features.adoc[] 1037e5c31af7Sopenharmony_ci 1038e5c31af7Sopenharmony_ciThis structure describes the following features: 1039e5c31af7Sopenharmony_ci 1040e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1041e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1042e5c31af7Sopenharmony_ci structure. 1043e5c31af7Sopenharmony_ci 1044e5c31af7Sopenharmony_ci:anchor-prefix: 1045e5c31af7Sopenharmony_ci * [[features-samplerMirrorClampToEdge]] pname:samplerMirrorClampToEdge 1046e5c31af7Sopenharmony_ci indicates whether the implementation supports the 1047e5c31af7Sopenharmony_ci ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode. 1048e5c31af7Sopenharmony_ci If this feature is not enabled, the 1049e5c31af7Sopenharmony_ci ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode 1050e5c31af7Sopenharmony_ci must: not be used. 1051e5c31af7Sopenharmony_ci * [[features-drawIndirectCount]] pname:drawIndirectCount indicates whether 1052e5c31af7Sopenharmony_ci the implementation supports the flink:vkCmdDrawIndirectCount and 1053e5c31af7Sopenharmony_ci flink:vkCmdDrawIndexedIndirectCount functions. 1054e5c31af7Sopenharmony_ci If this feature is not enabled, these functions must: not be used. 1055e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_8bit_storage-features] 1056e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_atomic_int64-features] 1057e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_float16_int8-features] 1058e5c31af7Sopenharmony_ci * [[features-descriptorIndexing]] pname:descriptorIndexing indicates 1059e5c31af7Sopenharmony_ci whether the implementation supports the minimum set of descriptor 1060e5c31af7Sopenharmony_ci indexing features as described in the <<features-requirements, Feature 1061e5c31af7Sopenharmony_ci Requirements>> section. 1062e5c31af7Sopenharmony_ci Enabling the pname:descriptorIndexing member when flink:vkCreateDevice 1063e5c31af7Sopenharmony_ci is called does not imply the other minimum descriptor indexing features 1064e5c31af7Sopenharmony_ci are also enabled. 1065e5c31af7Sopenharmony_ci Those other descriptor indexing features must: be enabled individually 1066e5c31af7Sopenharmony_ci as needed by the application. 1067e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_descriptor_indexing-features] 1068e5c31af7Sopenharmony_ci * [[features-samplerFilterMinmax]] pname:samplerFilterMinmax indicates 1069e5c31af7Sopenharmony_ci whether the implementation supports a minimum set of required formats 1070e5c31af7Sopenharmony_ci supporting min/max filtering as defined by the 1071e5c31af7Sopenharmony_ci <<limits-filterMinmaxSingleComponentFormats-minimum-requirements, 1072e5c31af7Sopenharmony_ci pname:filterMinmaxSingleComponentFormats>> property minimum 1073e5c31af7Sopenharmony_ci requirements. 1074e5c31af7Sopenharmony_ci If this feature is not enabled, then 1075e5c31af7Sopenharmony_ci slink:VkSamplerReductionModeCreateInfo must: only use 1076e5c31af7Sopenharmony_ci ename:VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE. 1077e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_scalar_block_layout-features] 1078e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_imageless_framebuffer-features] 1079e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_uniform_buffer_standard_layout-features] 1080e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_subgroup_extended_types-features] 1081e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_separate_depth_stencil_layouts-features] 1082e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_host_query_reset-features] 1083e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_timeline_semaphore-features] 1084e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_buffer_device_address-features] 1085e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_vulkan_memory_model-features] 1086e5c31af7Sopenharmony_ci * [[features-shaderOutputViewportIndex]] pname:shaderOutputViewportIndex 1087e5c31af7Sopenharmony_ci indicates whether the implementation supports the 1088e5c31af7Sopenharmony_ci code:ShaderViewportIndex SPIR-V capability enabling variables decorated 1089e5c31af7Sopenharmony_ci with the code:ViewportIndex built-in to be exported from 1090e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,] 1091e5c31af7Sopenharmony_ci vertex or tessellation evaluation shaders. 1092e5c31af7Sopenharmony_ci If this feature is not enabled, the code:ViewportIndex built-in 1093e5c31af7Sopenharmony_ci decoration must: not be used on outputs in 1094e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,] 1095e5c31af7Sopenharmony_ci vertex or tessellation evaluation shaders. 1096e5c31af7Sopenharmony_ci * [[features-shaderOutputLayer]] pname:shaderOutputLayer indicates whether 1097e5c31af7Sopenharmony_ci the implementation supports the code:ShaderLayer SPIR-V capability 1098e5c31af7Sopenharmony_ci enabling variables decorated with the code:Layer built-in to be exported 1099e5c31af7Sopenharmony_ci from 1100e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,] 1101e5c31af7Sopenharmony_ci vertex or tessellation evaluation shaders. 1102e5c31af7Sopenharmony_ci If this feature is not enabled, the code:Layer built-in decoration must: 1103e5c31af7Sopenharmony_ci not be used on outputs in 1104e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader,VK_EXT_mesh_shader[mesh,] 1105e5c31af7Sopenharmony_ci vertex or tessellation evaluation shaders. 1106e5c31af7Sopenharmony_ci * [[features-subgroupBroadcastDynamicId]] If 1107e5c31af7Sopenharmony_ci pname:subgroupBroadcastDynamicId is ename:VK_TRUE, the "`Id`" operand of 1108e5c31af7Sopenharmony_ci code:OpGroupNonUniformBroadcast can: be dynamically uniform within a 1109e5c31af7Sopenharmony_ci subgroup, and the "`Index`" operand of 1110e5c31af7Sopenharmony_ci code:OpGroupNonUniformQuadBroadcast can: be dynamically uniform within 1111e5c31af7Sopenharmony_ci the derivative group. 1112e5c31af7Sopenharmony_ci If it is ename:VK_FALSE, these operands must: be constants. 1113e5c31af7Sopenharmony_ci 1114e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan12Features 1115e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1116e5c31af7Sopenharmony_ci 1117e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan12Features.adoc[] 1118e5c31af7Sopenharmony_ci-- 1119e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 1120e5c31af7Sopenharmony_ci 1121e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 1122e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan13Features',desc='Structure describing the Vulkan 1.3 features that can be supported by an implementation',type='structs'] 1123e5c31af7Sopenharmony_ci-- 1124e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan13Features structure is defined as: 1125e5c31af7Sopenharmony_ci 1126e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan13Features.adoc[] 1127e5c31af7Sopenharmony_ci 1128e5c31af7Sopenharmony_ciThis structure describes the following features: 1129e5c31af7Sopenharmony_ci 1130e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1131e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1132e5c31af7Sopenharmony_ci structure. 1133e5c31af7Sopenharmony_ci 1134e5c31af7Sopenharmony_ci:anchor-prefix: 1135e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_image_robustness-features] 1136e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_inline_uniform_block-features] 1137e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_pipeline_creation_cache_control-features] 1138e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_private_data-features] 1139e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_shader_demote_to_helper_invocation-features] 1140e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_terminate_invocation-features] 1141e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_subgroup_size_control-features] 1142e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_synchronization2-features] 1143e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_EXT_texture_compression_astc_hdr-features] 1144e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_zero_initialize_workgroup_memory-features] 1145e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_dynamic_rendering-features] 1146e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_shader_integer_dot_product-features] 1147e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=VK_KHR_maintenance4-features] 1148e5c31af7Sopenharmony_ci 1149e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan13Features 1150e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1151e5c31af7Sopenharmony_ci 1152e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan13Features.adoc[] 1153e5c31af7Sopenharmony_ci-- 1154e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 1155e5c31af7Sopenharmony_ci 1156e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] 1157e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVariablePointersFeatures',desc='Structure describing variable pointers features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointersFeaturesKHR VkPhysicalDeviceVariablePointerFeaturesKHR'] 1158e5c31af7Sopenharmony_ci-- 1159e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVariablePointersFeatures structure is defined as: 1160e5c31af7Sopenharmony_ci 1161e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeatures.adoc[] 1162e5c31af7Sopenharmony_ci 1163e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[] 1164e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1165e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeatures.adoc[] 1166e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1167e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 1168e5c31af7Sopenharmony_ci 1169e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[] 1170e5c31af7Sopenharmony_cior the equivalent 1171e5c31af7Sopenharmony_ci 1172e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeaturesKHR.adoc[] 1173e5c31af7Sopenharmony_ci 1174e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeaturesKHR.adoc[] 1175e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[] 1176e5c31af7Sopenharmony_ci 1177e5c31af7Sopenharmony_ciThis structure describes the following features: 1178e5c31af7Sopenharmony_ci 1179e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1180e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1181e5c31af7Sopenharmony_ci structure. 1182e5c31af7Sopenharmony_ci 1183e5c31af7Sopenharmony_ci// Must have preceding whitespace 1184e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1185e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1186e5c31af7Sopenharmony_ci// tag::VK_KHR_variable_pointers-features[] 1187e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-variablePointersStorageBuffer]] 1188e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer specifies whether the implementation 1189e5c31af7Sopenharmony_ci supports the SPIR-V code:VariablePointersStorageBuffer capability. 1190e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1191e5c31af7Sopenharmony_ci `SPV_KHR_variable_pointers` extension or the 1192e5c31af7Sopenharmony_ci code:VariablePointersStorageBuffer capability. 1193e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-variablePointers]] pname:variablePointers 1194e5c31af7Sopenharmony_ci specifies whether the implementation supports the SPIR-V 1195e5c31af7Sopenharmony_ci code:VariablePointers capability. 1196e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1197e5c31af7Sopenharmony_ci code:VariablePointers capability. 1198e5c31af7Sopenharmony_ci// end::VK_KHR_variable_pointers-features[] 1199e5c31af7Sopenharmony_ci 1200e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVariablePointersFeatures 1201e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1202e5c31af7Sopenharmony_ci 1203e5c31af7Sopenharmony_ci.Valid Usage 1204e5c31af7Sopenharmony_ci**** 1205e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431]] 1206e5c31af7Sopenharmony_ci If pname:variablePointers is enabled then 1207e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer must: also be enabled 1208e5c31af7Sopenharmony_ci**** 1209e5c31af7Sopenharmony_ci 1210e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVariablePointersFeatures.adoc[] 1211e5c31af7Sopenharmony_ci-- 1212e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[] 1213e5c31af7Sopenharmony_ci 1214e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[] 1215e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewFeatures',desc='Structure describing multiview features that can be supported by an implementation',type='structs'] 1216e5c31af7Sopenharmony_ci-- 1217e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewFeatures structure is defined as: 1218e5c31af7Sopenharmony_ci 1219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeatures.adoc[] 1220e5c31af7Sopenharmony_ci 1221e5c31af7Sopenharmony_ciifdef::VK_KHR_multiview[] 1222e5c31af7Sopenharmony_cior the equivalent 1223e5c31af7Sopenharmony_ci 1224e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeaturesKHR.adoc[] 1225e5c31af7Sopenharmony_ciendif::VK_KHR_multiview[] 1226e5c31af7Sopenharmony_ci 1227e5c31af7Sopenharmony_ciThis structure describes the following features: 1228e5c31af7Sopenharmony_ci 1229e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1230e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1231e5c31af7Sopenharmony_ci structure. 1232e5c31af7Sopenharmony_ci 1233e5c31af7Sopenharmony_ci// Must have preceding whitespace 1234e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1235e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1236e5c31af7Sopenharmony_ci// tag::VK_KHR_multiview-features[] 1237e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview]] pname:multiview specifies whether 1238e5c31af7Sopenharmony_ci the implementation supports multiview rendering within a render pass. 1239e5c31af7Sopenharmony_ci If this feature is not enabled, the view mask of each subpass must: 1240e5c31af7Sopenharmony_ci always be zero. 1241e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview-gs]] pname:multiviewGeometryShader 1242e5c31af7Sopenharmony_ci specifies whether the implementation supports multiview rendering within 1243e5c31af7Sopenharmony_ci a render pass, with <<geometry,geometry shaders>>. 1244e5c31af7Sopenharmony_ci If this feature is not enabled, then a pipeline compiled against a 1245e5c31af7Sopenharmony_ci subpass with a non-zero view mask must: not include a geometry shader. 1246e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview-tess]] 1247e5c31af7Sopenharmony_ci pname:multiviewTessellationShader specifies whether the implementation 1248e5c31af7Sopenharmony_ci supports multiview rendering within a render pass, with 1249e5c31af7Sopenharmony_ci <<tessellation,tessellation shaders>>. 1250e5c31af7Sopenharmony_ci If this feature is not enabled, then a pipeline compiled against a 1251e5c31af7Sopenharmony_ci subpass with a non-zero view mask must: not include any tessellation 1252e5c31af7Sopenharmony_ci shaders. 1253e5c31af7Sopenharmony_ci// end::VK_KHR_multiview-features[] 1254e5c31af7Sopenharmony_ci 1255e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewFeatures 1256e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1257e5c31af7Sopenharmony_ci 1258e5c31af7Sopenharmony_ci.Valid Usage 1259e5c31af7Sopenharmony_ci**** 1260e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580]] 1261e5c31af7Sopenharmony_ci If pname:multiviewGeometryShader is enabled then pname:multiview must: 1262e5c31af7Sopenharmony_ci also be enabled 1263e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581]] 1264e5c31af7Sopenharmony_ci If pname:multiviewTessellationShader is enabled then pname:multiview 1265e5c31af7Sopenharmony_ci must: also be enabled 1266e5c31af7Sopenharmony_ci**** 1267e5c31af7Sopenharmony_ci 1268e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewFeatures.adoc[] 1269e5c31af7Sopenharmony_ci-- 1270e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[] 1271e5c31af7Sopenharmony_ci 1272e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[] 1273e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float',type='structs'] 1274e5c31af7Sopenharmony_ci-- 1275e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT structure is defined 1276e5c31af7Sopenharmony_cias: 1277e5c31af7Sopenharmony_ci 1278e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.adoc[] 1279e5c31af7Sopenharmony_ci 1280e5c31af7Sopenharmony_ciThis structure describes the following features: 1281e5c31af7Sopenharmony_ci 1282e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1283e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1284e5c31af7Sopenharmony_ci structure. 1285e5c31af7Sopenharmony_ci 1286e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float-features[] 1287e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32Atomics]] pname:shaderBufferFloat32Atomics 1288e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1289e5c31af7Sopenharmony_ci and exchange atomic operations on storage buffers. 1290e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32AtomicAdd]] 1291e5c31af7Sopenharmony_ci pname:shaderBufferFloat32AtomicAdd indicates whether shaders can: 1292e5c31af7Sopenharmony_ci perform 32-bit floating-point add atomic operations on storage buffers. 1293e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64Atomics]] pname:shaderBufferFloat64Atomics 1294e5c31af7Sopenharmony_ci indicates whether shaders can: perform 64-bit floating-point load, store 1295e5c31af7Sopenharmony_ci and exchange atomic operations on storage buffers. 1296e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64AtomicAdd]] 1297e5c31af7Sopenharmony_ci pname:shaderBufferFloat64AtomicAdd indicates whether shaders can: 1298e5c31af7Sopenharmony_ci perform 64-bit floating-point add atomic operations on storage buffers. 1299e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32Atomics]] pname:shaderSharedFloat32Atomics 1300e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1301e5c31af7Sopenharmony_ci and exchange atomic operations on shared 1302e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1303e5c31af7Sopenharmony_ci and payload 1304e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1305e5c31af7Sopenharmony_ci memory. 1306e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32AtomicAdd]] 1307e5c31af7Sopenharmony_ci pname:shaderSharedFloat32AtomicAdd indicates whether shaders can: 1308e5c31af7Sopenharmony_ci perform 32-bit floating-point add atomic operations on shared 1309e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1310e5c31af7Sopenharmony_ci and payload 1311e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1312e5c31af7Sopenharmony_ci memory. 1313e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64Atomics]] pname:shaderSharedFloat64Atomics 1314e5c31af7Sopenharmony_ci indicates whether shaders can: perform 64-bit floating-point load, store 1315e5c31af7Sopenharmony_ci and exchange atomic operations on shared 1316e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1317e5c31af7Sopenharmony_ci and payload 1318e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1319e5c31af7Sopenharmony_ci memory. 1320e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64AtomicAdd]] 1321e5c31af7Sopenharmony_ci pname:shaderSharedFloat64AtomicAdd indicates whether shaders can: 1322e5c31af7Sopenharmony_ci perform 64-bit floating-point add atomic operations on shared 1323e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1324e5c31af7Sopenharmony_ci and payload 1325e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1326e5c31af7Sopenharmony_ci memory. 1327e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32Atomics]] pname:shaderImageFloat32Atomics 1328e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1329e5c31af7Sopenharmony_ci and exchange atomic image operations. 1330e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32AtomicAdd]] 1331e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicAdd indicates whether shaders can: perform 1332e5c31af7Sopenharmony_ci 32-bit floating-point add atomic image operations. 1333e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32Atomics]] pname:sparseImageFloat32Atomics 1334e5c31af7Sopenharmony_ci indicates whether 32-bit floating-point load, store and exchange atomic 1335e5c31af7Sopenharmony_ci operations can: be used on sparse images. 1336e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32AtomicAdd]] 1337e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicAdd indicates whether 32-bit 1338e5c31af7Sopenharmony_ci floating-point add atomic operations can: be used on sparse images. 1339e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float-features[] 1340e5c31af7Sopenharmony_ci 1341e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloatFeaturesEXT 1342e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1343e5c31af7Sopenharmony_ci 1344e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.adoc[] 1345e5c31af7Sopenharmony_ci-- 1346e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[] 1347e5c31af7Sopenharmony_ci 1348e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[] 1349e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float2',type='structs'] 1350e5c31af7Sopenharmony_ci-- 1351e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is defined 1352e5c31af7Sopenharmony_cias: 1353e5c31af7Sopenharmony_ci 1354e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.adoc[] 1355e5c31af7Sopenharmony_ci 1356e5c31af7Sopenharmony_ciThis structure describes the following features: 1357e5c31af7Sopenharmony_ci 1358e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1359e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1360e5c31af7Sopenharmony_ci structure. 1361e5c31af7Sopenharmony_ci 1362e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float2-features[] 1363e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16Atomics]] pname:shaderBufferFloat16Atomics 1364e5c31af7Sopenharmony_ci indicates whether shaders can: perform 16-bit floating-point load, 1365e5c31af7Sopenharmony_ci store, and exchange atomic operations on storage buffers. 1366e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16AtomicAdd]] 1367e5c31af7Sopenharmony_ci pname:shaderBufferFloat16AtomicAdd indicates whether shaders can: 1368e5c31af7Sopenharmony_ci perform 16-bit floating-point add atomic operations on storage buffers. 1369e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16AtomicMinMax]] 1370e5c31af7Sopenharmony_ci pname:shaderBufferFloat16AtomicMinMax indicates whether shaders can: 1371e5c31af7Sopenharmony_ci perform 16-bit floating-point min and max atomic operations on storage 1372e5c31af7Sopenharmony_ci buffers. 1373e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32AtomicMinMax]] 1374e5c31af7Sopenharmony_ci pname:shaderBufferFloat32AtomicMinMax indicates whether shaders can: 1375e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic operations on storage 1376e5c31af7Sopenharmony_ci buffers. 1377e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64AtomicMinMax]] 1378e5c31af7Sopenharmony_ci pname:shaderBufferFloat64AtomicMinMax indicates whether shaders can: 1379e5c31af7Sopenharmony_ci perform 64-bit floating-point min and max atomic operations on storage 1380e5c31af7Sopenharmony_ci buffers. 1381e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16Atomics]] pname:shaderSharedFloat16Atomics 1382e5c31af7Sopenharmony_ci indicates whether shaders can: perform 16-bit floating-point load, store 1383e5c31af7Sopenharmony_ci and exchange atomic operations on shared 1384e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1385e5c31af7Sopenharmony_ci and payload 1386e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1387e5c31af7Sopenharmony_ci memory. 1388e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16AtomicAdd]] 1389e5c31af7Sopenharmony_ci pname:shaderSharedFloat16AtomicAdd indicates whether shaders can: 1390e5c31af7Sopenharmony_ci perform 16-bit floating-point add atomic operations on shared 1391e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1392e5c31af7Sopenharmony_ci and payload 1393e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1394e5c31af7Sopenharmony_ci memory. 1395e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16AtomicMinMax]] 1396e5c31af7Sopenharmony_ci pname:shaderSharedFloat16AtomicMinMax indicates whether shaders can: 1397e5c31af7Sopenharmony_ci perform 16-bit floating-point min and max atomic operations on shared 1398e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1399e5c31af7Sopenharmony_ci and payload 1400e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1401e5c31af7Sopenharmony_ci memory. 1402e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32AtomicMinMax]] 1403e5c31af7Sopenharmony_ci pname:shaderSharedFloat32AtomicMinMax indicates whether shaders can: 1404e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic operations on shared 1405e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1406e5c31af7Sopenharmony_ci and payload 1407e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1408e5c31af7Sopenharmony_ci memory. 1409e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64AtomicMinMax]] 1410e5c31af7Sopenharmony_ci pname:shaderSharedFloat64AtomicMinMax indicates whether shaders can: 1411e5c31af7Sopenharmony_ci perform 64-bit floating-point min and max atomic operations on shared 1412e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1413e5c31af7Sopenharmony_ci and payload 1414e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1415e5c31af7Sopenharmony_ci memory. 1416e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32AtomicMinMax]] 1417e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicMinMax indicates whether shaders can: 1418e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic image operations. 1419e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32AtomicMinMax]] 1420e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicMinMax indicates whether 32-bit 1421e5c31af7Sopenharmony_ci floating-point min and max atomic operations can: be used on sparse 1422e5c31af7Sopenharmony_ci images. 1423e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float2-features[] 1424e5c31af7Sopenharmony_ci 1425e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT 1426e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1427e5c31af7Sopenharmony_ci 1428e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.adoc[] 1429e5c31af7Sopenharmony_ci-- 1430e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[] 1431e5c31af7Sopenharmony_ci 1432e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 1433e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicInt64Features',desc='Structure describing features supported by VK_KHR_shader_atomic_int64',type='structs',alias='VkPhysicalDeviceShaderAtomicInt64FeaturesKHR'] 1434e5c31af7Sopenharmony_ci-- 1435e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicInt64Features structure is defined as: 1436e5c31af7Sopenharmony_ci 1437e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64Features.adoc[] 1438e5c31af7Sopenharmony_ci 1439e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[] 1440e5c31af7Sopenharmony_cior the equivalent 1441e5c31af7Sopenharmony_ci 1442e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64FeaturesKHR.adoc[] 1443e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[] 1444e5c31af7Sopenharmony_ci 1445e5c31af7Sopenharmony_ciThis structure describes the following features: 1446e5c31af7Sopenharmony_ci 1447e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1448e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1449e5c31af7Sopenharmony_ci structure. 1450e5c31af7Sopenharmony_ci 1451e5c31af7Sopenharmony_ci// Must have preceding whitespace 1452e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1453e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1454e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_atomic_int64-features[] 1455e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderBufferInt64Atomics]] 1456e5c31af7Sopenharmony_ci pname:shaderBufferInt64Atomics indicates whether shaders can: perform 1457e5c31af7Sopenharmony_ci 64-bit unsigned and signed integer atomic operations on buffers. 1458e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderSharedInt64Atomics]] 1459e5c31af7Sopenharmony_ci pname:shaderSharedInt64Atomics indicates whether shaders can: perform 1460e5c31af7Sopenharmony_ci 64-bit unsigned and signed integer atomic operations on shared 1461e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1462e5c31af7Sopenharmony_ci and payload 1463e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1464e5c31af7Sopenharmony_ci memory. 1465e5c31af7Sopenharmony_ci// end::VK_KHR_shader_atomic_int64-features[] 1466e5c31af7Sopenharmony_ci 1467e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64Features 1468e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1469e5c31af7Sopenharmony_ci 1470e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicInt64Features.adoc[] 1471e5c31af7Sopenharmony_ci-- 1472e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 1473e5c31af7Sopenharmony_ci 1474e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[] 1475e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_image_atomic_int64',type='structs'] 1476e5c31af7Sopenharmony_ci-- 1477e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT structure is 1478e5c31af7Sopenharmony_cidefined as: 1479e5c31af7Sopenharmony_ci 1480e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.adoc[] 1481e5c31af7Sopenharmony_ci 1482e5c31af7Sopenharmony_ciThis structure describes the following features: 1483e5c31af7Sopenharmony_ci 1484e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1485e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1486e5c31af7Sopenharmony_ci structure. 1487e5c31af7Sopenharmony_ci * [[features-shaderImageInt64Atomics]] pname:shaderImageInt64Atomics 1488e5c31af7Sopenharmony_ci indicates whether shaders can: support 64-bit unsigned and signed 1489e5c31af7Sopenharmony_ci integer atomic operations on images. 1490e5c31af7Sopenharmony_ci * [[features-sparseImageInt64Atomics]] pname:sparseImageInt64Atomics 1491e5c31af7Sopenharmony_ci indicates whether 64-bit integer atomics can: be used on sparse images. 1492e5c31af7Sopenharmony_ci 1493e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64FeaturesEXT 1494e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1495e5c31af7Sopenharmony_ci 1496e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.adoc[] 1497e5c31af7Sopenharmony_ci-- 1498e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[] 1499e5c31af7Sopenharmony_ci 1500e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[] 1501e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice8BitStorageFeatures',desc='Structure describing features supported by VK_KHR_8bit_storage',type='structs',alias='VkPhysicalDevice8BitStorageFeaturesKHR'] 1502e5c31af7Sopenharmony_ci-- 1503e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice8BitStorageFeatures structure is defined as: 1504e5c31af7Sopenharmony_ci 1505e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeatures.adoc[] 1506e5c31af7Sopenharmony_ci 1507e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[] 1508e5c31af7Sopenharmony_cior the equivalent 1509e5c31af7Sopenharmony_ci 1510e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.adoc[] 1511e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[] 1512e5c31af7Sopenharmony_ci 1513e5c31af7Sopenharmony_ciThis structure describes the following features: 1514e5c31af7Sopenharmony_ci 1515e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1516e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1517e5c31af7Sopenharmony_ci structure. 1518e5c31af7Sopenharmony_ci 1519e5c31af7Sopenharmony_ci// Must have preceding whitespace 1520e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1521e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1522e5c31af7Sopenharmony_ci// tag::VK_KHR_8bit_storage-features[] 1523e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageBuffer8BitAccess]] 1524e5c31af7Sopenharmony_ci pname:storageBuffer8BitAccess indicates whether objects in the 1525e5c31af7Sopenharmony_ci code:StorageBuffer, 1526e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,] 1527e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1528e5c31af7Sopenharmony_ci or code:PhysicalStorageBuffer 1529e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1530e5c31af7Sopenharmony_ci storage class with the code:Block decoration can: have 8-bit integer 1531e5c31af7Sopenharmony_ci members. 1532e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1533e5c31af7Sopenharmony_ci in such objects. 1534e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1535e5c31af7Sopenharmony_ci code:StorageBuffer8BitAccess capability. 1536e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformAndStorageBuffer8BitAccess]] 1537e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer8BitAccess indicates whether objects in the 1538e5c31af7Sopenharmony_ci code:Uniform storage class with the code:Block decoration can: have 1539e5c31af7Sopenharmony_ci 8-bit integer members. 1540e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1541e5c31af7Sopenharmony_ci in such objects. 1542e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1543e5c31af7Sopenharmony_ci code:UniformAndStorageBuffer8BitAccess capability. 1544e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storagePushConstant8]] 1545e5c31af7Sopenharmony_ci pname:storagePushConstant8 indicates whether objects in the 1546e5c31af7Sopenharmony_ci code:PushConstant storage class can: have 8-bit integer members. 1547e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1548e5c31af7Sopenharmony_ci in such objects. 1549e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1550e5c31af7Sopenharmony_ci code:StoragePushConstant8 capability. 1551e5c31af7Sopenharmony_ci// end::VK_KHR_8bit_storage-features[] 1552e5c31af7Sopenharmony_ci 1553e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice8BitStorageFeatures 1554e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1555e5c31af7Sopenharmony_ci 1556e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice8BitStorageFeatures.adoc[] 1557e5c31af7Sopenharmony_ci-- 1558e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[] 1559e5c31af7Sopenharmony_ci 1560e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[] 1561e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice16BitStorageFeatures',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs'] 1562e5c31af7Sopenharmony_ci-- 1563e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice16BitStorageFeatures structure is defined as: 1564e5c31af7Sopenharmony_ci 1565e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeatures.adoc[] 1566e5c31af7Sopenharmony_ci 1567e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[] 1568e5c31af7Sopenharmony_cior the equivalent 1569e5c31af7Sopenharmony_ci 1570e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeaturesKHR.adoc[] 1571e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[] 1572e5c31af7Sopenharmony_ci 1573e5c31af7Sopenharmony_ciThis structure describes the following features: 1574e5c31af7Sopenharmony_ci 1575e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1576e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1577e5c31af7Sopenharmony_ci structure. 1578e5c31af7Sopenharmony_ci 1579e5c31af7Sopenharmony_ci// Must have preceding whitespace 1580e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1581e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1582e5c31af7Sopenharmony_ci// tag::VK_KHR_16bit_storage-features[] 1583e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageBuffer16BitAccess]] 1584e5c31af7Sopenharmony_ci pname:storageBuffer16BitAccess specifies whether objects in the 1585e5c31af7Sopenharmony_ci code:StorageBuffer, 1586e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,] 1587e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1588e5c31af7Sopenharmony_ci or code:PhysicalStorageBuffer 1589e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1590e5c31af7Sopenharmony_ci storage class with the code:Block decoration can: have 16-bit integer 1591e5c31af7Sopenharmony_ci and 16-bit floating-point members. 1592e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1593e5c31af7Sopenharmony_ci members must: not be used in such objects. 1594e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1595e5c31af7Sopenharmony_ci code:StorageBuffer16BitAccess capability. 1596e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformAndStorageBuffer16BitAccess]] 1597e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer16BitAccess specifies whether objects in 1598e5c31af7Sopenharmony_ci the code:Uniform storage class with the code:Block decoration can: have 1599e5c31af7Sopenharmony_ci 16-bit integer and 16-bit floating-point members. 1600e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1601e5c31af7Sopenharmony_ci members must: not be used in such objects. 1602e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1603e5c31af7Sopenharmony_ci code:UniformAndStorageBuffer16BitAccess capability. 1604e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storagePushConstant16]] 1605e5c31af7Sopenharmony_ci pname:storagePushConstant16 specifies whether objects in the 1606e5c31af7Sopenharmony_ci code:PushConstant storage class can: have 16-bit integer and 16-bit 1607e5c31af7Sopenharmony_ci floating-point members. 1608e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or floating-point members 1609e5c31af7Sopenharmony_ci must: not be used in such objects. 1610e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1611e5c31af7Sopenharmony_ci code:StoragePushConstant16 capability. 1612e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageInputOutput16]] 1613e5c31af7Sopenharmony_ci pname:storageInputOutput16 specifies whether objects in the code:Input 1614e5c31af7Sopenharmony_ci and code:Output storage classes can: have 16-bit integer and 16-bit 1615e5c31af7Sopenharmony_ci floating-point members. 1616e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1617e5c31af7Sopenharmony_ci members must: not be used in such objects. 1618e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1619e5c31af7Sopenharmony_ci code:StorageInputOutput16 capability. 1620e5c31af7Sopenharmony_ci// end::VK_KHR_16bit_storage-features[] 1621e5c31af7Sopenharmony_ci 1622e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice16BitStorageFeatures 1623e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1624e5c31af7Sopenharmony_ci 1625e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice16BitStorageFeatures.adoc[] 1626e5c31af7Sopenharmony_ci-- 1627e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[] 1628e5c31af7Sopenharmony_ci 1629e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_float16_int8[] 1630e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderFloat16Int8Features',desc='Structure describing features supported by VK_KHR_shader_float16_int8',type='structs',alias='VkPhysicalDeviceShaderFloat16Int8FeaturesKHR VkPhysicalDeviceFloat16Int8FeaturesKHR'] 1631e5c31af7Sopenharmony_ci-- 1632e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderFloat16Int8Features structure is defined as: 1633e5c31af7Sopenharmony_ci 1634e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8Features.adoc[] 1635e5c31af7Sopenharmony_ci 1636e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[] 1637e5c31af7Sopenharmony_cior the equivalent 1638e5c31af7Sopenharmony_ci 1639e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8FeaturesKHR.adoc[] 1640e5c31af7Sopenharmony_ci 1641e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloat16Int8FeaturesKHR.adoc[] 1642e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[] 1643e5c31af7Sopenharmony_ci 1644e5c31af7Sopenharmony_ciThis structure describes the following features: 1645e5c31af7Sopenharmony_ci 1646e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1647e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1648e5c31af7Sopenharmony_ci structure. 1649e5c31af7Sopenharmony_ci 1650e5c31af7Sopenharmony_ci// Must have preceding whitespace 1651e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1652e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1653e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_float16_int8-features[] 1654e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderFloat16]] pname:shaderFloat16 indicates 1655e5c31af7Sopenharmony_ci whether 16-bit floats (halfs) are supported in shader code. 1656e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the code:Float16 1657e5c31af7Sopenharmony_ci capability. 1658e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 1659e5c31af7Sopenharmony_ci allows for the code:Float16 SPIR-V capability: Declaring and using 1660e5c31af7Sopenharmony_ci 16-bit floats in the code:Private, 1661e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 1662e5c31af7Sopenharmony_ci code:Workgroup, 1663e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1664e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 1665e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 1666e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1667e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 1668e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 1669e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 1670e5c31af7Sopenharmony_ci not enabled. 1671e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInt8]] pname:shaderInt8 indicates 1672e5c31af7Sopenharmony_ci whether 8-bit integers (signed and unsigned) are supported in shader 1673e5c31af7Sopenharmony_ci code. 1674e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the code:Int8 1675e5c31af7Sopenharmony_ci capability. 1676e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 1677e5c31af7Sopenharmony_ci allows for the code:Int8 SPIR-V capability: Declaring and using 8-bit 1678e5c31af7Sopenharmony_ci integers in the code:Private, 1679e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 1680e5c31af7Sopenharmony_ci code:Workgroup, 1681e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1682e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 1683e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 1684e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1685e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 1686e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 1687e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 1688e5c31af7Sopenharmony_ci not enabled. 1689e5c31af7Sopenharmony_ci// end::VK_KHR_shader_float16_int8-features[] 1690e5c31af7Sopenharmony_ci 1691e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderFloat16Int8Features 1692e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1693e5c31af7Sopenharmony_ci 1694e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderFloat16Int8Features.adoc[] 1695e5c31af7Sopenharmony_ci-- 1696e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_float16_int8[] 1697e5c31af7Sopenharmony_ci 1698e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[] 1699e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderClockFeaturesKHR',desc='Structure describing features supported by VK_KHR_shader_clock',type='structs'] 1700e5c31af7Sopenharmony_ci-- 1701e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderClockFeaturesKHR structure is defined as: 1702e5c31af7Sopenharmony_ci 1703e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderClockFeaturesKHR.adoc[] 1704e5c31af7Sopenharmony_ci 1705e5c31af7Sopenharmony_ciThis structure describes the following features: 1706e5c31af7Sopenharmony_ci 1707e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1708e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1709e5c31af7Sopenharmony_ci structure. 1710e5c31af7Sopenharmony_ci * [[features-shaderSubgroupClock]] pname:shaderSubgroupClock indicates 1711e5c31af7Sopenharmony_ci whether shaders can: perform code:Subgroup scoped clock reads. 1712e5c31af7Sopenharmony_ci * [[features-shaderDeviceClock]] pname:shaderDeviceClock indicates whether 1713e5c31af7Sopenharmony_ci shaders can: perform code:Device scoped clock reads. 1714e5c31af7Sopenharmony_ci 1715e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderClockFeaturesKHR 1716e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1717e5c31af7Sopenharmony_ci 1718e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderClockFeaturesKHR.adoc[] 1719e5c31af7Sopenharmony_ci-- 1720e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[] 1721e5c31af7Sopenharmony_ci 1722e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1723e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSamplerYcbcrConversionFeatures',desc='Structure describing {YCbCr} conversion features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR'] 1724e5c31af7Sopenharmony_ci-- 1725e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSamplerYcbcrConversionFeatures structure is 1726e5c31af7Sopenharmony_cidefined as: 1727e5c31af7Sopenharmony_ci 1728e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.adoc[] 1729e5c31af7Sopenharmony_ci 1730e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[] 1731e5c31af7Sopenharmony_cior the equivalent 1732e5c31af7Sopenharmony_ci 1733e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.adoc[] 1734e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[] 1735e5c31af7Sopenharmony_ci 1736e5c31af7Sopenharmony_ciThis structure describes the following feature: 1737e5c31af7Sopenharmony_ci 1738e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1739e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1740e5c31af7Sopenharmony_ci structure. 1741e5c31af7Sopenharmony_ci 1742e5c31af7Sopenharmony_ci// Must have preceding whitespace 1743e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1744e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1745e5c31af7Sopenharmony_ci// tag::VK_KHR_sampler_ycbcr_conversion-features[] 1746e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-samplerYcbcrConversion]] 1747e5c31af7Sopenharmony_ci pname:samplerYcbcrConversion specifies whether the implementation 1748e5c31af7Sopenharmony_ci supports <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>. 1749e5c31af7Sopenharmony_ci If pname:samplerYcbcrConversion is ename:VK_FALSE, sampler {YCbCr} 1750e5c31af7Sopenharmony_ci conversion is not supported, and samplers using sampler {YCbCr} 1751e5c31af7Sopenharmony_ci conversion must: not be used. 1752e5c31af7Sopenharmony_ci// end::VK_KHR_sampler_ycbcr_conversion-features[] 1753e5c31af7Sopenharmony_ci 1754e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSamplerYcbcrConversionFeatures 1755e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1756e5c31af7Sopenharmony_ci 1757e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.adoc[] 1758e5c31af7Sopenharmony_ci-- 1759e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1760e5c31af7Sopenharmony_ci 1761e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1762e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProtectedMemoryFeatures',desc='Structure describing protected memory features that can be supported by an implementation',type='structs'] 1763e5c31af7Sopenharmony_ci-- 1764e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProtectedMemoryFeatures structure is defined as: 1765e5c31af7Sopenharmony_ci 1766e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProtectedMemoryFeatures.adoc[] 1767e5c31af7Sopenharmony_ci 1768e5c31af7Sopenharmony_ciThis structure describes the following feature: 1769e5c31af7Sopenharmony_ci 1770e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1771e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1772e5c31af7Sopenharmony_ci structure. 1773e5c31af7Sopenharmony_ci 1774e5c31af7Sopenharmony_ci// Must have preceding whitespace 1775e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1776e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1777e5c31af7Sopenharmony_ci// tag::VK_KHR_protected_memory-features[] 1778e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-protectedMemory]] pname:protectedMemory 1779e5c31af7Sopenharmony_ci specifies whether <<memory-protected-memory, protected memory>> is 1780e5c31af7Sopenharmony_ci supported. 1781e5c31af7Sopenharmony_ci// end::VK_KHR_protected_memory-features[] 1782e5c31af7Sopenharmony_ci 1783e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProtectedMemoryFeatures 1784e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1785e5c31af7Sopenharmony_ci 1786e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.adoc[] 1787e5c31af7Sopenharmony_ci-- 1788e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1789e5c31af7Sopenharmony_ci 1790e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[] 1791e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',desc='Structure describing advanced blending features that can be supported by an implementation',type='structs'] 1792e5c31af7Sopenharmony_ci-- 1793e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT structure is 1794e5c31af7Sopenharmony_cidefined as: 1795e5c31af7Sopenharmony_ci 1796e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.adoc[] 1797e5c31af7Sopenharmony_ci 1798e5c31af7Sopenharmony_ciThis structure describes the following feature: 1799e5c31af7Sopenharmony_ci 1800e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1801e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1802e5c31af7Sopenharmony_ci structure. 1803e5c31af7Sopenharmony_ci * [[features-advancedBlendCoherentOperations]] 1804e5c31af7Sopenharmony_ci pname:advancedBlendCoherentOperations specifies whether blending using 1805e5c31af7Sopenharmony_ci <<framebuffer-blend-advanced,advanced blend operations>> is guaranteed 1806e5c31af7Sopenharmony_ci to execute atomically and in <<drawing-primitive-order, primitive 1807e5c31af7Sopenharmony_ci order>>. 1808e5c31af7Sopenharmony_ci If this is ename:VK_TRUE, 1809e5c31af7Sopenharmony_ci ename:VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT is treated the 1810e5c31af7Sopenharmony_ci same as ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, and advanced blending 1811e5c31af7Sopenharmony_ci needs no additional synchronization over basic blending. 1812e5c31af7Sopenharmony_ci If this is ename:VK_FALSE, then memory dependencies are required to 1813e5c31af7Sopenharmony_ci guarantee order between two advanced blending operations that occur on 1814e5c31af7Sopenharmony_ci the same sample. 1815e5c31af7Sopenharmony_ci 1816e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT 1817e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1818e5c31af7Sopenharmony_ci 1819e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.adoc[] 1820e5c31af7Sopenharmony_ci-- 1821e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[] 1822e5c31af7Sopenharmony_ci 1823e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[] 1824e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceConditionalRenderingFeaturesEXT',desc='Structure describing if a secondary command buffer can be executed if conditional rendering is active in the primary command buffer',type='structs'] 1825e5c31af7Sopenharmony_ci-- 1826e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is 1827e5c31af7Sopenharmony_cidefined as: 1828e5c31af7Sopenharmony_ci 1829e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.adoc[] 1830e5c31af7Sopenharmony_ci 1831e5c31af7Sopenharmony_ciThis structure describes the following features: 1832e5c31af7Sopenharmony_ci 1833e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1834e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1835e5c31af7Sopenharmony_ci structure. 1836e5c31af7Sopenharmony_ci * [[features-conditionalRendering]] pname:conditionalRendering specifies 1837e5c31af7Sopenharmony_ci whether conditional rendering is supported. 1838e5c31af7Sopenharmony_ci * [[features-inheritedConditionalRendering]] 1839e5c31af7Sopenharmony_ci pname:inheritedConditionalRendering specifies whether a secondary 1840e5c31af7Sopenharmony_ci command buffer can: be executed while conditional rendering is active in 1841e5c31af7Sopenharmony_ci the primary command buffer. 1842e5c31af7Sopenharmony_ci 1843e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceConditionalRenderingFeaturesEXT 1844e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1845e5c31af7Sopenharmony_ci 1846e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.adoc[] 1847e5c31af7Sopenharmony_ci-- 1848e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[] 1849e5c31af7Sopenharmony_ci 1850e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1851e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDrawParametersFeatures',desc='Structure describing shader draw parameter features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDrawParameterFeatures'] 1852e5c31af7Sopenharmony_ci-- 1853e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDrawParametersFeatures structure is defined 1854e5c31af7Sopenharmony_cias: 1855e5c31af7Sopenharmony_ci 1856e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParametersFeatures.adoc[] 1857e5c31af7Sopenharmony_ci 1858e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[] 1859e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.adoc[] 1860e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 1861e5c31af7Sopenharmony_ci 1862e5c31af7Sopenharmony_ciThis structure describes the following feature: 1863e5c31af7Sopenharmony_ci 1864e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1865e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1866e5c31af7Sopenharmony_ci structure. 1867e5c31af7Sopenharmony_ci 1868e5c31af7Sopenharmony_ci// Must have preceding whitespace 1869e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1870e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1871e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_draw_parameters-features[] 1872e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderDrawParameters]] 1873e5c31af7Sopenharmony_ci pname:shaderDrawParameters specifies whether the implementation supports 1874e5c31af7Sopenharmony_ci the SPIR-V code:DrawParameters capability. 1875e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1876e5c31af7Sopenharmony_ci `SPV_KHR_shader_draw_parameters` extension or the code:DrawParameters 1877e5c31af7Sopenharmony_ci capability. 1878e5c31af7Sopenharmony_ci// end::VK_KHR_shader_draw_parameters-features[] 1879e5c31af7Sopenharmony_ci 1880e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDrawParametersFeatures 1881e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1882e5c31af7Sopenharmony_ci 1883e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDrawParametersFeatures.adoc[] 1884e5c31af7Sopenharmony_ci-- 1885e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1886e5c31af7Sopenharmony_ci 1887e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[] 1888e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesNV',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs'] 1889e5c31af7Sopenharmony_ci-- 1890e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is defined as: 1891e5c31af7Sopenharmony_ci 1892e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.adoc[] 1893e5c31af7Sopenharmony_ci 1894e5c31af7Sopenharmony_ciThis structure describes the following features: 1895e5c31af7Sopenharmony_ci 1896e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1897e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1898e5c31af7Sopenharmony_ci structure. 1899e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1900e5c31af7Sopenharmony_ci * pname:taskShader specifies whether task shaders are supported. 1901e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1902e5c31af7Sopenharmony_ciifndef::VK_EXT_mesh_shader[] 1903e5c31af7Sopenharmony_ci * [[{vuprefix}features-taskShader]] pname:taskShader specifies whether 1904e5c31af7Sopenharmony_ci task shaders are supported. 1905e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1906e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_TASK_BIT_NV 1907e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV enum values must: not be 1908e5c31af7Sopenharmony_ci used. 1909e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1910e5c31af7Sopenharmony_ci * pname:meshShader specifies whether mesh shaders are supported. 1911e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1912e5c31af7Sopenharmony_ciifndef::VK_EXT_mesh_shader[] 1913e5c31af7Sopenharmony_ci * [[{vuprefix}features-meshShader]] pname:meshShader specifies whether 1914e5c31af7Sopenharmony_ci mesh shaders are supported. 1915e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1916e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_MESH_BIT_NV 1917e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV enum values must: not be 1918e5c31af7Sopenharmony_ci used. 1919e5c31af7Sopenharmony_ci 1920e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesNV 1921e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1922e5c31af7Sopenharmony_ci 1923e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesNV.adoc[] 1924e5c31af7Sopenharmony_ci-- 1925e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[] 1926e5c31af7Sopenharmony_ci 1927e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 1928e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesEXT',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs'] 1929e5c31af7Sopenharmony_ci-- 1930e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesEXT structure is defined as: 1931e5c31af7Sopenharmony_ci 1932e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesEXT.adoc[] 1933e5c31af7Sopenharmony_ci 1934e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 1935e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1936e5c31af7Sopenharmony_ci structure. 1937e5c31af7Sopenharmony_ci * [[features-taskShader]] pname:taskShader specifies whether task shaders 1938e5c31af7Sopenharmony_ci are supported. 1939e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_TASK_BIT_EXT 1940e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT enum values must: not be 1941e5c31af7Sopenharmony_ci used. 1942e5c31af7Sopenharmony_ci * [[features-meshShader]] pname:meshShader specifies whether mesh shaders 1943e5c31af7Sopenharmony_ci are supported. 1944e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_MESH_BIT_EXT 1945e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT enum values must: not be 1946e5c31af7Sopenharmony_ci used. 1947e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[] 1948e5c31af7Sopenharmony_ci * [[features-multiview-mesh]] pname:multiviewMeshShader specifies whether 1949e5c31af7Sopenharmony_ci the implementation supports <<features-multiview, pname:multiview>> 1950e5c31af7Sopenharmony_ci rendering within a render pass, with mesh shaders. 1951e5c31af7Sopenharmony_ci If this feature is not enabled, then a pipeline compiled against a 1952e5c31af7Sopenharmony_ci subpass with a non-zero view mask must: not include a mesh shader. 1953e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[] 1954e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 1955e5c31af7Sopenharmony_ci * [[features-primitiveFragmentShadingRate-mesh]] 1956e5c31af7Sopenharmony_ci pname:primitiveFragmentShadingRateMeshShader indicates that the 1957e5c31af7Sopenharmony_ci implementation supports the <<primsrast-fragment-shading-rate-primitive, 1958e5c31af7Sopenharmony_ci primitive fragment shading rate>> in mesh shaders. 1959e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 1960e5c31af7Sopenharmony_ci * [[features-meshShaderQueries]] pname:meshShaderQueries indicates that 1961e5c31af7Sopenharmony_ci the implementation supports creating query pools using the 1962e5c31af7Sopenharmony_ci ename:VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT query type and 1963e5c31af7Sopenharmony_ci statistic queries containing the 1964e5c31af7Sopenharmony_ci ename:VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT and 1965e5c31af7Sopenharmony_ci ename:VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT flags 1966e5c31af7Sopenharmony_ci 1967e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesEXT 1968e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 1969e5c31af7Sopenharmony_ci 1970e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[] 1971e5c31af7Sopenharmony_ciThe corresponding features of the sname:VkPhysicalDeviceMeshShaderFeaturesNV 1972e5c31af7Sopenharmony_cistructure must: match those in sname:VkPhysicalDeviceMeshShaderFeaturesEXT. 1973e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[] 1974e5c31af7Sopenharmony_ci 1975e5c31af7Sopenharmony_ci.Valid Usage 1976e5c31af7Sopenharmony_ci**** 1977e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[] 1978e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032]] 1979e5c31af7Sopenharmony_ci If pname:multiviewMeshShader is enabled then 1980e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceMultiviewFeaturesKHR::pname:multiview must: also 1981e5c31af7Sopenharmony_ci be enabled 1982e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[] 1983e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 1984e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033]] 1985e5c31af7Sopenharmony_ci If pname:primitiveFragmentShadingRateMeshShader is enabled then 1986e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR::pname:primitiveFragmentShadingRate 1987e5c31af7Sopenharmony_ci must: also be enabled 1988e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 1989e5c31af7Sopenharmony_ci**** 1990e5c31af7Sopenharmony_ci 1991e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesEXT.adoc[] 1992e5c31af7Sopenharmony_ci-- 1993e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 1994e5c31af7Sopenharmony_ci 1995e5c31af7Sopenharmony_ciifdef::VK_NV_memory_decompression[] 1996e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryDecompressionFeaturesNV',desc='Structure describing if memory decompression is supported by an implementation',type='structs'] 1997e5c31af7Sopenharmony_ci-- 1998e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryDecompressionFeaturesNV structure is defined 1999e5c31af7Sopenharmony_cias: 2000e5c31af7Sopenharmony_ci 2001e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryDecompressionFeaturesNV.adoc[] 2002e5c31af7Sopenharmony_ci 2003e5c31af7Sopenharmony_ciThis structure describes the following features: 2004e5c31af7Sopenharmony_ci 2005e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2006e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2007e5c31af7Sopenharmony_ci structure. 2008e5c31af7Sopenharmony_ci * [[features-memoryDecompression]] pname:memoryDecompression indicates 2009e5c31af7Sopenharmony_ci whether memory decompression is supported. 2010e5c31af7Sopenharmony_ci 2011e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryDecompressionFeaturesNV 2012e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2013e5c31af7Sopenharmony_ci 2014e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryDecompressionFeaturesNV.adoc[] 2015e5c31af7Sopenharmony_ci-- 2016e5c31af7Sopenharmony_ciendif::VK_NV_memory_decompression[] 2017e5c31af7Sopenharmony_ci 2018e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2019e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorIndexingFeatures',desc='Structure describing descriptor indexing features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDescriptorIndexingFeaturesEXT'] 2020e5c31af7Sopenharmony_ci-- 2021e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorIndexingFeatures structure is defined 2022e5c31af7Sopenharmony_cias: 2023e5c31af7Sopenharmony_ci 2024e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeatures.adoc[] 2025e5c31af7Sopenharmony_ci 2026e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[] 2027e5c31af7Sopenharmony_cior the equivalent 2028e5c31af7Sopenharmony_ci 2029e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.adoc[] 2030e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[] 2031e5c31af7Sopenharmony_ci 2032e5c31af7Sopenharmony_ciThis structure describes the following features: 2033e5c31af7Sopenharmony_ci 2034e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2035e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2036e5c31af7Sopenharmony_ci structure. 2037e5c31af7Sopenharmony_ci 2038e5c31af7Sopenharmony_ci// Must have preceding whitespace 2039e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2040e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2041e5c31af7Sopenharmony_ci// tag::VK_EXT_descriptor_indexing-features[] 2042e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInputAttachmentArrayDynamicIndexing]] 2043e5c31af7Sopenharmony_ci pname:shaderInputAttachmentArrayDynamicIndexing indicates whether arrays 2044e5c31af7Sopenharmony_ci of input attachments can: be indexed by dynamically uniform integer 2045e5c31af7Sopenharmony_ci expressions in shader code. 2046e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2047e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: be indexed only by 2048e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 2049e5c31af7Sopenharmony_ci code. 2050e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2051e5c31af7Sopenharmony_ci code:InputAttachmentArrayDynamicIndexing capability. 2052e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformTexelBufferArrayDynamicIndexing]] 2053e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayDynamicIndexing indicates whether 2054e5c31af7Sopenharmony_ci arrays of uniform texel buffers can: be indexed by dynamically uniform 2055e5c31af7Sopenharmony_ci integer expressions in shader code. 2056e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2057e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: be indexed only by 2058e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 2059e5c31af7Sopenharmony_ci code. 2060e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2061e5c31af7Sopenharmony_ci code:UniformTexelBufferArrayDynamicIndexing capability. 2062e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageTexelBufferArrayDynamicIndexing]] 2063e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayDynamicIndexing indicates whether 2064e5c31af7Sopenharmony_ci arrays of storage texel buffers can: be indexed by dynamically uniform 2065e5c31af7Sopenharmony_ci integer expressions in shader code. 2066e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2067e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: be indexed only by 2068e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 2069e5c31af7Sopenharmony_ci code. 2070e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2071e5c31af7Sopenharmony_ci code:StorageTexelBufferArrayDynamicIndexing capability. 2072e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformBufferArrayNonUniformIndexing]] 2073e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayNonUniformIndexing indicates whether 2074e5c31af7Sopenharmony_ci arrays of uniform buffers can: be indexed by non-uniform integer 2075e5c31af7Sopenharmony_ci expressions in shader code. 2076e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2077e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or 2078e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: not be indexed by 2079e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2080e5c31af7Sopenharmony_ci code. 2081e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2082e5c31af7Sopenharmony_ci code:UniformBufferArrayNonUniformIndexing capability. 2083e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderSampledImageArrayNonUniformIndexing]] 2084e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayNonUniformIndexing indicates whether arrays 2085e5c31af7Sopenharmony_ci of samplers or sampled images can: be indexed by non-uniform integer 2086e5c31af7Sopenharmony_ci expressions in shader code. 2087e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2088e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 2089e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 2090e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: not be indexed by 2091e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2092e5c31af7Sopenharmony_ci code. 2093e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2094e5c31af7Sopenharmony_ci code:SampledImageArrayNonUniformIndexing capability. 2095e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageBufferArrayNonUniformIndexing]] 2096e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayNonUniformIndexing indicates whether 2097e5c31af7Sopenharmony_ci arrays of storage buffers can: be indexed by non-uniform integer 2098e5c31af7Sopenharmony_ci expressions in shader code. 2099e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2100e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or 2101e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: not be indexed by 2102e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2103e5c31af7Sopenharmony_ci code. 2104e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2105e5c31af7Sopenharmony_ci code:StorageBufferArrayNonUniformIndexing capability. 2106e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageImageArrayNonUniformIndexing]] 2107e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayNonUniformIndexing indicates whether arrays 2108e5c31af7Sopenharmony_ci of storage images can: be indexed by non-uniform integer expressions in 2109e5c31af7Sopenharmony_ci shader code. 2110e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2111e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: not be indexed by 2112e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2113e5c31af7Sopenharmony_ci code. 2114e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2115e5c31af7Sopenharmony_ci code:StorageImageArrayNonUniformIndexing capability. 2116e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInputAttachmentArrayNonUniformIndexing]] 2117e5c31af7Sopenharmony_ci pname:shaderInputAttachmentArrayNonUniformIndexing indicates whether 2118e5c31af7Sopenharmony_ci arrays of input attachments can: be indexed by non-uniform integer 2119e5c31af7Sopenharmony_ci expressions in shader code. 2120e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2121e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: not be indexed by 2122e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2123e5c31af7Sopenharmony_ci code. 2124e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2125e5c31af7Sopenharmony_ci code:InputAttachmentArrayNonUniformIndexing capability. 2126e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformTexelBufferArrayNonUniformIndexing]] 2127e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayNonUniformIndexing indicates whether 2128e5c31af7Sopenharmony_ci arrays of uniform texel buffers can: be indexed by non-uniform integer 2129e5c31af7Sopenharmony_ci expressions in shader code. 2130e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2131e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: not be indexed by 2132e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2133e5c31af7Sopenharmony_ci code. 2134e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2135e5c31af7Sopenharmony_ci code:UniformTexelBufferArrayNonUniformIndexing capability. 2136e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageTexelBufferArrayNonUniformIndexing]] 2137e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayNonUniformIndexing indicates whether 2138e5c31af7Sopenharmony_ci arrays of storage texel buffers can: be indexed by non-uniform integer 2139e5c31af7Sopenharmony_ci expressions in shader code. 2140e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 2141e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: not be indexed by 2142e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 2143e5c31af7Sopenharmony_ci code. 2144e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2145e5c31af7Sopenharmony_ci code:StorageTexelBufferArrayNonUniformIndexing capability. 2146e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUniformBufferUpdateAfterBind]] 2147e5c31af7Sopenharmony_ci pname:descriptorBindingUniformBufferUpdateAfterBind indicates whether 2148e5c31af7Sopenharmony_ci the implementation supports updating uniform buffer descriptors after a 2149e5c31af7Sopenharmony_ci set is bound. 2150e5c31af7Sopenharmony_ci If this feature is not enabled, 2151e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2152e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER. 2153e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingSampledImageUpdateAfterBind]] 2154e5c31af7Sopenharmony_ci pname:descriptorBindingSampledImageUpdateAfterBind indicates whether the 2155e5c31af7Sopenharmony_ci implementation supports updating sampled image descriptors after a set 2156e5c31af7Sopenharmony_ci is bound. 2157e5c31af7Sopenharmony_ci If this feature is not enabled, 2158e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2159e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 2160e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 2161e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE. 2162e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageImageUpdateAfterBind]] 2163e5c31af7Sopenharmony_ci pname:descriptorBindingStorageImageUpdateAfterBind indicates whether the 2164e5c31af7Sopenharmony_ci implementation supports updating storage image descriptors after a set 2165e5c31af7Sopenharmony_ci is bound. 2166e5c31af7Sopenharmony_ci If this feature is not enabled, 2167e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2168e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE. 2169e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageBufferUpdateAfterBind]] 2170e5c31af7Sopenharmony_ci pname:descriptorBindingStorageBufferUpdateAfterBind indicates whether 2171e5c31af7Sopenharmony_ci the implementation supports updating storage buffer descriptors after a 2172e5c31af7Sopenharmony_ci set is bound. 2173e5c31af7Sopenharmony_ci If this feature is not enabled, 2174e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2175e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER. 2176e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUniformTexelBufferUpdateAfterBind]] 2177e5c31af7Sopenharmony_ci pname:descriptorBindingUniformTexelBufferUpdateAfterBind indicates 2178e5c31af7Sopenharmony_ci whether the implementation supports updating uniform texel buffer 2179e5c31af7Sopenharmony_ci descriptors after a set is bound. 2180e5c31af7Sopenharmony_ci If this feature is not enabled, 2181e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2182e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER. 2183e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageTexelBufferUpdateAfterBind]] 2184e5c31af7Sopenharmony_ci pname:descriptorBindingStorageTexelBufferUpdateAfterBind indicates 2185e5c31af7Sopenharmony_ci whether the implementation supports updating storage texel buffer 2186e5c31af7Sopenharmony_ci descriptors after a set is bound. 2187e5c31af7Sopenharmony_ci If this feature is not enabled, 2188e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2189e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER. 2190e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUpdateUnusedWhilePending]] 2191e5c31af7Sopenharmony_ci pname:descriptorBindingUpdateUnusedWhilePending indicates whether the 2192e5c31af7Sopenharmony_ci implementation supports updating descriptors while the set is in use. 2193e5c31af7Sopenharmony_ci If this feature is not enabled, 2194e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT must: not be 2195e5c31af7Sopenharmony_ci used. 2196e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingPartiallyBound]] 2197e5c31af7Sopenharmony_ci pname:descriptorBindingPartiallyBound indicates whether the 2198e5c31af7Sopenharmony_ci implementation supports statically using a descriptor set binding in 2199e5c31af7Sopenharmony_ci which some descriptors are not valid. 2200e5c31af7Sopenharmony_ci If this feature is not enabled, 2201e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT must: not be used. 2202e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingVariableDescriptorCount]] 2203e5c31af7Sopenharmony_ci pname:descriptorBindingVariableDescriptorCount indicates whether the 2204e5c31af7Sopenharmony_ci implementation supports descriptor sets with a variable-sized last 2205e5c31af7Sopenharmony_ci binding. 2206e5c31af7Sopenharmony_ci If this feature is not enabled, 2207e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT must: not be 2208e5c31af7Sopenharmony_ci used. 2209e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-runtimeDescriptorArray]] 2210e5c31af7Sopenharmony_ci pname:runtimeDescriptorArray indicates whether the implementation 2211e5c31af7Sopenharmony_ci supports the SPIR-V code:RuntimeDescriptorArray capability. 2212e5c31af7Sopenharmony_ci If this feature is not enabled, descriptors must: not be declared in 2213e5c31af7Sopenharmony_ci runtime arrays. 2214e5c31af7Sopenharmony_ci// end::VK_EXT_descriptor_indexing-features[] 2215e5c31af7Sopenharmony_ci 2216e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorIndexingFeatures 2217e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2218e5c31af7Sopenharmony_ci 2219e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorIndexingFeatures.adoc[] 2220e5c31af7Sopenharmony_ci-- 2221e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2222e5c31af7Sopenharmony_ci 2223e5c31af7Sopenharmony_ciifdef::VK_NV_copy_memory_indirect[] 2224e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCopyMemoryIndirectFeaturesNV',desc='Structure describing indirect copy features supported by an implementation',type='structs'] 2225e5c31af7Sopenharmony_ci-- 2226e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCopyMemoryIndirectFeaturesNV structure is defined 2227e5c31af7Sopenharmony_cias: 2228e5c31af7Sopenharmony_ci 2229e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.adoc[] 2230e5c31af7Sopenharmony_ci 2231e5c31af7Sopenharmony_ciThis structure describes the following features: 2232e5c31af7Sopenharmony_ci 2233e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2234e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2235e5c31af7Sopenharmony_ci structure. 2236e5c31af7Sopenharmony_ci * [[features-indirectCopy]] pname:indirectCopy indicates whether 2237e5c31af7Sopenharmony_ci <<indirect-copies, indirect copies>> are supported. 2238e5c31af7Sopenharmony_ci 2239e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCopyMemoryIndirectFeaturesNV 2240e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2241e5c31af7Sopenharmony_ci 2242e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.adoc[] 2243e5c31af7Sopenharmony_ci-- 2244e5c31af7Sopenharmony_ciendif::VK_NV_copy_memory_indirect[] 2245e5c31af7Sopenharmony_ci 2246e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[] 2247e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR',desc='Structure describing if fetching of vertex attribute may be repeated for instanced rendering',type='structs',alias='VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT'] 2248e5c31af7Sopenharmony_ci-- 2249e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR structure is 2250e5c31af7Sopenharmony_cidefined as: 2251e5c31af7Sopenharmony_ci 2252e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.adoc[] 2253e5c31af7Sopenharmony_ci 2254e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[] 2255e5c31af7Sopenharmony_cior the equivalent 2256e5c31af7Sopenharmony_ci 2257e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.adoc[] 2258e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[] 2259e5c31af7Sopenharmony_ci 2260e5c31af7Sopenharmony_ciThis structure describes the following features: 2261e5c31af7Sopenharmony_ci 2262e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2263e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2264e5c31af7Sopenharmony_ci structure. 2265e5c31af7Sopenharmony_ci * [[features-vertexAttributeInstanceRateDivisor]] 2266e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateDivisor specifies whether vertex 2267e5c31af7Sopenharmony_ci attribute fetching may be repeated in the case of instanced rendering. 2268e5c31af7Sopenharmony_ci * [[features-vertexAttributeInstanceRateZeroDivisor]] 2269e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateZeroDivisor specifies whether a zero 2270e5c31af7Sopenharmony_ci value for slink:VkVertexInputBindingDivisorDescriptionEXT::pname:divisor 2271e5c31af7Sopenharmony_ci is supported. 2272e5c31af7Sopenharmony_ci 2273e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR 2274e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2275e5c31af7Sopenharmony_ci 2276e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR.adoc[] 2277e5c31af7Sopenharmony_ci-- 2278e5c31af7Sopenharmony_ciendif::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[] 2279e5c31af7Sopenharmony_ci 2280e5c31af7Sopenharmony_ciifdef::VK_EXT_astc_decode_mode[] 2281e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceASTCDecodeFeaturesEXT',desc='Structure describing ASTC decode mode features',type='structs'] 2282e5c31af7Sopenharmony_ci-- 2283e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is defined as: 2284e5c31af7Sopenharmony_ci 2285e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.adoc[] 2286e5c31af7Sopenharmony_ci 2287e5c31af7Sopenharmony_ciThis structure describes the following feature: 2288e5c31af7Sopenharmony_ci 2289e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2290e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2291e5c31af7Sopenharmony_ci structure. 2292e5c31af7Sopenharmony_ci * [[features-astc-decodeModeSharedExponent]] 2293e5c31af7Sopenharmony_ci pname:decodeModeSharedExponent indicates whether the implementation 2294e5c31af7Sopenharmony_ci supports decoding ASTC compressed formats to 2295e5c31af7Sopenharmony_ci ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision. 2296e5c31af7Sopenharmony_ci 2297e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceASTCDecodeFeaturesEXT 2298e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2299e5c31af7Sopenharmony_ci 2300e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.adoc[] 2301e5c31af7Sopenharmony_ci-- 2302e5c31af7Sopenharmony_ciendif::VK_EXT_astc_decode_mode[] 2303e5c31af7Sopenharmony_ci 2304e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 2305e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTransformFeedbackFeaturesEXT',desc='Structure describing transform feedback features that can be supported by an implementation',type='structs'] 2306e5c31af7Sopenharmony_ci-- 2307e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTransformFeedbackFeaturesEXT structure is defined 2308e5c31af7Sopenharmony_cias: 2309e5c31af7Sopenharmony_ci 2310e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.adoc[] 2311e5c31af7Sopenharmony_ci 2312e5c31af7Sopenharmony_ciThis structure describes the following features: 2313e5c31af7Sopenharmony_ci 2314e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2315e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2316e5c31af7Sopenharmony_ci structure. 2317e5c31af7Sopenharmony_ci * [[features-transformFeedback]] pname:transformFeedback indicates whether 2318e5c31af7Sopenharmony_ci the implementation supports transform feedback and shader modules can: 2319e5c31af7Sopenharmony_ci declare the code:TransformFeedback capability. 2320e5c31af7Sopenharmony_ci * [[features-geometryStreams]] pname:geometryStreams indicates whether the 2321e5c31af7Sopenharmony_ci implementation supports the code:GeometryStreams SPIR-V capability. 2322e5c31af7Sopenharmony_ci 2323e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTransformFeedbackFeaturesEXT 2324e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2325e5c31af7Sopenharmony_ci 2326e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.adoc[] 2327e5c31af7Sopenharmony_ci-- 2328e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 2329e5c31af7Sopenharmony_ci 2330e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] 2331e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanMemoryModelFeatures',desc='Structure describing features supported by the memory model',type='structs'] 2332e5c31af7Sopenharmony_ci-- 2333e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanMemoryModelFeatures structure is defined as: 2334e5c31af7Sopenharmony_ci 2335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.adoc[] 2336e5c31af7Sopenharmony_ci 2337e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[] 2338e5c31af7Sopenharmony_cior the equivalent 2339e5c31af7Sopenharmony_ci 2340e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeaturesKHR.adoc[] 2341e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[] 2342e5c31af7Sopenharmony_ci 2343e5c31af7Sopenharmony_ciThis structure describes the following features: 2344e5c31af7Sopenharmony_ci 2345e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2346e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2347e5c31af7Sopenharmony_ci structure. 2348e5c31af7Sopenharmony_ci 2349e5c31af7Sopenharmony_ci// Must have preceding whitespace 2350e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2351e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2352e5c31af7Sopenharmony_ci// tag::VK_KHR_vulkan_memory_model-features[] 2353e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModel]] pname:vulkanMemoryModel 2354e5c31af7Sopenharmony_ci indicates whether shader modules can: declare the code:VulkanMemoryModel 2355e5c31af7Sopenharmony_ci capability. 2356e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModelDeviceScope]] 2357e5c31af7Sopenharmony_ci pname:vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory 2358e5c31af7Sopenharmony_ci Model can use code:Device scope synchronization. 2359e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2360e5c31af7Sopenharmony_ci code:VulkanMemoryModelDeviceScope capability. 2361e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModelAvailabilityVisibilityChains]] 2362e5c31af7Sopenharmony_ci pname:vulkanMemoryModelAvailabilityVisibilityChains indicates whether 2363e5c31af7Sopenharmony_ci the Vulkan Memory Model can use <<memory-model-availability-visibility, 2364e5c31af7Sopenharmony_ci availability and visibility chains>> with more than one element. 2365e5c31af7Sopenharmony_ci// end::VK_KHR_vulkan_memory_model-features[] 2366e5c31af7Sopenharmony_ci 2367e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanMemoryModelFeaturesKHR 2368e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2369e5c31af7Sopenharmony_ci 2370e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.adoc[] 2371e5c31af7Sopenharmony_ci-- 2372e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] 2373e5c31af7Sopenharmony_ci 2374e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[] 2375e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInlineUniformBlockFeatures',desc='Structure describing inline uniform block features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceInlineUniformBlockFeaturesEXT'] 2376e5c31af7Sopenharmony_ci-- 2377e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInlineUniformBlockFeatures structure is defined 2378e5c31af7Sopenharmony_cias: 2379e5c31af7Sopenharmony_ci 2380e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeatures.adoc[] 2381e5c31af7Sopenharmony_ci 2382e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[] 2383e5c31af7Sopenharmony_cior the equivalent 2384e5c31af7Sopenharmony_ci 2385e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.adoc[] 2386e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[] 2387e5c31af7Sopenharmony_ci 2388e5c31af7Sopenharmony_ciThis structure describes the following features: 2389e5c31af7Sopenharmony_ci 2390e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2391e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2392e5c31af7Sopenharmony_ci structure. 2393e5c31af7Sopenharmony_ci 2394e5c31af7Sopenharmony_ci// Must have preceding whitespace 2395e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 2396e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 2397e5c31af7Sopenharmony_ci// tag::VK_EXT_inline_uniform_block-features[] 2398e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-inlineUniformBlock]] pname:inlineUniformBlock 2399e5c31af7Sopenharmony_ci indicates whether the implementation supports inline uniform block 2400e5c31af7Sopenharmony_ci descriptors. 2401e5c31af7Sopenharmony_ci If this feature is not enabled, 2402e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK must: not be used. 2403e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingInlineUniformBlockUpdateAfterBind]] 2404e5c31af7Sopenharmony_ci pname:descriptorBindingInlineUniformBlockUpdateAfterBind 2405e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2406e5c31af7Sopenharmony_ci is ename:VK_FALSE and reserved for future use. 2407e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2408e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2409e5c31af7Sopenharmony_ci indicates whether the implementation supports updating inline uniform 2410e5c31af7Sopenharmony_ci block descriptors after a set is bound. 2411e5c31af7Sopenharmony_ci If this feature is not enabled, 2412e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2413e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK. 2414e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2415e5c31af7Sopenharmony_ci// end::VK_EXT_inline_uniform_block-features[] 2416e5c31af7Sopenharmony_ci 2417e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInlineUniformBlockFeatures 2418e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2419e5c31af7Sopenharmony_ci 2420e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInlineUniformBlockFeatures.adoc[] 2421e5c31af7Sopenharmony_ci-- 2422e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[] 2423e5c31af7Sopenharmony_ci 2424e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[] 2425e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV',desc='Structure describing the representative fragment test features that can be supported by an implementation',type='structs'] 2426e5c31af7Sopenharmony_ci-- 2427e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV structure is 2428e5c31af7Sopenharmony_cidefined as: 2429e5c31af7Sopenharmony_ci 2430e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.adoc[] 2431e5c31af7Sopenharmony_ci 2432e5c31af7Sopenharmony_ciThis structure describes the following feature: 2433e5c31af7Sopenharmony_ci 2434e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2435e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2436e5c31af7Sopenharmony_ci structure. 2437e5c31af7Sopenharmony_ci * [[features-representativeFragmentTest]] pname:representativeFragmentTest 2438e5c31af7Sopenharmony_ci indicates whether the implementation supports the representative 2439e5c31af7Sopenharmony_ci fragment test. 2440e5c31af7Sopenharmony_ci See <<fragops-rep-frag-test, Representative Fragment Test>>. 2441e5c31af7Sopenharmony_ci 2442e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV 2443e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2444e5c31af7Sopenharmony_ci 2445e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.adoc[] 2446e5c31af7Sopenharmony_ci-- 2447e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[] 2448e5c31af7Sopenharmony_ci 2449e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[] 2450e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExclusiveScissorFeaturesNV',desc='Structure describing exclusive scissor features that can be supported by an implementation',type='structs'] 2451e5c31af7Sopenharmony_ci-- 2452e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExclusiveScissorFeaturesNV structure is defined 2453e5c31af7Sopenharmony_cias: 2454e5c31af7Sopenharmony_ci 2455e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.adoc[] 2456e5c31af7Sopenharmony_ci 2457e5c31af7Sopenharmony_ciThis structure describes the following feature: 2458e5c31af7Sopenharmony_ci 2459e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2460e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2461e5c31af7Sopenharmony_ci structure. 2462e5c31af7Sopenharmony_ci * [[features-exclusiveScissor]] pname:exclusiveScissor indicates that the 2463e5c31af7Sopenharmony_ci implementation supports the exclusive scissor test. 2464e5c31af7Sopenharmony_ci 2465e5c31af7Sopenharmony_ciSee <<fragops-exclusive-scissor,Exclusive Scissor Test>> for more 2466e5c31af7Sopenharmony_ciinformation. 2467e5c31af7Sopenharmony_ci 2468e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExclusiveScissorFeaturesNV 2469e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2470e5c31af7Sopenharmony_ci 2471e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.adoc[] 2472e5c31af7Sopenharmony_ci-- 2473e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[] 2474e5c31af7Sopenharmony_ci 2475e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[] 2476e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCornerSampledImageFeaturesNV',desc='Structure describing corner sampled image features that can be supported by an implementation',type='structs'] 2477e5c31af7Sopenharmony_ci-- 2478e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCornerSampledImageFeaturesNV structure is defined 2479e5c31af7Sopenharmony_cias: 2480e5c31af7Sopenharmony_ci 2481e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.adoc[] 2482e5c31af7Sopenharmony_ci 2483e5c31af7Sopenharmony_ciThis structure describes the following feature: 2484e5c31af7Sopenharmony_ci 2485e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2486e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2487e5c31af7Sopenharmony_ci structure. 2488e5c31af7Sopenharmony_ci * [[features-cornersampledimage]] pname:cornerSampledImage specifies 2489e5c31af7Sopenharmony_ci whether images can be created with a 2490e5c31af7Sopenharmony_ci slink:VkImageCreateInfo::pname:flags containing 2491e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV. 2492e5c31af7Sopenharmony_ci See <<resources-images-corner-sampled,Corner-Sampled Images>>. 2493e5c31af7Sopenharmony_ci 2494e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCornerSampledImageFeaturesNV 2495e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2496e5c31af7Sopenharmony_ci 2497e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.adoc[] 2498e5c31af7Sopenharmony_ci-- 2499e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[] 2500e5c31af7Sopenharmony_ci 2501e5c31af7Sopenharmony_ciifdef::VK_NV_compute_shader_derivatives[] 2502e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceComputeShaderDerivativesFeaturesNV',desc='Structure describing compute shader derivative features that can be supported by an implementation',type='structs'] 2503e5c31af7Sopenharmony_ci-- 2504e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is 2505e5c31af7Sopenharmony_cidefined as: 2506e5c31af7Sopenharmony_ci 2507e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.adoc[] 2508e5c31af7Sopenharmony_ci 2509e5c31af7Sopenharmony_ciThis structure describes the following features: 2510e5c31af7Sopenharmony_ci 2511e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2512e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2513e5c31af7Sopenharmony_ci structure. 2514e5c31af7Sopenharmony_ci * [[features-computeDerivativeGroupQuads]] 2515e5c31af7Sopenharmony_ci pname:computeDerivativeGroupQuads indicates that the implementation 2516e5c31af7Sopenharmony_ci supports the code:ComputeDerivativeGroupQuadsNV SPIR-V capability. 2517e5c31af7Sopenharmony_ci * [[features-computeDerivativeGroupLinear]] 2518e5c31af7Sopenharmony_ci pname:computeDerivativeGroupLinear indicates that the implementation 2519e5c31af7Sopenharmony_ci supports the code:ComputeDerivativeGroupLinearNV SPIR-V capability. 2520e5c31af7Sopenharmony_ci 2521e5c31af7Sopenharmony_ciSee <<shaders-scope-quad, Quad shader scope>> for more information. 2522e5c31af7Sopenharmony_ci 2523e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures. 2524e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2525e5c31af7Sopenharmony_ci 2526e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.adoc[] 2527e5c31af7Sopenharmony_ci-- 2528e5c31af7Sopenharmony_ciendif::VK_NV_compute_shader_derivatives[] 2529e5c31af7Sopenharmony_ci 2530e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shader_barycentric[] 2531e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR',desc='Structure describing barycentric support in fragment shaders that can be supported by an implementation',type='structs'] 2532e5c31af7Sopenharmony_ci-- 2533e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR structure is 2534e5c31af7Sopenharmony_cidefined as: 2535e5c31af7Sopenharmony_ci 2536e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.adoc[] 2537e5c31af7Sopenharmony_ci 2538e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shader_barycentric[] 2539e5c31af7Sopenharmony_cior the equivalent 2540e5c31af7Sopenharmony_ci 2541e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.adoc[] 2542e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shader_barycentric[] 2543e5c31af7Sopenharmony_ci 2544e5c31af7Sopenharmony_ciThis structure describes the following feature: 2545e5c31af7Sopenharmony_ci 2546e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2547e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2548e5c31af7Sopenharmony_ci structure. 2549e5c31af7Sopenharmony_ci * [[features-fragmentShaderBarycentric]] pname:fragmentShaderBarycentric 2550e5c31af7Sopenharmony_ci indicates that the implementation supports the code:BaryCoordKHR and 2551e5c31af7Sopenharmony_ci code:BaryCoordNoPerspKHR SPIR-V fragment shader built-ins and supports 2552e5c31af7Sopenharmony_ci the code:PerVertexKHR SPIR-V decoration on fragment shader input 2553e5c31af7Sopenharmony_ci variables. 2554e5c31af7Sopenharmony_ci 2555e5c31af7Sopenharmony_ciSee <<primsrast-barycentric,Barycentric Interpolation>> for more 2556e5c31af7Sopenharmony_ciinformation. 2557e5c31af7Sopenharmony_ci 2558e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR 2559e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2560e5c31af7Sopenharmony_ci 2561e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR.adoc[] 2562e5c31af7Sopenharmony_ci-- 2563e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shader_barycentric[] 2564e5c31af7Sopenharmony_ci 2565e5c31af7Sopenharmony_ciifdef::VK_NV_shader_image_footprint[] 2566e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageFootprintFeaturesNV',desc='Structure describing shader image footprint features that can be supported by an implementation',type='structs'] 2567e5c31af7Sopenharmony_ci-- 2568e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderImageFootprintFeaturesNV structure is 2569e5c31af7Sopenharmony_cidefined as: 2570e5c31af7Sopenharmony_ci 2571e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.adoc[] 2572e5c31af7Sopenharmony_ci 2573e5c31af7Sopenharmony_ciThis structure describes the following feature: 2574e5c31af7Sopenharmony_ci 2575e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2576e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2577e5c31af7Sopenharmony_ci structure. 2578e5c31af7Sopenharmony_ci * [[features-imageFootprint]] pname:imageFootprint specifies whether the 2579e5c31af7Sopenharmony_ci implementation supports the code:ImageFootprintNV SPIR-V capability. 2580e5c31af7Sopenharmony_ci 2581e5c31af7Sopenharmony_ciSee <<textures-footprint,Texel Footprint Evaluation>> for more information. 2582e5c31af7Sopenharmony_ci 2583e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderImageFootprintFeaturesNV 2584e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2585e5c31af7Sopenharmony_ci 2586e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.adoc[] 2587e5c31af7Sopenharmony_ci-- 2588e5c31af7Sopenharmony_ciendif::VK_NV_shader_image_footprint[] 2589e5c31af7Sopenharmony_ci 2590e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[] 2591e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShadingRateImageFeaturesNV',desc='Structure describing shading rate image features that can be supported by an implementation',type='structs'] 2592e5c31af7Sopenharmony_ci-- 2593e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShadingRateImageFeaturesNV structure is defined 2594e5c31af7Sopenharmony_cias: 2595e5c31af7Sopenharmony_ci 2596e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.adoc[] 2597e5c31af7Sopenharmony_ci 2598e5c31af7Sopenharmony_ciThis structure describes the following features: 2599e5c31af7Sopenharmony_ci 2600e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2601e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2602e5c31af7Sopenharmony_ci structure. 2603e5c31af7Sopenharmony_ci * [[features-shadingRateImage]] pname:shadingRateImage indicates that the 2604e5c31af7Sopenharmony_ci implementation supports the use of a shading rate image to derive an 2605e5c31af7Sopenharmony_ci effective shading rate for fragment processing. 2606e5c31af7Sopenharmony_ci It also indicates that the implementation supports the 2607e5c31af7Sopenharmony_ci code:ShadingRateNV SPIR-V execution mode. 2608e5c31af7Sopenharmony_ci * [[features-shadingRateCoarseSampleOrder]] 2609e5c31af7Sopenharmony_ci pname:shadingRateCoarseSampleOrder indicates that the implementation 2610e5c31af7Sopenharmony_ci supports a user-configurable ordering of coverage samples in fragments 2611e5c31af7Sopenharmony_ci larger than one pixel. 2612e5c31af7Sopenharmony_ci 2613e5c31af7Sopenharmony_ciSee <<primsrast-shading-rate-image, Shading Rate Image>> for more 2614e5c31af7Sopenharmony_ciinformation. 2615e5c31af7Sopenharmony_ci 2616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShadingRateImageFeaturesNV 2617e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2618e5c31af7Sopenharmony_ci 2619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.adoc[] 2620e5c31af7Sopenharmony_ci-- 2621e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[] 2622e5c31af7Sopenharmony_ci 2623e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 2624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapFeaturesEXT',desc='Structure describing fragment density map features that can be supported by an implementation',type='structs'] 2625e5c31af7Sopenharmony_ci-- 2626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapFeaturesEXT structure is defined 2627e5c31af7Sopenharmony_cias: 2628e5c31af7Sopenharmony_ci 2629e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.adoc[] 2630e5c31af7Sopenharmony_ci 2631e5c31af7Sopenharmony_ciThis structure describes the following features: 2632e5c31af7Sopenharmony_ci 2633e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2634e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2635e5c31af7Sopenharmony_ci structure. 2636e5c31af7Sopenharmony_ci * [[features-fragmentDensityMap]] pname:fragmentDensityMap specifies 2637e5c31af7Sopenharmony_ci whether the implementation supports render passes with a fragment 2638e5c31af7Sopenharmony_ci density map attachment. 2639e5c31af7Sopenharmony_ci If this feature is not enabled and the pname:pNext chain of 2640e5c31af7Sopenharmony_ci slink:VkRenderPassCreateInfo includes a 2641e5c31af7Sopenharmony_ci slink:VkRenderPassFragmentDensityMapCreateInfoEXT structure, 2642e5c31af7Sopenharmony_ci pname:fragmentDensityMapAttachment must: be ename:VK_ATTACHMENT_UNUSED. 2643e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapDynamic]] pname:fragmentDensityMapDynamic 2644e5c31af7Sopenharmony_ci specifies whether the implementation supports dynamic fragment density 2645e5c31af7Sopenharmony_ci map image views. 2646e5c31af7Sopenharmony_ci If this feature is not enabled, 2647e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT must: 2648e5c31af7Sopenharmony_ci not be included in slink:VkImageViewCreateInfo::pname:flags. 2649e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapNonSubsampledImages]] 2650e5c31af7Sopenharmony_ci pname:fragmentDensityMapNonSubsampledImages specifies whether the 2651e5c31af7Sopenharmony_ci implementation supports regular non-subsampled image attachments with 2652e5c31af7Sopenharmony_ci fragment density map render passes. 2653e5c31af7Sopenharmony_ci If this feature is not enabled, render passes with a 2654e5c31af7Sopenharmony_ci <<renderpass-fragmentdensitymapattachment,fragment density map 2655e5c31af7Sopenharmony_ci attachment>> must: only have <<samplers-subsamplesampler,subsampled 2656e5c31af7Sopenharmony_ci attachments>> bound. 2657e5c31af7Sopenharmony_ci 2658e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapFeaturesEXT 2659e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2660e5c31af7Sopenharmony_ci 2661e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.adoc[] 2662e5c31af7Sopenharmony_ci-- 2663e5c31af7Sopenharmony_ci 2664e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[] 2665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',desc='Structure describing additional fragment density map features that can be supported by an implementation',type='structs'] 2666e5c31af7Sopenharmony_ci-- 2667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMap2FeaturesEXT structure is 2668e5c31af7Sopenharmony_cidefined as: 2669e5c31af7Sopenharmony_ci 2670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.adoc[] 2671e5c31af7Sopenharmony_ci 2672e5c31af7Sopenharmony_ciThis structure describes the following feature: 2673e5c31af7Sopenharmony_ci 2674e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2675e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2676e5c31af7Sopenharmony_ci structure. 2677e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapDeferred]] pname:fragmentDensityMapDeferred 2678e5c31af7Sopenharmony_ci specifies whether the implementation supports deferred reads of fragment 2679e5c31af7Sopenharmony_ci density map image views. 2680e5c31af7Sopenharmony_ci If this feature is not enabled, 2681e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT must: 2682e5c31af7Sopenharmony_ci not be included in sname:VkImageViewCreateInfo::pname:flags. 2683e5c31af7Sopenharmony_ci 2684e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMap2FeaturesEXT 2685e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2686e5c31af7Sopenharmony_ci 2687e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.adoc[] 2688e5c31af7Sopenharmony_ci-- 2689e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[] 2690e5c31af7Sopenharmony_ci 2691e5c31af7Sopenharmony_ciifdef::VK_QCOM_fragment_density_map_offset[] 2692e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',desc='Structure describing fragment density map offset features that can be supported by an implementation',type='structs'] 2693e5c31af7Sopenharmony_ci-- 2694e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM structure is 2695e5c31af7Sopenharmony_cidefined as: 2696e5c31af7Sopenharmony_ci 2697e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.adoc[] 2698e5c31af7Sopenharmony_ci 2699e5c31af7Sopenharmony_ciThis structure describes the following feature: 2700e5c31af7Sopenharmony_ci 2701e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2702e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2703e5c31af7Sopenharmony_ci structure. 2704e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapOffsets]] pname:fragmentDensityMapOffsets 2705e5c31af7Sopenharmony_ci specifies whether the implementation supports 2706e5c31af7Sopenharmony_ci <<renderpass-fragmentdensitymapoffsets,fragment density map offsets>> 2707e5c31af7Sopenharmony_ci 2708e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM 2709e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2710e5c31af7Sopenharmony_ci 2711e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.adoc[] 2712e5c31af7Sopenharmony_ci-- 2713e5c31af7Sopenharmony_ciendif::VK_QCOM_fragment_density_map_offset[] 2714e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 2715e5c31af7Sopenharmony_ci 2716e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_invocation_mask[] 2717e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInvocationMaskFeaturesHUAWEI',desc='Structure describing invocation mask features that can be supported by an implementation',type='structs'] 2718e5c31af7Sopenharmony_ci-- 2719e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInvocationMaskFeaturesHUAWEI structure is defined 2720e5c31af7Sopenharmony_cias: 2721e5c31af7Sopenharmony_ci 2722e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.adoc[] 2723e5c31af7Sopenharmony_ci 2724e5c31af7Sopenharmony_ciThis structure describes the following feature: 2725e5c31af7Sopenharmony_ci 2726e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2727e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2728e5c31af7Sopenharmony_ci structure. 2729e5c31af7Sopenharmony_ci * [[features-invocationMask]] pname:invocationMask indicates that the 2730e5c31af7Sopenharmony_ci implementation supports the use of an invocation mask image to optimize 2731e5c31af7Sopenharmony_ci the ray dispatch. 2732e5c31af7Sopenharmony_ci 2733e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInvocationMaskFeaturesHUAWEI 2734e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2735e5c31af7Sopenharmony_ci 2736e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.adoc[] 2737e5c31af7Sopenharmony_ci-- 2738e5c31af7Sopenharmony_ciendif::VK_HUAWEI_invocation_mask[] 2739e5c31af7Sopenharmony_ci 2740e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_scalar_block_layout[] 2741e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceScalarBlockLayoutFeatures',desc='Structure indicating support for scalar block layouts',type='structs',alias='VkPhysicalDeviceScalarBlockLayoutFeaturesEXT'] 2742e5c31af7Sopenharmony_ci-- 2743e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceScalarBlockLayoutFeatures structure is defined as: 2744e5c31af7Sopenharmony_ci 2745e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.adoc[] 2746e5c31af7Sopenharmony_ci 2747e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[] 2748e5c31af7Sopenharmony_cior the equivalent 2749e5c31af7Sopenharmony_ci 2750e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.adoc[] 2751e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[] 2752e5c31af7Sopenharmony_ci 2753e5c31af7Sopenharmony_ciThis structure describes the following feature: 2754e5c31af7Sopenharmony_ci 2755e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2756e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2757e5c31af7Sopenharmony_ci structure. 2758e5c31af7Sopenharmony_ci 2759e5c31af7Sopenharmony_ci// Must have preceding whitespace 2760e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2761e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2762e5c31af7Sopenharmony_ci// tag::VK_EXT_scalar_block_layout-features[] 2763e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-scalarBlockLayout]] pname:scalarBlockLayout 2764e5c31af7Sopenharmony_ci indicates that the implementation supports the layout of resource blocks 2765e5c31af7Sopenharmony_ci in shaders using <<interfaces-alignment-requirements, scalar 2766e5c31af7Sopenharmony_ci alignment>>. 2767e5c31af7Sopenharmony_ci// end::VK_EXT_scalar_block_layout-features[] 2768e5c31af7Sopenharmony_ci 2769e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceScalarBlockLayoutFeatures 2770e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2771e5c31af7Sopenharmony_ci 2772e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.adoc[] 2773e5c31af7Sopenharmony_ci-- 2774e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_scalar_block_layout[] 2775e5c31af7Sopenharmony_ci 2776e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 2777e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceUniformBufferStandardLayoutFeatures',desc='Structure indicating support for std430-like packing in uniform buffers',type='structs',alias='VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR'] 2778e5c31af7Sopenharmony_ci-- 2779e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceUniformBufferStandardLayoutFeatures structure is 2780e5c31af7Sopenharmony_cidefined as: 2781e5c31af7Sopenharmony_ci 2782e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.adoc[] 2783e5c31af7Sopenharmony_ci 2784e5c31af7Sopenharmony_ciifdef::VK_KHR_uniform_buffer_standard_layout[] 2785e5c31af7Sopenharmony_cior the equivalent 2786e5c31af7Sopenharmony_ci 2787e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.adoc[] 2788e5c31af7Sopenharmony_ciendif::VK_KHR_uniform_buffer_standard_layout[] 2789e5c31af7Sopenharmony_ci 2790e5c31af7Sopenharmony_ciThis structure describes the following feature: 2791e5c31af7Sopenharmony_ci 2792e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2793e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2794e5c31af7Sopenharmony_ci structure. 2795e5c31af7Sopenharmony_ci 2796e5c31af7Sopenharmony_ci// Must have preceding whitespace 2797e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2798e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2799e5c31af7Sopenharmony_ci// tag::VK_KHR_uniform_buffer_standard_layout-features[] 2800e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformBufferStandardLayout]] 2801e5c31af7Sopenharmony_ci pname:uniformBufferStandardLayout indicates that the implementation 2802e5c31af7Sopenharmony_ci supports the same layouts for uniform buffers as for storage and other 2803e5c31af7Sopenharmony_ci kinds of buffers. 2804e5c31af7Sopenharmony_ci See <<interfaces-resources-standard-layout,Standard Buffer Layout>>. 2805e5c31af7Sopenharmony_ci// end::VK_KHR_uniform_buffer_standard_layout-features[] 2806e5c31af7Sopenharmony_ci 2807e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceUniformBufferStandardLayoutFeatures 2808e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2809e5c31af7Sopenharmony_ci 2810e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.adoc[] 2811e5c31af7Sopenharmony_ci-- 2812e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 2813e5c31af7Sopenharmony_ci 2814e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[] 2815e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipEnableFeaturesEXT',desc='Structure indicating support for explicit enable of depth clip',type='structs'] 2816e5c31af7Sopenharmony_ci-- 2817e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipEnableFeaturesEXT structure is defined 2818e5c31af7Sopenharmony_cias: 2819e5c31af7Sopenharmony_ci 2820e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.adoc[] 2821e5c31af7Sopenharmony_ci 2822e5c31af7Sopenharmony_ciThis structure describes the following feature: 2823e5c31af7Sopenharmony_ci 2824e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2825e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2826e5c31af7Sopenharmony_ci structure. 2827e5c31af7Sopenharmony_ci * [[features-depthClipEnable]] pname:depthClipEnable indicates that the 2828e5c31af7Sopenharmony_ci implementation supports setting the depth clipping operation explicitly 2829e5c31af7Sopenharmony_ci via the slink:VkPipelineRasterizationDepthClipStateCreateInfoEXT 2830e5c31af7Sopenharmony_ci pipeline state. 2831e5c31af7Sopenharmony_ci Otherwise depth clipping is only enabled when 2832e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable is 2833e5c31af7Sopenharmony_ci set to ename:VK_FALSE. 2834e5c31af7Sopenharmony_ci 2835e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipEnableFeaturesEXT 2836e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2837e5c31af7Sopenharmony_ci 2838e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.adoc[] 2839e5c31af7Sopenharmony_ci-- 2840e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[] 2841e5c31af7Sopenharmony_ci 2842e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[] 2843e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryPriorityFeaturesEXT',desc='Structure describing memory priority features that can be supported by an implementation',type='structs'] 2844e5c31af7Sopenharmony_ci-- 2845e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is defined as: 2846e5c31af7Sopenharmony_ci 2847e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.adoc[] 2848e5c31af7Sopenharmony_ci 2849e5c31af7Sopenharmony_ciThis structure describes the following feature: 2850e5c31af7Sopenharmony_ci 2851e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2852e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2853e5c31af7Sopenharmony_ci structure. 2854e5c31af7Sopenharmony_ci * [[features-memoryPriority]] pname:memoryPriority indicates that the 2855e5c31af7Sopenharmony_ci implementation supports memory priorities specified at memory allocation 2856e5c31af7Sopenharmony_ci time via slink:VkMemoryPriorityAllocateInfoEXT. 2857e5c31af7Sopenharmony_ci 2858e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryPriorityFeaturesEXT 2859e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2860e5c31af7Sopenharmony_ci 2861e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.adoc[] 2862e5c31af7Sopenharmony_ci-- 2863e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[] 2864e5c31af7Sopenharmony_ci 2865e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2866e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeatures',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferDeviceAddressFeaturesKHR'] 2867e5c31af7Sopenharmony_ci-- 2868e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeatures structure is defined 2869e5c31af7Sopenharmony_cias: 2870e5c31af7Sopenharmony_ci 2871e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.adoc[] 2872e5c31af7Sopenharmony_ci 2873e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[] 2874e5c31af7Sopenharmony_cior the equivalent 2875e5c31af7Sopenharmony_ci 2876e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesKHR.adoc[] 2877e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[] 2878e5c31af7Sopenharmony_ci 2879e5c31af7Sopenharmony_ciThis structure describes the following features: 2880e5c31af7Sopenharmony_ci 2881e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2882e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2883e5c31af7Sopenharmony_ci structure. 2884e5c31af7Sopenharmony_ci 2885e5c31af7Sopenharmony_ci// Must have preceding whitespace 2886e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2887e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2888e5c31af7Sopenharmony_ci// tag::VK_EXT_buffer_device_address-features[] 2889e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddress]] 2890e5c31af7Sopenharmony_ci pname:bufferDeviceAddress indicates that the implementation supports 2891e5c31af7Sopenharmony_ci accessing buffer memory in shaders as storage buffers via an address 2892e5c31af7Sopenharmony_ci queried from flink:vkGetBufferDeviceAddress. 2893e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddressCaptureReplay]] 2894e5c31af7Sopenharmony_ci pname:bufferDeviceAddressCaptureReplay indicates that the implementation 2895e5c31af7Sopenharmony_ci supports saving and reusing buffer and device addresses, e.g. for trace 2896e5c31af7Sopenharmony_ci capture and replay. 2897e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddressMultiDevice]] 2898e5c31af7Sopenharmony_ci pname:bufferDeviceAddressMultiDevice indicates that the implementation 2899e5c31af7Sopenharmony_ci supports the pname:bufferDeviceAddress 2900e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline+VK_KHR_ray_query[feature] 2901e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 2902e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_query[] 2903e5c31af7Sopenharmony_ci and pname:rayTracingPipeline features 2904e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2905e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 2906e5c31af7Sopenharmony_ci , pname:rayTracingPipeline and pname:rayQuery features 2907e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2908e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 2909e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline[] 2910e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 2911e5c31af7Sopenharmony_ci and pname:rayQuery features 2912e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2913e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 2914e5c31af7Sopenharmony_ci for logical devices created with multiple physical devices. 2915e5c31af7Sopenharmony_ci If this feature is not supported, buffer 2916e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 2917e5c31af7Sopenharmony_ci and acceleration structure 2918e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 2919e5c31af7Sopenharmony_ci addresses must: not be queried on a logical device created with more 2920e5c31af7Sopenharmony_ci than one physical device. 2921e5c31af7Sopenharmony_ci// end::VK_EXT_buffer_device_address-features[] 2922e5c31af7Sopenharmony_ci 2923e5c31af7Sopenharmony_ci[NOTE] 2924e5c31af7Sopenharmony_ci.Note 2925e5c31af7Sopenharmony_ci==== 2926e5c31af7Sopenharmony_cipname:bufferDeviceAddressMultiDevice exists to allow certain legacy 2927e5c31af7Sopenharmony_ciplatforms to be able to support pname:bufferDeviceAddress without needing to 2928e5c31af7Sopenharmony_cisupport shared GPU virtual addresses for multi-device configurations. 2929e5c31af7Sopenharmony_ci==== 2930e5c31af7Sopenharmony_ci 2931e5c31af7Sopenharmony_ciSee flink:vkGetBufferDeviceAddress for more information. 2932e5c31af7Sopenharmony_ci 2933e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeatures 2934e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2935e5c31af7Sopenharmony_ci 2936e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.adoc[] 2937e5c31af7Sopenharmony_ci-- 2938e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2939e5c31af7Sopenharmony_ci 2940e5c31af7Sopenharmony_ciifdef::VK_EXT_buffer_device_address[] 2941e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferAddressFeaturesEXT'] 2942e5c31af7Sopenharmony_ci-- 2943e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure is 2944e5c31af7Sopenharmony_cidefined as: 2945e5c31af7Sopenharmony_ci 2946e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.adoc[] 2947e5c31af7Sopenharmony_ci 2948e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.adoc[] 2949e5c31af7Sopenharmony_ci 2950e5c31af7Sopenharmony_ciThis structure describes the following features: 2951e5c31af7Sopenharmony_ci 2952e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 2953e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2954e5c31af7Sopenharmony_ci structure. 2955e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressEXT]] pname:bufferDeviceAddress indicates 2956e5c31af7Sopenharmony_ci that the implementation supports accessing buffer memory in shaders as 2957e5c31af7Sopenharmony_ci storage buffers via an address queried from 2958e5c31af7Sopenharmony_ci flink:vkGetBufferDeviceAddressEXT. 2959e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressCaptureReplayEXT]] 2960e5c31af7Sopenharmony_ci pname:bufferDeviceAddressCaptureReplay indicates that the implementation 2961e5c31af7Sopenharmony_ci supports saving and reusing buffer addresses, e.g. for trace capture and 2962e5c31af7Sopenharmony_ci replay. 2963e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressMultiDeviceEXT]] 2964e5c31af7Sopenharmony_ci pname:bufferDeviceAddressMultiDevice indicates that the implementation 2965e5c31af7Sopenharmony_ci supports the pname:bufferDeviceAddress feature for logical devices 2966e5c31af7Sopenharmony_ci created with multiple physical devices. 2967e5c31af7Sopenharmony_ci If this feature is not supported, buffer addresses must: not be queried 2968e5c31af7Sopenharmony_ci on a logical device created with more than one physical device. 2969e5c31af7Sopenharmony_ci 2970e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeaturesEXT 2971e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 2972e5c31af7Sopenharmony_ci 2973e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2974e5c31af7Sopenharmony_ci[NOTE] 2975e5c31af7Sopenharmony_ci.Note 2976e5c31af7Sopenharmony_ci==== 2977e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure has the 2978e5c31af7Sopenharmony_cisame members as the sname:VkPhysicalDeviceBufferDeviceAddressFeatures 2979e5c31af7Sopenharmony_cistructure, but the functionality indicated by the members is expressed 2980e5c31af7Sopenharmony_cidifferently. 2981e5c31af7Sopenharmony_ciThe features indicated by the 2982e5c31af7Sopenharmony_cisname:VkPhysicalDeviceBufferDeviceAddressFeatures structure requires 2983e5c31af7Sopenharmony_ciadditional flags to be passed at memory allocation time, and the capture and 2984e5c31af7Sopenharmony_cireplay mechanism is built around opaque capture addresses for buffer and 2985e5c31af7Sopenharmony_cimemory objects. 2986e5c31af7Sopenharmony_ci==== 2987e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2988e5c31af7Sopenharmony_ci 2989e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.adoc[] 2990e5c31af7Sopenharmony_ci-- 2991e5c31af7Sopenharmony_ciendif::VK_EXT_buffer_device_address[] 2992e5c31af7Sopenharmony_ci 2993e5c31af7Sopenharmony_ciifdef::VK_NV_dedicated_allocation_image_aliasing[] 2994e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',desc='Structure describing dedicated allocation image aliasing features that can be supported by an implementation',type='structs'] 2995e5c31af7Sopenharmony_ci-- 2996e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV 2997e5c31af7Sopenharmony_cistructure is defined as: 2998e5c31af7Sopenharmony_ci 2999e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.adoc[] 3000e5c31af7Sopenharmony_ci 3001e5c31af7Sopenharmony_ciThis structure describes the following feature: 3002e5c31af7Sopenharmony_ci 3003e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3004e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3005e5c31af7Sopenharmony_ci structure. 3006e5c31af7Sopenharmony_ci * [[features-dedicatedAllocationImageAliasing]] 3007e5c31af7Sopenharmony_ci pname:dedicatedAllocationImageAliasing indicates that the implementation 3008e5c31af7Sopenharmony_ci supports aliasing of compatible image objects on a dedicated allocation. 3009e5c31af7Sopenharmony_ci 3010e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV 3011e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3012e5c31af7Sopenharmony_ci 3013e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.adoc[] 3014e5c31af7Sopenharmony_ci-- 3015e5c31af7Sopenharmony_ciendif::VK_NV_dedicated_allocation_image_aliasing[] 3016e5c31af7Sopenharmony_ci 3017e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 3018e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImagelessFramebufferFeatures',desc='Structure indicating support for imageless framebuffers',type='structs',alias='VkPhysicalDeviceImagelessFramebufferFeaturesKHR'] 3019e5c31af7Sopenharmony_ci-- 3020e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImagelessFramebufferFeatures structure is defined 3021e5c31af7Sopenharmony_cias: 3022e5c31af7Sopenharmony_ci 3023e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeatures.adoc[] 3024e5c31af7Sopenharmony_ci 3025e5c31af7Sopenharmony_ciifdef::VK_KHR_imageless_framebuffer[] 3026e5c31af7Sopenharmony_cior the equivalent 3027e5c31af7Sopenharmony_ci 3028e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.adoc[] 3029e5c31af7Sopenharmony_ciendif::VK_KHR_imageless_framebuffer[] 3030e5c31af7Sopenharmony_ci 3031e5c31af7Sopenharmony_ciThis structure describes the following feature: 3032e5c31af7Sopenharmony_ci 3033e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3034e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3035e5c31af7Sopenharmony_ci structure. 3036e5c31af7Sopenharmony_ci 3037e5c31af7Sopenharmony_ci// Must have preceding whitespace 3038e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3039e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3040e5c31af7Sopenharmony_ci// tag::VK_KHR_imageless_framebuffer-features[] 3041e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-imagelessFramebuffer]] 3042e5c31af7Sopenharmony_ci pname:imagelessFramebuffer indicates that the implementation supports 3043e5c31af7Sopenharmony_ci specifying the image view for attachments at render pass begin time via 3044e5c31af7Sopenharmony_ci slink:VkRenderPassAttachmentBeginInfo. 3045e5c31af7Sopenharmony_ci// end::VK_KHR_imageless_framebuffer-features[] 3046e5c31af7Sopenharmony_ci 3047e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImagelessFramebufferFeatures 3048e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3049e5c31af7Sopenharmony_ci 3050e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImagelessFramebufferFeatures.adoc[] 3051e5c31af7Sopenharmony_ci-- 3052e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 3053e5c31af7Sopenharmony_ci 3054e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[] 3055e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',desc='Structure describing fragment shader interlock features that can be supported by an implementation',type='structs'] 3056e5c31af7Sopenharmony_ci-- 3057e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT structure is 3058e5c31af7Sopenharmony_cidefined as: 3059e5c31af7Sopenharmony_ci 3060e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.adoc[] 3061e5c31af7Sopenharmony_ci 3062e5c31af7Sopenharmony_ciThis structure describes the following features: 3063e5c31af7Sopenharmony_ci 3064e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3065e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3066e5c31af7Sopenharmony_ci structure. 3067e5c31af7Sopenharmony_ci * [[features-fragmentShaderSampleInterlock]] 3068e5c31af7Sopenharmony_ci pname:fragmentShaderSampleInterlock indicates that the implementation 3069e5c31af7Sopenharmony_ci supports the code:FragmentShaderSampleInterlockEXT SPIR-V capability. 3070e5c31af7Sopenharmony_ci * [[features-fragmentShaderPixelInterlock]] 3071e5c31af7Sopenharmony_ci pname:fragmentShaderPixelInterlock indicates that the implementation 3072e5c31af7Sopenharmony_ci supports the code:FragmentShaderPixelInterlockEXT SPIR-V capability. 3073e5c31af7Sopenharmony_ci * [[features-fragmentShaderShadingRateInterlock]] 3074e5c31af7Sopenharmony_ci pname:fragmentShaderShadingRateInterlock indicates that the 3075e5c31af7Sopenharmony_ci implementation supports the code:FragmentShaderShadingRateInterlockEXT 3076e5c31af7Sopenharmony_ci SPIR-V capability. 3077e5c31af7Sopenharmony_ci 3078e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT 3079e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3080e5c31af7Sopenharmony_ci 3081e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.adoc[] 3082e5c31af7Sopenharmony_ci-- 3083e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[] 3084e5c31af7Sopenharmony_ci 3085e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[] 3086e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesNV',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs'] 3087e5c31af7Sopenharmony_ci-- 3088e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV structure is defined 3089e5c31af7Sopenharmony_cias: 3090e5c31af7Sopenharmony_ci 3091e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.adoc[] 3092e5c31af7Sopenharmony_ci 3093e5c31af7Sopenharmony_ciThis structure describes the following features: 3094e5c31af7Sopenharmony_ci 3095e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3096e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3097e5c31af7Sopenharmony_ci structure. 3098e5c31af7Sopenharmony_ci * [[features-cooperativeMatrix-NV]] pname:cooperativeMatrix indicates that 3099e5c31af7Sopenharmony_ci the implementation supports the code:CooperativeMatrixNV SPIR-V 3100e5c31af7Sopenharmony_ci capability. 3101e5c31af7Sopenharmony_ci * [[features-cooperativeMatrixRobustBufferAccess-NV]] 3102e5c31af7Sopenharmony_ci pname:cooperativeMatrixRobustBufferAccess indicates that the 3103e5c31af7Sopenharmony_ci implementation supports robust buffer access for SPIR-V 3104e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV 3105e5c31af7Sopenharmony_ci instructions. 3106e5c31af7Sopenharmony_ci 3107e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesNV 3108e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3109e5c31af7Sopenharmony_ci 3110e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.adoc[] 3111e5c31af7Sopenharmony_ci-- 3112e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[] 3113e5c31af7Sopenharmony_ci 3114e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[] 3115e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesKHR',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs'] 3116e5c31af7Sopenharmony_ci-- 3117e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesKHR structure is defined 3118e5c31af7Sopenharmony_cias: 3119e5c31af7Sopenharmony_ci 3120e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.adoc[] 3121e5c31af7Sopenharmony_ci 3122e5c31af7Sopenharmony_ciThis structure describes the following features: 3123e5c31af7Sopenharmony_ci 3124e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3125e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3126e5c31af7Sopenharmony_ci structure. 3127e5c31af7Sopenharmony_ci * [[features-cooperativeMatrix]] pname:cooperativeMatrix indicates that 3128e5c31af7Sopenharmony_ci the implementation supports the code:CooperativeMatrixKHR SPIR-V 3129e5c31af7Sopenharmony_ci capability. 3130e5c31af7Sopenharmony_ci * [[features-cooperativeMatrixRobustBufferAccess]] 3131e5c31af7Sopenharmony_ci pname:cooperativeMatrixRobustBufferAccess indicates that the 3132e5c31af7Sopenharmony_ci implementation supports robust buffer access for SPIR-V 3133e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR 3134e5c31af7Sopenharmony_ci instructions. 3135e5c31af7Sopenharmony_ci 3136e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesKHR 3137e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3138e5c31af7Sopenharmony_ci 3139e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.adoc[] 3140e5c31af7Sopenharmony_ci-- 3141e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[] 3142e5c31af7Sopenharmony_ci 3143e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[] 3144e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',desc='Structure describing extended {YCbCr} image creation features that can be supported by an implementation',type='structs'] 3145e5c31af7Sopenharmony_ci-- 3146e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrImageArraysFeaturesEXT structure is defined 3147e5c31af7Sopenharmony_cias: 3148e5c31af7Sopenharmony_ci 3149e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.adoc[] 3150e5c31af7Sopenharmony_ci 3151e5c31af7Sopenharmony_ciThis structure describes the following feature: 3152e5c31af7Sopenharmony_ci 3153e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3154e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3155e5c31af7Sopenharmony_ci structure. 3156e5c31af7Sopenharmony_ci * [[features-ycbcrImageArrays]] pname:ycbcrImageArrays indicates that the 3157e5c31af7Sopenharmony_ci implementation supports creating images with a format that requires 3158e5c31af7Sopenharmony_ci <<formats-requiring-sampler-ycbcr-conversion, {YCbCr} conversion>> and 3159e5c31af7Sopenharmony_ci has multiple array layers. 3160e5c31af7Sopenharmony_ci 3161e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrImageArraysFeaturesEXT 3162e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3163e5c31af7Sopenharmony_ci 3164e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.adoc[] 3165e5c31af7Sopenharmony_ci-- 3166e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[] 3167e5c31af7Sopenharmony_ci 3168e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 3169e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 3170e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',desc='Structure describing the extended types subgroups support feature for an implementation',type='structs',alias='VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR'] 3171e5c31af7Sopenharmony_ci-- 3172e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures structure is 3173e5c31af7Sopenharmony_cidefined as: 3174e5c31af7Sopenharmony_ci 3175e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.adoc[] 3176e5c31af7Sopenharmony_ci 3177e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_extended_types[] 3178e5c31af7Sopenharmony_cior the equivalent 3179e5c31af7Sopenharmony_ci 3180e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.adoc[] 3181e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_extended_types[] 3182e5c31af7Sopenharmony_ci 3183e5c31af7Sopenharmony_ciThis structure describes the following feature: 3184e5c31af7Sopenharmony_ci 3185e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3186e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3187e5c31af7Sopenharmony_ci structure. 3188e5c31af7Sopenharmony_ci 3189e5c31af7Sopenharmony_ci// Must have preceding whitespace 3190e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3191e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3192e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_subgroup_extended_types-features[] 3193e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-subgroup-extended-types]] 3194e5c31af7Sopenharmony_ci pname:shaderSubgroupExtendedTypes is a boolean specifying whether 3195e5c31af7Sopenharmony_ci subgroup operations can use 8-bit integer, 16-bit integer, 64-bit 3196e5c31af7Sopenharmony_ci integer, 16-bit floating-point, and vectors of these types in 3197e5c31af7Sopenharmony_ci <<shaders-group-operations,group operations>> with 3198e5c31af7Sopenharmony_ci <<shaders-scope-subgroup, subgroup scope>>, if the implementation 3199e5c31af7Sopenharmony_ci supports the types. 3200e5c31af7Sopenharmony_ci// end::VK_KHR_shader_subgroup_extended_types-features[] 3201e5c31af7Sopenharmony_ci 3202e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures 3203e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3204e5c31af7Sopenharmony_ci 3205e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.adoc[] 3206e5c31af7Sopenharmony_ci-- 3207e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 3208e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 3209e5c31af7Sopenharmony_ci 3210e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[] 3211e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostQueryResetFeatures',desc='Structure describing whether queries can be reset from the host',type='structs',alias='VkPhysicalDeviceHostQueryResetFeaturesEXT'] 3212e5c31af7Sopenharmony_ci-- 3213e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostQueryResetFeatures structure is defined as: 3214e5c31af7Sopenharmony_ci 3215e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeatures.adoc[] 3216e5c31af7Sopenharmony_ci 3217e5c31af7Sopenharmony_ciifdef::VK_EXT_host_query_reset[] 3218e5c31af7Sopenharmony_cior the equivalent 3219e5c31af7Sopenharmony_ci 3220e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.adoc[] 3221e5c31af7Sopenharmony_ciendif::VK_EXT_host_query_reset[] 3222e5c31af7Sopenharmony_ci 3223e5c31af7Sopenharmony_ciThis structure describes the following feature: 3224e5c31af7Sopenharmony_ci 3225e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3226e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3227e5c31af7Sopenharmony_ci structure. 3228e5c31af7Sopenharmony_ci 3229e5c31af7Sopenharmony_ci// Must have preceding whitespace 3230e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3231e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3232e5c31af7Sopenharmony_ci// tag::VK_EXT_host_query_reset-features[] 3233e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-hostQueryReset]] pname:hostQueryReset 3234e5c31af7Sopenharmony_ci indicates that the implementation supports resetting queries from the 3235e5c31af7Sopenharmony_ci host with flink:vkResetQueryPool. 3236e5c31af7Sopenharmony_ci// end::VK_EXT_host_query_reset-features[] 3237e5c31af7Sopenharmony_ci 3238e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostQueryResetFeatures 3239e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3240e5c31af7Sopenharmony_ci 3241e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeatures.adoc[] 3242e5c31af7Sopenharmony_ci-- 3243e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[] 3244e5c31af7Sopenharmony_ci 3245e5c31af7Sopenharmony_ciifdef::VK_INTEL_shader_integer_functions2[] 3246e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs'] 3247e5c31af7Sopenharmony_ci-- 3248e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL structure is 3249e5c31af7Sopenharmony_cidefined as: 3250e5c31af7Sopenharmony_ci 3251e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.adoc[] 3252e5c31af7Sopenharmony_ci 3253e5c31af7Sopenharmony_ciThis structure describes the following feature: 3254e5c31af7Sopenharmony_ci 3255e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3256e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3257e5c31af7Sopenharmony_ci structure. 3258e5c31af7Sopenharmony_ci * [[features-shaderIntegerFunctions2]] pname:shaderIntegerFunctions2 3259e5c31af7Sopenharmony_ci indicates that the implementation supports the 3260e5c31af7Sopenharmony_ci code:IntegerFunctions2INTEL SPIR-V capability. 3261e5c31af7Sopenharmony_ci 3262e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures. 3263e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3264e5c31af7Sopenharmony_ci 3265e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.adoc[] 3266e5c31af7Sopenharmony_ci-- 3267e5c31af7Sopenharmony_ciendif::VK_INTEL_shader_integer_functions2[] 3268e5c31af7Sopenharmony_ci 3269e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[] 3270e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs'] 3271e5c31af7Sopenharmony_ci-- 3272e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is 3273e5c31af7Sopenharmony_cidefined as: 3274e5c31af7Sopenharmony_ci 3275e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.adoc[] 3276e5c31af7Sopenharmony_ci 3277e5c31af7Sopenharmony_ciThis structure describes the following feature: 3278e5c31af7Sopenharmony_ci 3279e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3280e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3281e5c31af7Sopenharmony_ci structure. 3282e5c31af7Sopenharmony_ci * [[features-coverageReductionMode]] pname:coverageReductionMode indicates 3283e5c31af7Sopenharmony_ci whether the implementation supports coverage reduction modes. 3284e5c31af7Sopenharmony_ci See <<fragops-coverage-reduction, Coverage Reduction>>. 3285e5c31af7Sopenharmony_ci 3286e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoverageReductionModeFeaturesNV 3287e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3288e5c31af7Sopenharmony_ci 3289e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.adoc[] 3290e5c31af7Sopenharmony_ci-- 3291e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[] 3292e5c31af7Sopenharmony_ci 3293e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 3294e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTimelineSemaphoreFeatures',desc='Structure describing timeline semaphore features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTimelineSemaphoreFeaturesKHR'] 3295e5c31af7Sopenharmony_ci-- 3296e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTimelineSemaphoreFeatures structure is defined as: 3297e5c31af7Sopenharmony_ci 3298e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.adoc[] 3299e5c31af7Sopenharmony_ci 3300e5c31af7Sopenharmony_ciifdef::VK_KHR_timeline_semaphore[] 3301e5c31af7Sopenharmony_cior the equivalent 3302e5c31af7Sopenharmony_ci 3303e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeaturesKHR.adoc[] 3304e5c31af7Sopenharmony_ciendif::VK_KHR_timeline_semaphore[] 3305e5c31af7Sopenharmony_ci 3306e5c31af7Sopenharmony_ciThis structure describes the following feature: 3307e5c31af7Sopenharmony_ci 3308e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3309e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3310e5c31af7Sopenharmony_ci structure. 3311e5c31af7Sopenharmony_ci 3312e5c31af7Sopenharmony_ci// Must have preceding whitespace 3313e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3314e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3315e5c31af7Sopenharmony_ci// tag::VK_KHR_timeline_semaphore-features[] 3316e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-timelineSemaphore]] pname:timelineSemaphore 3317e5c31af7Sopenharmony_ci indicates whether semaphores created with a elink:VkSemaphoreType of 3318e5c31af7Sopenharmony_ci ename:VK_SEMAPHORE_TYPE_TIMELINE are supported. 3319e5c31af7Sopenharmony_ci// end::VK_KHR_timeline_semaphore-features[] 3320e5c31af7Sopenharmony_ci 3321e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTimelineSemaphoreFeatures 3322e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3323e5c31af7Sopenharmony_ci 3324e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.adoc[] 3325e5c31af7Sopenharmony_ci-- 3326e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 3327e5c31af7Sopenharmony_ci 3328e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync[] 3329e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalSciSyncFeaturesNV',desc='Structure describing SciSync features that can be supported by an implementation',type='structs'] 3330e5c31af7Sopenharmony_ci-- 3331e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure is defined as: 3332e5c31af7Sopenharmony_ci 3333e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciSyncFeaturesNV.adoc[] 3334e5c31af7Sopenharmony_ci 3335e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure 3336e5c31af7Sopenharmony_cidescribe the following features: 3337e5c31af7Sopenharmony_ci 3338e5c31af7Sopenharmony_ci * [[features-sciSyncFence]] pname:sciSyncFence indicates whether external 3339e5c31af7Sopenharmony_ci fences created with a handle type of 3340e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV and 3341e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV are supported 3342e5c31af7Sopenharmony_ci for import and/or export. 3343e5c31af7Sopenharmony_ci * [[features-sciSyncSemaphore]] pname:sciSyncSemaphore indicates whether 3344e5c31af7Sopenharmony_ci external semaphores created with a handle type of 3345e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV are 3346e5c31af7Sopenharmony_ci supported for import and/or export. 3347e5c31af7Sopenharmony_ci * [[features-sciSyncImport]] pname:sciSyncImport indicates whether 3348e5c31af7Sopenharmony_ci stext:NvSciSyncObj import functionality is supported. 3349e5c31af7Sopenharmony_ci If pname:sciSyncImport is set to ename:VK_TRUE, slink:VkFence and/or 3350e5c31af7Sopenharmony_ci slink:VkSemaphore support importing stext:NvSciSyncObj from 3351e5c31af7Sopenharmony_ci applications. 3352e5c31af7Sopenharmony_ci In this case, the application is responsible for the resource management 3353e5c31af7Sopenharmony_ci of the stext:NvSciSyncObj. 3354e5c31af7Sopenharmony_ci * [[features-sciSyncExport]] pname:sciSyncExport indicates whether 3355e5c31af7Sopenharmony_ci stext:NvSciSyncObj export functionality is supported. 3356e5c31af7Sopenharmony_ci If pname:sciSyncExport is set to ename:VK_TRUE, slink:VkFence and/or 3357e5c31af7Sopenharmony_ci slink:VkSemaphore support exporting stext:NvSciSyncObj created by the 3358e5c31af7Sopenharmony_ci driver to applications. 3359e5c31af7Sopenharmony_ci In this case, the driver is responsible for the resource management of 3360e5c31af7Sopenharmony_ci the stext:NvSciSyncObj. 3361e5c31af7Sopenharmony_ci 3362e5c31af7Sopenharmony_ci[[features-externalscisync-table]] 3363e5c31af7Sopenharmony_ci.Functionality supported for NvSciSync features 3364e5c31af7Sopenharmony_ci|===== 3365e5c31af7Sopenharmony_ci| Features | pname:sciSyncImport | pname:sciSyncExport | Always supported^1^ 3366e5c31af7Sopenharmony_ci| pname:sciSyncFence 3367e5c31af7Sopenharmony_ci | flink:vkImportFenceSciSyncFenceNV, flink:vkImportFenceSciSyncObjNV 3368e5c31af7Sopenharmony_ci | slink:VkExportFenceSciSyncInfoNV 3369e5c31af7Sopenharmony_ci | flink:vkGetFenceSciSyncFenceNV, flink:vkGetFenceSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV) 3370e5c31af7Sopenharmony_ci| pname:sciSyncSemaphore 3371e5c31af7Sopenharmony_ci | flink:vkImportSemaphoreSciSyncObjNV 3372e5c31af7Sopenharmony_ci | slink:VkExportSemaphoreSciSyncInfoNV 3373e5c31af7Sopenharmony_ci | flink:vkGetSemaphoreSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV) 3374e5c31af7Sopenharmony_ci|===== 3375e5c31af7Sopenharmony_ci 3376e5c31af7Sopenharmony_ci1:: 3377e5c31af7Sopenharmony_ci Functionality in this column is always available. 3378e5c31af7Sopenharmony_ci 3379e5c31af7Sopenharmony_ciThe <<features-externalscisync-table, Functionality supported for NvSciSync 3380e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the 3381e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalSciSyncFeaturesNV structure. 3382e5c31af7Sopenharmony_ciThere are two orthogonal pieces of functionality: fence and semaphore 3383e5c31af7Sopenharmony_cisupport; import and export support. 3384e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can: 3385e5c31af7Sopenharmony_cibe used when the given features are supported and enabled. 3386e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this 3387e5c31af7Sopenharmony_cispecification. 3388e5c31af7Sopenharmony_ci 3389e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalSciSyncFeaturesNV 3390e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3391e5c31af7Sopenharmony_ci 3392e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalSciSyncFeaturesNV.adoc[] 3393e5c31af7Sopenharmony_ci-- 3394e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync[] 3395e5c31af7Sopenharmony_ci 3396e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync2[] 3397e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalSciSync2FeaturesNV',desc='Structure describing SciSync features that can be supported by an implementation',type='structs'] 3398e5c31af7Sopenharmony_ci-- 3399e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalSciSync2FeaturesNV structure is defined 3400e5c31af7Sopenharmony_cias: 3401e5c31af7Sopenharmony_ci 3402e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciSync2FeaturesNV.adoc[] 3403e5c31af7Sopenharmony_ci 3404e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalSciSync2FeaturesNV 3405e5c31af7Sopenharmony_cistructure describe the following features: 3406e5c31af7Sopenharmony_ci 3407e5c31af7Sopenharmony_ci * [[features-sciSyncFence2]] pname:sciSyncFence indicates whether external 3408e5c31af7Sopenharmony_ci fences created with a handle type of 3409e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV and 3410e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV are supported 3411e5c31af7Sopenharmony_ci for import and/or export. 3412e5c31af7Sopenharmony_ci * [[features-sciSyncSemaphore2]] pname:sciSyncSemaphore2 indicates whether 3413e5c31af7Sopenharmony_ci semaphore SciSync pools are supported and semaphores can be created from 3414e5c31af7Sopenharmony_ci stext:NvSciSyncObj via slink:VkSemaphoreSciSyncPoolNV objects. 3415e5c31af7Sopenharmony_ci In this case, the application is responsible for the resource management 3416e5c31af7Sopenharmony_ci of the stext:NvSciSyncObj. 3417e5c31af7Sopenharmony_ci * [[features-sciSyncImport2]] pname:sciSyncImport indicates whether 3418e5c31af7Sopenharmony_ci stext:NvSciSyncObj import functionality is supported. 3419e5c31af7Sopenharmony_ci If pname:sciSyncImport is set to ename:VK_TRUE, slink:VkFence and/or 3420e5c31af7Sopenharmony_ci slink:VkSemaphore support importing stext:NvSciSyncObj from 3421e5c31af7Sopenharmony_ci applications. 3422e5c31af7Sopenharmony_ci In this case, the application is responsible for the resource management 3423e5c31af7Sopenharmony_ci of the stext:NvSciSyncObj. 3424e5c31af7Sopenharmony_ci * [[features-sciSyncExport2]] pname:sciSyncExport indicates whether 3425e5c31af7Sopenharmony_ci stext:NvSciSyncObj export functionality is supported. 3426e5c31af7Sopenharmony_ci If pname:sciSyncExport is set to ename:VK_TRUE, slink:VkFence supports 3427e5c31af7Sopenharmony_ci exporting stext:NvSciSyncObj created by the driver to applications. 3428e5c31af7Sopenharmony_ci In this case, the driver is responsible for the resource management of 3429e5c31af7Sopenharmony_ci the stext:NvSciSyncObj. 3430e5c31af7Sopenharmony_ci 3431e5c31af7Sopenharmony_ci[[features-externalscisync2-table]] 3432e5c31af7Sopenharmony_ci.Functionality supported for NvSciSync features 3433e5c31af7Sopenharmony_ci|===== 3434e5c31af7Sopenharmony_ci| Features | pname:sciSyncImport | pname:sciSyncExport | Always supported^1^ 3435e5c31af7Sopenharmony_ci| pname:sciSyncFence 3436e5c31af7Sopenharmony_ci | flink:vkImportFenceSciSyncFenceNV, flink:vkImportFenceSciSyncObjNV 3437e5c31af7Sopenharmony_ci | slink:VkExportFenceSciSyncInfoNV 3438e5c31af7Sopenharmony_ci | flink:vkGetFenceSciSyncFenceNV, flink:vkGetFenceSciSyncObjNV, flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV) 3439e5c31af7Sopenharmony_ci| pname:sciSyncSemaphore2 3440e5c31af7Sopenharmony_ci | flink:vkCreateSemaphoreSciSyncPoolNV, slink:VkSemaphoreSciSyncCreateInfoNV 3441e5c31af7Sopenharmony_ci | n/a 3442e5c31af7Sopenharmony_ci | flink:vkGetPhysicalDeviceSciSyncAttributesNV (with ename:VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV) 3443e5c31af7Sopenharmony_ci|===== 3444e5c31af7Sopenharmony_ci 3445e5c31af7Sopenharmony_ci1:: 3446e5c31af7Sopenharmony_ci Functionality in this column is always available. 3447e5c31af7Sopenharmony_ci 3448e5c31af7Sopenharmony_ciThe <<features-externalscisync2-table, Functionality supported for NvSciSync 3449e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the 3450e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalSciSync2FeaturesNV structure. 3451e5c31af7Sopenharmony_ciThere are two orthogonal pieces of functionality: fence and semaphore 3452e5c31af7Sopenharmony_cisupport; import and export support. 3453e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can: 3454e5c31af7Sopenharmony_cibe used when the given features are supported and enabled. 3455e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this 3456e5c31af7Sopenharmony_cispecification. 3457e5c31af7Sopenharmony_ci 3458e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalSciSync2FeaturesNV 3459e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3460e5c31af7Sopenharmony_ci 3461e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalSciSync2FeaturesNV.adoc[] 3462e5c31af7Sopenharmony_ci-- 3463e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync2[] 3464e5c31af7Sopenharmony_ci 3465e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_sci_buf[] 3466e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemorySciBufFeaturesNV',desc='Structure describing NvSciBuf features that can be supported by an implementation',type='structs'] 3467e5c31af7Sopenharmony_ci-- 3468e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV structure is 3469e5c31af7Sopenharmony_cidefined as: 3470e5c31af7Sopenharmony_ci 3471e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.adoc[] 3472e5c31af7Sopenharmony_ci 3473e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalSciBufFeaturesNV.adoc[] 3474e5c31af7Sopenharmony_ci 3475e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV 3476e5c31af7Sopenharmony_cistructure describe the following features: 3477e5c31af7Sopenharmony_ci 3478e5c31af7Sopenharmony_ci * [[features-sciBufImport]] pname:sciBufImport indicates whether 3479e5c31af7Sopenharmony_ci stext:NvSciBufObj import functionality is supported. 3480e5c31af7Sopenharmony_ci If pname:sciBufImport is set to ename:VK_TRUE, slink:VkDeviceMemory 3481e5c31af7Sopenharmony_ci supports importing stext:NvSciBufObj from applications. 3482e5c31af7Sopenharmony_ci In this case, the application is responsible for the resource management 3483e5c31af7Sopenharmony_ci of the stext:NvSciBufObj. 3484e5c31af7Sopenharmony_ci * [[features-sciBufExport]] pname:sciBufExport indicates whether 3485e5c31af7Sopenharmony_ci stext:NvSciBufObj export functionality is supported. 3486e5c31af7Sopenharmony_ci If pname:sciBufExport is set to ename:VK_TRUE, slink:VkDeviceMemory 3487e5c31af7Sopenharmony_ci supports exporting stext:NvSciBufObj created by the driver to 3488e5c31af7Sopenharmony_ci applications. 3489e5c31af7Sopenharmony_ci In this case, the driver is responsible for the resource management of 3490e5c31af7Sopenharmony_ci the stext:NvSciBufObj. 3491e5c31af7Sopenharmony_ci 3492e5c31af7Sopenharmony_ci[[features-externalscibuf-table]] 3493e5c31af7Sopenharmony_ci.Functionality supported for NvSciBuf features 3494e5c31af7Sopenharmony_ci|===== 3495e5c31af7Sopenharmony_ci| Features | Functionality 3496e5c31af7Sopenharmony_ci| pname:sciBufImport | slink:VkImportMemorySciBufInfoNV, flink:vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV 3497e5c31af7Sopenharmony_ci| pname:sciBufExport | slink:VkExportMemorySciBufInfoNV 3498e5c31af7Sopenharmony_ci| Always supported^1^ | flink:vkGetPhysicalDeviceSciBufAttributesNV, flink:vkGetMemorySciBufNV, 3499e5c31af7Sopenharmony_ci|===== 3500e5c31af7Sopenharmony_ci 3501e5c31af7Sopenharmony_ci1:: 3502e5c31af7Sopenharmony_ci Functionality in this row is always available. 3503e5c31af7Sopenharmony_ci 3504e5c31af7Sopenharmony_ciThe <<features-externalscibuf-table, Functionality supported for NvSciBuf 3505e5c31af7Sopenharmony_cifeatures>> table summarizes the functionality enabled by the 3506e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemorySciBufFeaturesNV structure. 3507e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can: 3508e5c31af7Sopenharmony_cibe used when the given features are supported and enabled. 3509e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this 3510e5c31af7Sopenharmony_cispecification. 3511e5c31af7Sopenharmony_ci 3512e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemorySciBufFeaturesNV 3513e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3514e5c31af7Sopenharmony_ci 3515e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemorySciBufFeaturesNV.adoc[] 3516e5c31af7Sopenharmony_ci-- 3517e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_sci_buf[] 3518e5c31af7Sopenharmony_ci 3519e5c31af7Sopenharmony_ciifdef::VK_QNX_external_memory_screen_buffer[] 3520e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX',desc='Structure describing QNX Screen Buffer features that can be supported by an implementation',type='structs'] 3521e5c31af7Sopenharmony_ci-- 3522e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure is 3523e5c31af7Sopenharmony_cidefined as: 3524e5c31af7Sopenharmony_ci 3525e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.adoc[] 3526e5c31af7Sopenharmony_ci 3527e5c31af7Sopenharmony_ciThe members of the 3528e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure 3529e5c31af7Sopenharmony_cidescribe the following features: 3530e5c31af7Sopenharmony_ci 3531e5c31af7Sopenharmony_ci * [[features-screenBufferImport]] pname:screenBufferImport indicates 3532e5c31af7Sopenharmony_ci whether QNX Screen buffer import functionality is supported. 3533e5c31af7Sopenharmony_ci If pname:screenBufferImport is set to ename:VK_TRUE, 3534e5c31af7Sopenharmony_ci slink:VkDeviceMemory supports importing code:_screen_buffer from 3535e5c31af7Sopenharmony_ci applications. 3536e5c31af7Sopenharmony_ci In this case, the application is responsible for the resource management 3537e5c31af7Sopenharmony_ci of the code:_screen_buffer. 3538e5c31af7Sopenharmony_ci 3539e5c31af7Sopenharmony_ci[[features-externalscreenbuffer-table]] 3540e5c31af7Sopenharmony_ci.Functionality supported for QNX Screen Buffer features 3541e5c31af7Sopenharmony_ci|===== 3542e5c31af7Sopenharmony_ci| Features | Functionality 3543e5c31af7Sopenharmony_ci| pname:screenBufferImport | slink:VkImportScreenBufferInfoQNX 3544e5c31af7Sopenharmony_ci| Always supported^1^ | flink:vkGetScreenBufferPropertiesQNX, slink:VkScreenBufferPropertiesQNX, slink:VkScreenBufferFormatPropertiesQNX, 3545e5c31af7Sopenharmony_cislink:VkExternalFormatQNX 3546e5c31af7Sopenharmony_ci|===== 3547e5c31af7Sopenharmony_ci 3548e5c31af7Sopenharmony_ci1:: 3549e5c31af7Sopenharmony_ci Functionality in this row is always available. 3550e5c31af7Sopenharmony_ci 3551e5c31af7Sopenharmony_ciThe <<features-externalscreenbuffer-table, Functionality supported for QNX 3552e5c31af7Sopenharmony_ciScreen buffer features>> table summarizes the functionality enabled by the 3553e5c31af7Sopenharmony_cisname:VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX structure. 3554e5c31af7Sopenharmony_ciEach entry in the body of the table summarizes the functionality that can: 3555e5c31af7Sopenharmony_cibe used when the given features are supported and enabled. 3556e5c31af7Sopenharmony_ciThis summarizes Valid Usage statements that are added elsewhere in this 3557e5c31af7Sopenharmony_cispecification. 3558e5c31af7Sopenharmony_ci 3559e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX 3560e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3561e5c31af7Sopenharmony_ci 3562e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX.adoc[] 3563e5c31af7Sopenharmony_ci-- 3564e5c31af7Sopenharmony_ciendif::VK_QNX_external_memory_screen_buffer[] 3565e5c31af7Sopenharmony_ci 3566e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[] 3567e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceIndexTypeUint8FeaturesEXT',desc='Structure describing whether uint8 index type can be used',type='structs'] 3568e5c31af7Sopenharmony_ci-- 3569e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is defined as: 3570e5c31af7Sopenharmony_ci 3571e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.adoc[] 3572e5c31af7Sopenharmony_ci 3573e5c31af7Sopenharmony_ciThis structure describes the following feature: 3574e5c31af7Sopenharmony_ci 3575e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3576e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3577e5c31af7Sopenharmony_ci structure. 3578e5c31af7Sopenharmony_ci * [[features-indexTypeUint8]] pname:indexTypeUint8 indicates that 3579e5c31af7Sopenharmony_ci ename:VK_INDEX_TYPE_UINT8_EXT can be used with 3580e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[flink:vkCmdBindIndexBuffer2KHR and] 3581e5c31af7Sopenharmony_ci flink:vkCmdBindIndexBuffer. 3582e5c31af7Sopenharmony_ci 3583e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceIndexTypeUint8FeaturesEXT 3584e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3585e5c31af7Sopenharmony_ci 3586e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.adoc[] 3587e5c31af7Sopenharmony_ci-- 3588e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[] 3589e5c31af7Sopenharmony_ci 3590e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[] 3591e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',desc='Structure describing whether list type primitives can support primitive restart',type='structs'] 3592e5c31af7Sopenharmony_ci-- 3593e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure 3594e5c31af7Sopenharmony_ciis defined as: 3595e5c31af7Sopenharmony_ci 3596e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.adoc[] 3597e5c31af7Sopenharmony_ci 3598e5c31af7Sopenharmony_ciThis structure describes the following features: 3599e5c31af7Sopenharmony_ci 3600e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3601e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3602e5c31af7Sopenharmony_ci structure. 3603e5c31af7Sopenharmony_ci * [[features-primitiveTopologyListRestart]] 3604e5c31af7Sopenharmony_ci pname:primitiveTopologyListRestart indicates that list type primitives, 3605e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 3606e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, 3607e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 3608e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and 3609e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, can: use the 3610e5c31af7Sopenharmony_ci primitive restart index value in index buffers. 3611e5c31af7Sopenharmony_ci * [[features-primitiveTopologyPatchListRestart]] 3612e5c31af7Sopenharmony_ci pname:primitiveTopologyPatchListRestart indicates that the 3613e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology can: use the primitive 3614e5c31af7Sopenharmony_ci restart index value in index buffers. 3615e5c31af7Sopenharmony_ci 3616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT 3617e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3618e5c31af7Sopenharmony_ci 3619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.adoc[] 3620e5c31af7Sopenharmony_ci-- 3621e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[] 3622e5c31af7Sopenharmony_ci 3623e5c31af7Sopenharmony_ciifdef::VK_NV_shader_sm_builtins[] 3624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs'] 3625e5c31af7Sopenharmony_ci-- 3626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSMBuiltinsFeaturesNV structure is defined 3627e5c31af7Sopenharmony_cias: 3628e5c31af7Sopenharmony_ci 3629e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.adoc[] 3630e5c31af7Sopenharmony_ci 3631e5c31af7Sopenharmony_ciThis structure describes the following feature: 3632e5c31af7Sopenharmony_ci 3633e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3634e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3635e5c31af7Sopenharmony_ci structure. 3636e5c31af7Sopenharmony_ci * [[features-shaderSMBuiltins]] pname:shaderSMBuiltins indicates whether 3637e5c31af7Sopenharmony_ci the implementation supports the SPIR-V code:ShaderSMBuiltinsNV 3638e5c31af7Sopenharmony_ci capability. 3639e5c31af7Sopenharmony_ci 3640e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSMBuiltinsFeaturesNV 3641e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3642e5c31af7Sopenharmony_ci 3643e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.adoc[] 3644e5c31af7Sopenharmony_ci-- 3645e5c31af7Sopenharmony_ciendif::VK_NV_shader_sm_builtins[] 3646e5c31af7Sopenharmony_ci 3647e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 3648e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',desc='Structure describing whether the implementation can do depth and stencil image barriers separately',type='structs',alias='VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR'] 3649e5c31af7Sopenharmony_ci-- 3650e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures structure is 3651e5c31af7Sopenharmony_cidefined as: 3652e5c31af7Sopenharmony_ci 3653e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.adoc[] 3654e5c31af7Sopenharmony_ci 3655e5c31af7Sopenharmony_ciifdef::VK_KHR_separate_depth_stencil_layouts[] 3656e5c31af7Sopenharmony_cior the equivalent 3657e5c31af7Sopenharmony_ci 3658e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.adoc[] 3659e5c31af7Sopenharmony_ciendif::VK_KHR_separate_depth_stencil_layouts[] 3660e5c31af7Sopenharmony_ci 3661e5c31af7Sopenharmony_ciThis structure describes the following feature: 3662e5c31af7Sopenharmony_ci 3663e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3664e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3665e5c31af7Sopenharmony_ci structure. 3666e5c31af7Sopenharmony_ci 3667e5c31af7Sopenharmony_ci// Must have preceding whitespace 3668e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3669e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3670e5c31af7Sopenharmony_ci// tag::VK_KHR_separate_depth_stencil_layouts-features[] 3671e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-separateDepthStencilLayouts]] 3672e5c31af7Sopenharmony_ci pname:separateDepthStencilLayouts indicates whether the implementation 3673e5c31af7Sopenharmony_ci supports a sname:VkImageMemoryBarrier for a depth/stencil image with 3674e5c31af7Sopenharmony_ci only one of ename:VK_IMAGE_ASPECT_DEPTH_BIT or 3675e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_STENCIL_BIT set, and whether 3676e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, 3677e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, 3678e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or 3679e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL can be used. 3680e5c31af7Sopenharmony_ci// end::VK_KHR_separate_depth_stencil_layouts-features[] 3681e5c31af7Sopenharmony_ci 3682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures 3683e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3684e5c31af7Sopenharmony_ci 3685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.adoc[] 3686e5c31af7Sopenharmony_ci-- 3687e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 3688e5c31af7Sopenharmony_ci 3689e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[] 3690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',desc='Structure describing whether pipeline executable properties are available',type='structs'] 3691e5c31af7Sopenharmony_ci-- 3692e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure 3693e5c31af7Sopenharmony_ciis defined as: 3694e5c31af7Sopenharmony_ci 3695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.adoc[] 3696e5c31af7Sopenharmony_ci 3697e5c31af7Sopenharmony_ciThis structure describes the following feature: 3698e5c31af7Sopenharmony_ci 3699e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3700e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3701e5c31af7Sopenharmony_ci structure. 3702e5c31af7Sopenharmony_ci * [[features-pipelineExecutableInfo]] pname:pipelineExecutableInfo 3703e5c31af7Sopenharmony_ci indicates that the implementation supports reporting properties and 3704e5c31af7Sopenharmony_ci statistics about the pipeline executables associated with a compiled 3705e5c31af7Sopenharmony_ci pipeline. 3706e5c31af7Sopenharmony_ci 3707e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR 3708e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3709e5c31af7Sopenharmony_ci 3710e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.adoc[] 3711e5c31af7Sopenharmony_ci-- 3712e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[] 3713e5c31af7Sopenharmony_ci 3714e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[] 3715e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures',desc='Structure describing the shader demote to helper invocations features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'] 3716e5c31af7Sopenharmony_ci-- 3717e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures structure 3718e5c31af7Sopenharmony_ciis defined as: 3719e5c31af7Sopenharmony_ci 3720e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.adoc[] 3721e5c31af7Sopenharmony_ci 3722e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[] 3723e5c31af7Sopenharmony_cior the equivalent 3724e5c31af7Sopenharmony_ci 3725e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.adoc[] 3726e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[] 3727e5c31af7Sopenharmony_ci 3728e5c31af7Sopenharmony_ciThis structure describes the following feature: 3729e5c31af7Sopenharmony_ci 3730e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3731e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3732e5c31af7Sopenharmony_ci structure. 3733e5c31af7Sopenharmony_ci 3734e5c31af7Sopenharmony_ci// Must have preceding whitespace 3735e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 3736e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 3737e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_demote_to_helper_invocation-features[] 3738e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderDemoteToHelperInvocation]] 3739e5c31af7Sopenharmony_ci pname:shaderDemoteToHelperInvocation indicates whether the 3740e5c31af7Sopenharmony_ci implementation supports the SPIR-V code:DemoteToHelperInvocationEXT 3741e5c31af7Sopenharmony_ci capability. 3742e5c31af7Sopenharmony_ci// end::VK_EXT_shader_demote_to_helper_invocation-features[] 3743e5c31af7Sopenharmony_ci 3744e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures 3745e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3746e5c31af7Sopenharmony_ci 3747e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures.adoc[] 3748e5c31af7Sopenharmony_ci-- 3749e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[] 3750e5c31af7Sopenharmony_ci 3751e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[] 3752e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',desc='Structure describing the texel buffer alignment features that can be supported by an implementation',type='structs'] 3753e5c31af7Sopenharmony_ci-- 3754e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT structure is 3755e5c31af7Sopenharmony_cidefined as: 3756e5c31af7Sopenharmony_ci 3757e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.adoc[] 3758e5c31af7Sopenharmony_ci 3759e5c31af7Sopenharmony_ciThis structure describes the following feature: 3760e5c31af7Sopenharmony_ci 3761e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3762e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3763e5c31af7Sopenharmony_ci structure. 3764e5c31af7Sopenharmony_ci * [[features-texelBufferAlignment]] pname:texelBufferAlignment indicates 3765e5c31af7Sopenharmony_ci whether the implementation uses more specific alignment requirements 3766e5c31af7Sopenharmony_ci advertised in slink:VkPhysicalDeviceTexelBufferAlignmentProperties 3767e5c31af7Sopenharmony_ci rather than 3768e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment. 3769e5c31af7Sopenharmony_ci 3770e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT 3771e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3772e5c31af7Sopenharmony_ci 3773e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.adoc[] 3774e5c31af7Sopenharmony_ci-- 3775e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[] 3776e5c31af7Sopenharmony_ci 3777e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 3778e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT',desc='Structure describing if dynamic feedback loops can be used',type='structs'] 3779e5c31af7Sopenharmony_ci-- 3780e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT 3781e5c31af7Sopenharmony_cistructure is defined as: 3782e5c31af7Sopenharmony_ci 3783e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.adoc[] 3784e5c31af7Sopenharmony_ci 3785e5c31af7Sopenharmony_ciThis structure describes the following features: 3786e5c31af7Sopenharmony_ci 3787e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3788e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3789e5c31af7Sopenharmony_ci structure. 3790e5c31af7Sopenharmony_ci * [[features-attachmentFeedbackLoopDynamicState]] 3791e5c31af7Sopenharmony_ci pname:attachmentFeedbackLoopDynamicState specifies whether dynamic 3792e5c31af7Sopenharmony_ci feedback loops are supported. 3793e5c31af7Sopenharmony_ci 3794e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT 3795e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3796e5c31af7Sopenharmony_ci 3797e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.adoc[] 3798e5c31af7Sopenharmony_ci-- 3799e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_dynamic_state[] 3800e5c31af7Sopenharmony_ci 3801e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 3802e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTextureCompressionASTCHDRFeatures',desc='Structure describing ASTC HDR features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'] 3803e5c31af7Sopenharmony_ci-- 3804e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTextureCompressionASTCHDRFeatures structure is 3805e5c31af7Sopenharmony_cidefined as: 3806e5c31af7Sopenharmony_ci 3807e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.adoc[] 3808e5c31af7Sopenharmony_ci 3809e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[] 3810e5c31af7Sopenharmony_cior the equivalent 3811e5c31af7Sopenharmony_ci 3812e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.adoc[] 3813e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[] 3814e5c31af7Sopenharmony_ci 3815e5c31af7Sopenharmony_ciThis structure describes the following feature: 3816e5c31af7Sopenharmony_ci 3817e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3818e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3819e5c31af7Sopenharmony_ci structure. 3820e5c31af7Sopenharmony_ci 3821e5c31af7Sopenharmony_ci// Must have preceding whitespace 3822e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 3823e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 3824e5c31af7Sopenharmony_ci// tag::VK_EXT_texture_compression_astc_hdr-features[] 3825e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-textureCompressionASTC_HDR]] 3826e5c31af7Sopenharmony_ci pname:textureCompressionASTC_HDR indicates whether all of the ASTC HDR 3827e5c31af7Sopenharmony_ci compressed texture formats are supported. 3828e5c31af7Sopenharmony_ci If this feature is enabled, then the 3829e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 3830e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 3831e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 3832e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 3833e5c31af7Sopenharmony_ci+ 3834e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK 3835e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK 3836e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK 3837e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK 3838e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK 3839e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK 3840e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK 3841e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK 3842e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK 3843e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK 3844e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK 3845e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK 3846e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK 3847e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK 3848e5c31af7Sopenharmony_ci+ 3849e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 3850e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 3851e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 3852e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 3853e5c31af7Sopenharmony_ci// end::VK_EXT_texture_compression_astc_hdr-features[] 3854e5c31af7Sopenharmony_ci 3855e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTextureCompressionASTCHDRFeatures 3856e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3857e5c31af7Sopenharmony_ci 3858e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeatures.adoc[] 3859e5c31af7Sopenharmony_ci-- 3860e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 3861e5c31af7Sopenharmony_ci 3862e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[] 3863e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLineRasterizationFeaturesEXT',desc='Structure describing the line rasterization features that can be supported by an implementation',type='structs'] 3864e5c31af7Sopenharmony_ci-- 3865e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is defined 3866e5c31af7Sopenharmony_cias: 3867e5c31af7Sopenharmony_ci 3868e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.adoc[] 3869e5c31af7Sopenharmony_ci 3870e5c31af7Sopenharmony_ciThis structure describes the following features: 3871e5c31af7Sopenharmony_ci 3872e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3873e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3874e5c31af7Sopenharmony_ci structure. 3875e5c31af7Sopenharmony_ci * [[features-rectangularLines]] pname:rectangularLines indicates whether 3876e5c31af7Sopenharmony_ci the implementation supports <<primsrast-lines,rectangular line 3877e5c31af7Sopenharmony_ci rasterization>>. 3878e5c31af7Sopenharmony_ci * [[features-bresenhamLines]] pname:bresenhamLines indicates whether the 3879e5c31af7Sopenharmony_ci implementation supports <<primsrast-lines-bresenham,Bresenham-style line 3880e5c31af7Sopenharmony_ci rasterization>>. 3881e5c31af7Sopenharmony_ci * [[features-smoothLines]] pname:smoothLines indicates whether the 3882e5c31af7Sopenharmony_ci implementation supports <<primsrast-lines-smooth,smooth line 3883e5c31af7Sopenharmony_ci rasterization>>. 3884e5c31af7Sopenharmony_ci * [[features-stippledRectangularLines]] pname:stippledRectangularLines 3885e5c31af7Sopenharmony_ci indicates whether the implementation supports 3886e5c31af7Sopenharmony_ci <<primsrast-lines-stipple,stippled line rasterization>> with 3887e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines. 3888e5c31af7Sopenharmony_ci * [[features-stippledBresenhamLines]] pname:stippledBresenhamLines 3889e5c31af7Sopenharmony_ci indicates whether the implementation supports 3890e5c31af7Sopenharmony_ci <<primsrast-lines-stipple,stippled line rasterization>> with 3891e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines. 3892e5c31af7Sopenharmony_ci * [[features-stippledSmoothLines]] pname:stippledSmoothLines indicates 3893e5c31af7Sopenharmony_ci whether the implementation supports <<primsrast-lines-stipple,stippled 3894e5c31af7Sopenharmony_ci line rasterization>> with 3895e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines. 3896e5c31af7Sopenharmony_ci 3897e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLineRasterizationFeaturesEXT 3898e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3899e5c31af7Sopenharmony_ci 3900e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.adoc[] 3901e5c31af7Sopenharmony_ci-- 3902e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[] 3903e5c31af7Sopenharmony_ci 3904e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[] 3905e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupSizeControlFeatures',desc='Structure describing the subgroup size control features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSubgroupSizeControlFeaturesEXT'] 3906e5c31af7Sopenharmony_ci-- 3907e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeatures structure is defined 3908e5c31af7Sopenharmony_cias: 3909e5c31af7Sopenharmony_ci 3910e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeatures.adoc[] 3911e5c31af7Sopenharmony_ci 3912e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[] 3913e5c31af7Sopenharmony_cior the equivalent 3914e5c31af7Sopenharmony_ci 3915e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.adoc[] 3916e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[] 3917e5c31af7Sopenharmony_ci 3918e5c31af7Sopenharmony_ciThis structure describes the following features: 3919e5c31af7Sopenharmony_ci 3920e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3921e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3922e5c31af7Sopenharmony_ci structure. 3923e5c31af7Sopenharmony_ci 3924e5c31af7Sopenharmony_ci// Must have preceding whitespace 3925e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 3926e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 3927e5c31af7Sopenharmony_ci// tag::VK_EXT_subgroup_size_control-features[] 3928e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-subgroupSizeControl]] 3929e5c31af7Sopenharmony_ci pname:subgroupSizeControl indicates whether the implementation supports 3930e5c31af7Sopenharmony_ci controlling shader subgroup sizes via the 3931e5c31af7Sopenharmony_ci ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT 3932e5c31af7Sopenharmony_ci flag and the slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfo 3933e5c31af7Sopenharmony_ci structure. 3934e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-computeFullSubgroups]] 3935e5c31af7Sopenharmony_ci pname:computeFullSubgroups indicates whether the implementation supports 3936e5c31af7Sopenharmony_ci requiring full subgroups in compute 3937e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[] 3938e5c31af7Sopenharmony_ci , mesh, or task 3939e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[] 3940e5c31af7Sopenharmony_ci shaders via the 3941e5c31af7Sopenharmony_ci ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT flag. 3942e5c31af7Sopenharmony_ci// end::VK_EXT_subgroup_size_control-features[] 3943e5c31af7Sopenharmony_ci 3944e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupSizeControlFeatures 3945e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3946e5c31af7Sopenharmony_ci 3947e5c31af7Sopenharmony_ciifndef::VKSC_VERSION_1_0[] 3948e5c31af7Sopenharmony_ci[NOTE] 3949e5c31af7Sopenharmony_ci.Note 3950e5c31af7Sopenharmony_ci==== 3951e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure was added 3952e5c31af7Sopenharmony_ciin version 2 of the `apiext:VK_EXT_subgroup_size_control` extension. 3953e5c31af7Sopenharmony_ciVersion 1 implementations of this extension will not fill out the features 3954e5c31af7Sopenharmony_cistructure but applications may assume that both pname:subgroupSizeControl 3955e5c31af7Sopenharmony_ciand pname:computeFullSubgroups are supported if the extension is supported. 3956e5c31af7Sopenharmony_ci(See also the <<features-requirements, Feature Requirements>> section.) 3957e5c31af7Sopenharmony_ciApplications are advised to add a 3958e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure to the 3959e5c31af7Sopenharmony_cipname:pNext chain of slink:VkDeviceCreateInfo to enable the features 3960e5c31af7Sopenharmony_ciregardless of the version of the extension supported by the implementation. 3961e5c31af7Sopenharmony_ciIf the implementation only supports version 1, it will safely ignore the 3962e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure. 3963e5c31af7Sopenharmony_ci 3964e5c31af7Sopenharmony_ciVulkan 1.3 implementations always support the features structure. 3965e5c31af7Sopenharmony_ci==== 3966e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 3967e5c31af7Sopenharmony_ci 3968e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupSizeControlFeatures.adoc[] 3969e5c31af7Sopenharmony_ci-- 3970e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[] 3971e5c31af7Sopenharmony_ci 3972e5c31af7Sopenharmony_ciifdef::VK_AMD_device_coherent_memory[] 3973e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoherentMemoryFeaturesAMD',desc='Structure describing whether device coherent memory can be supported by an implementation',type='structs'] 3974e5c31af7Sopenharmony_ci-- 3975e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoherentMemoryFeaturesAMD structure is defined as: 3976e5c31af7Sopenharmony_ci 3977e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.adoc[] 3978e5c31af7Sopenharmony_ci 3979e5c31af7Sopenharmony_ciThis structure describes the following feature: 3980e5c31af7Sopenharmony_ci 3981e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 3982e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3983e5c31af7Sopenharmony_ci structure. 3984e5c31af7Sopenharmony_ci * [[features-deviceCoherentMemory]] pname:deviceCoherentMemory indicates 3985e5c31af7Sopenharmony_ci that the implementation supports <<VkMemoryPropertyFlagBits,device 3986e5c31af7Sopenharmony_ci coherent memory>>. 3987e5c31af7Sopenharmony_ci 3988e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoherentMemoryFeaturesAMD 3989e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 3990e5c31af7Sopenharmony_ci 3991e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.adoc[] 3992e5c31af7Sopenharmony_ci-- 3993e5c31af7Sopenharmony_ciendif::VK_AMD_device_coherent_memory[] 3994e5c31af7Sopenharmony_ci 3995e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 3996e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAccelerationStructureFeaturesKHR',desc='Structure describing the acceleration structure features that can be supported by an implementation',type='structs'] 3997e5c31af7Sopenharmony_ci-- 3998e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAccelerationStructureFeaturesKHR structure is 3999e5c31af7Sopenharmony_cidefined as: 4000e5c31af7Sopenharmony_ci 4001e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.adoc[] 4002e5c31af7Sopenharmony_ci 4003e5c31af7Sopenharmony_ciThis structure describes the following features: 4004e5c31af7Sopenharmony_ci 4005e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4006e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4007e5c31af7Sopenharmony_ci structure. 4008e5c31af7Sopenharmony_ci * [[features-accelerationStructure]] pname:accelerationStructure indicates 4009e5c31af7Sopenharmony_ci whether the implementation supports the acceleration structure 4010e5c31af7Sopenharmony_ci functionality. 4011e5c31af7Sopenharmony_ci See <<acceleration-structure,Acceleration Structures>>. 4012e5c31af7Sopenharmony_ci * [[features-accelerationStructureCaptureReplay]] 4013e5c31af7Sopenharmony_ci pname:accelerationStructureCaptureReplay indicates whether the 4014e5c31af7Sopenharmony_ci implementation supports saving and reusing acceleration structure device 4015e5c31af7Sopenharmony_ci addresses, e.g. for trace capture and replay. 4016e5c31af7Sopenharmony_ci * [[features-accelerationStructureIndirectBuild]] 4017e5c31af7Sopenharmony_ci pname:accelerationStructureIndirectBuild indicates whether the 4018e5c31af7Sopenharmony_ci implementation supports indirect acceleration structure build commands, 4019e5c31af7Sopenharmony_ci e.g. flink:vkCmdBuildAccelerationStructuresIndirectKHR. 4020e5c31af7Sopenharmony_ci * [[features-accelerationStructureHostCommands]] 4021e5c31af7Sopenharmony_ci pname:accelerationStructureHostCommands indicates whether the 4022e5c31af7Sopenharmony_ci implementation supports host side acceleration structure commands, e.g. 4023e5c31af7Sopenharmony_ci flink:vkBuildAccelerationStructuresKHR, 4024e5c31af7Sopenharmony_ci flink:vkCopyAccelerationStructureKHR, 4025e5c31af7Sopenharmony_ci flink:vkCopyAccelerationStructureToMemoryKHR, 4026e5c31af7Sopenharmony_ci flink:vkCopyMemoryToAccelerationStructureKHR, 4027e5c31af7Sopenharmony_ci flink:vkWriteAccelerationStructuresPropertiesKHR. 4028e5c31af7Sopenharmony_ci * [[features-descriptorBindingAccelerationStructureUpdateAfterBind]] 4029e5c31af7Sopenharmony_ci pname:descriptorBindingAccelerationStructureUpdateAfterBind indicates 4030e5c31af7Sopenharmony_ci whether the implementation supports updating acceleration structure 4031e5c31af7Sopenharmony_ci descriptors after a set is bound. 4032e5c31af7Sopenharmony_ci If this feature is not enabled, 4033e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 4034e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR. 4035e5c31af7Sopenharmony_ci 4036e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAccelerationStructureFeaturesKHR 4037e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4038e5c31af7Sopenharmony_ci 4039e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.adoc[] 4040e5c31af7Sopenharmony_ci-- 4041e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 4042e5c31af7Sopenharmony_ci 4043e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 4044e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPipelineFeaturesKHR',desc='Structure describing the ray tracing features that can be supported by an implementation',type='structs'] 4045e5c31af7Sopenharmony_ci-- 4046e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPipelineFeaturesKHR structure is defined 4047e5c31af7Sopenharmony_cias: 4048e5c31af7Sopenharmony_ci 4049e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.adoc[] 4050e5c31af7Sopenharmony_ci 4051e5c31af7Sopenharmony_ciThis structure describes the following features: 4052e5c31af7Sopenharmony_ci 4053e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4054e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4055e5c31af7Sopenharmony_ci structure. 4056e5c31af7Sopenharmony_ci * [[features-rayTracingPipeline]] pname:rayTracingPipeline indicates 4057e5c31af7Sopenharmony_ci whether the implementation supports the ray tracing pipeline 4058e5c31af7Sopenharmony_ci functionality. 4059e5c31af7Sopenharmony_ci See <<ray-tracing,Ray Tracing>>. 4060e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineShaderGroupHandleCaptureReplay]] 4061e5c31af7Sopenharmony_ci pname:rayTracingPipelineShaderGroupHandleCaptureReplay indicates whether 4062e5c31af7Sopenharmony_ci the implementation supports saving and reusing shader group handles, 4063e5c31af7Sopenharmony_ci e.g. for trace capture and replay. 4064e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed]] 4065e5c31af7Sopenharmony_ci pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed indicates 4066e5c31af7Sopenharmony_ci whether the implementation supports reuse of shader group handles being 4067e5c31af7Sopenharmony_ci arbitrarily mixed with creation of non-reused shader group handles. 4068e5c31af7Sopenharmony_ci If this is ename:VK_FALSE, all reused shader group handles must: be 4069e5c31af7Sopenharmony_ci specified before any non-reused handles may: be created. 4070e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineTraceRaysIndirect]] 4071e5c31af7Sopenharmony_ci pname:rayTracingPipelineTraceRaysIndirect indicates whether the 4072e5c31af7Sopenharmony_ci implementation supports indirect ray tracing commands, e.g. 4073e5c31af7Sopenharmony_ci flink:vkCmdTraceRaysIndirectKHR. 4074e5c31af7Sopenharmony_ci * [[features-rayTraversalPrimitiveCulling]] 4075e5c31af7Sopenharmony_ci pname:rayTraversalPrimitiveCulling indicates whether the implementation 4076e5c31af7Sopenharmony_ci supports <<ray-traversal-culling-primitive, primitive culling during ray 4077e5c31af7Sopenharmony_ci traversal>>. 4078e5c31af7Sopenharmony_ci 4079e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPipelineFeaturesKHR 4080e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4081e5c31af7Sopenharmony_ci 4082e5c31af7Sopenharmony_ci.Valid Usage 4083e5c31af7Sopenharmony_ci**** 4084e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575]] 4085e5c31af7Sopenharmony_ci If pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed is 4086e5c31af7Sopenharmony_ci ename:VK_TRUE, pname:rayTracingPipelineShaderGroupHandleCaptureReplay 4087e5c31af7Sopenharmony_ci must: also be ename:VK_TRUE 4088e5c31af7Sopenharmony_ci**** 4089e5c31af7Sopenharmony_ci 4090e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.adoc[] 4091e5c31af7Sopenharmony_ci-- 4092e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 4093e5c31af7Sopenharmony_ci 4094e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 4095e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayQueryFeaturesKHR',desc='Structure describing the ray query features that can be supported by an implementation',type='structs'] 4096e5c31af7Sopenharmony_ci-- 4097e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayQueryFeaturesKHR structure is defined as: 4098e5c31af7Sopenharmony_ci 4099e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayQueryFeaturesKHR.adoc[] 4100e5c31af7Sopenharmony_ci 4101e5c31af7Sopenharmony_ciThis structure describes the following feature: 4102e5c31af7Sopenharmony_ci 4103e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4104e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4105e5c31af7Sopenharmony_ci structure. 4106e5c31af7Sopenharmony_ci * [[features-rayQuery]] pname:rayQuery indicates whether the 4107e5c31af7Sopenharmony_ci implementation supports ray query (code:OpRayQueryProceedKHR) 4108e5c31af7Sopenharmony_ci functionality. 4109e5c31af7Sopenharmony_ci 4110e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayQueryFeaturesKHR 4111e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4112e5c31af7Sopenharmony_ci 4113e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayQueryFeaturesKHR.adoc[] 4114e5c31af7Sopenharmony_ci-- 4115e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 4116e5c31af7Sopenharmony_ci 4117e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_maintenance1[] 4118e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR',desc='Structure describing the ray tracing maintenance features that can be supported by an implementation',type='structs'] 4119e5c31af7Sopenharmony_ci-- 4120e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR structure is 4121e5c31af7Sopenharmony_cidefined as: 4122e5c31af7Sopenharmony_ci 4123e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.adoc[] 4124e5c31af7Sopenharmony_ci 4125e5c31af7Sopenharmony_ciThis structure describes the following features: 4126e5c31af7Sopenharmony_ci 4127e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4128e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4129e5c31af7Sopenharmony_ci structure. 4130e5c31af7Sopenharmony_ci * [[features-rayTracingMaintenance1]] pname:rayTracingMaintenance1 4131e5c31af7Sopenharmony_ci indicates that the implementation supports the following: 4132e5c31af7Sopenharmony_ci ** The code:CullMaskKHR SPIR-V builtin using the `SPV_KHR_ray_cull_mask` 4133e5c31af7Sopenharmony_ci SPIR-V extension. 4134e5c31af7Sopenharmony_ci ** Additional acceleration structure property queries: 4135e5c31af7Sopenharmony_ci ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR 4136e5c31af7Sopenharmony_ci and ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR. 4137e5c31af7Sopenharmony_ci ** A new access flag ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR. 4138e5c31af7Sopenharmony_ci ** A new pipeline stage flag bit 4139e5c31af7Sopenharmony_ci ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR 4140e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineTraceRaysIndirect2]] 4141e5c31af7Sopenharmony_ci pname:rayTracingPipelineTraceRaysIndirect2 indicates whether the 4142e5c31af7Sopenharmony_ci implementation supports the extended indirect ray tracing command 4143e5c31af7Sopenharmony_ci flink:vkCmdTraceRaysIndirect2KHR. 4144e5c31af7Sopenharmony_ci 4145e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR 4146e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4147e5c31af7Sopenharmony_ci 4148e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR.adoc[] 4149e5c31af7Sopenharmony_ci-- 4150e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_maintenance1[] 4151e5c31af7Sopenharmony_ci 4152e5c31af7Sopenharmony_ciifdef::VK_KHR_video_maintenance1[] 4153e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVideoMaintenance1FeaturesKHR',desc='Structure describing the video maintenance features that can be supported by an implementation',type='structs'] 4154e5c31af7Sopenharmony_ci-- 4155e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVideoMaintenance1FeaturesKHR structure is defined 4156e5c31af7Sopenharmony_cias: 4157e5c31af7Sopenharmony_ci 4158e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.adoc[] 4159e5c31af7Sopenharmony_ci 4160e5c31af7Sopenharmony_ciThis structure describes the following features: 4161e5c31af7Sopenharmony_ci 4162e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4163e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4164e5c31af7Sopenharmony_ci structure. 4165e5c31af7Sopenharmony_ci * [[features-videoMaintenance1]] pname:videoMaintenance1 indicates that 4166e5c31af7Sopenharmony_ci the implementation supports the following: 4167e5c31af7Sopenharmony_ci ** The new buffer creation flag 4168e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR. 4169e5c31af7Sopenharmony_ci ** The new image creation flag 4170e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR. 4171e5c31af7Sopenharmony_ci ** The new video session creation flag 4172e5c31af7Sopenharmony_ci ename:VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR. 4173e5c31af7Sopenharmony_ci 4174e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVideoMaintenance1FeaturesKHR 4175e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4176e5c31af7Sopenharmony_ci 4177e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVideoMaintenance1FeaturesKHR.adoc[] 4178e5c31af7Sopenharmony_ci-- 4179e5c31af7Sopenharmony_ciendif::VK_KHR_video_maintenance1[] 4180e5c31af7Sopenharmony_ci 4181e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[] 4182e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs'] 4183e5c31af7Sopenharmony_ci-- 4184e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT structure is 4185e5c31af7Sopenharmony_cidefined as: 4186e5c31af7Sopenharmony_ci 4187e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.adoc[] 4188e5c31af7Sopenharmony_ci 4189e5c31af7Sopenharmony_ciThis structure describes the following feature: 4190e5c31af7Sopenharmony_ci 4191e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4192e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4193e5c31af7Sopenharmony_ci structure. 4194e5c31af7Sopenharmony_ci * [[features-extendedDynamicState]] pname:extendedDynamicState indicates 4195e5c31af7Sopenharmony_ci that the implementation supports the following dynamic states: 4196e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_CULL_MODE 4197e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_FRONT_FACE 4198e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY 4199e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT 4200e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT 4201e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE 4202e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE 4203e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE 4204e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP 4205e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE 4206e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE 4207e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_STENCIL_OP 4208e5c31af7Sopenharmony_ci 4209e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicStateFeaturesEXT 4210e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4211e5c31af7Sopenharmony_ci 4212e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.adoc[] 4213e5c31af7Sopenharmony_ci-- 4214e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[] 4215e5c31af7Sopenharmony_ci 4216e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[] 4217e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs'] 4218e5c31af7Sopenharmony_ci-- 4219e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT structure is 4220e5c31af7Sopenharmony_cidefined as: 4221e5c31af7Sopenharmony_ci 4222e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.adoc[] 4223e5c31af7Sopenharmony_ci 4224e5c31af7Sopenharmony_ciThis structure describes the following features: 4225e5c31af7Sopenharmony_ci 4226e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4227e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4228e5c31af7Sopenharmony_ci structure. 4229e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2]] pname:extendedDynamicState2 indicates 4230e5c31af7Sopenharmony_ci that the implementation supports the following dynamic states: 4231e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE 4232e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE 4233e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE 4234e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2LogicOp]] 4235e5c31af7Sopenharmony_ci pname:extendedDynamicState2LogicOp indicates that the implementation 4236e5c31af7Sopenharmony_ci supports the following dynamic state: 4237e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT 4238e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2PatchControlPoints]] 4239e5c31af7Sopenharmony_ci pname:extendedDynamicState2PatchControlPoints indicates that the 4240e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4241e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT 4242e5c31af7Sopenharmony_ci 4243e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState2FeaturesEXT 4244e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4245e5c31af7Sopenharmony_ci 4246e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.adoc[] 4247e5c31af7Sopenharmony_ci-- 4248e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[] 4249e5c31af7Sopenharmony_ci 4250e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[] 4251e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState3FeaturesEXT',desc='Structure describing what extended dynamic state is supported by the implementation',type='structs'] 4252e5c31af7Sopenharmony_ci-- 4253e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState3FeaturesEXT structure is 4254e5c31af7Sopenharmony_cidefined as: 4255e5c31af7Sopenharmony_ci 4256e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.adoc[] 4257e5c31af7Sopenharmony_ci 4258e5c31af7Sopenharmony_ciThis structure describes the following features: 4259e5c31af7Sopenharmony_ci 4260e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4261e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4262e5c31af7Sopenharmony_ci structure. 4263e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3TessellationDomainOrigin]] 4264e5c31af7Sopenharmony_ci pname:extendedDynamicState3TessellationDomainOrigin indicates that the 4265e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4266e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT 4267e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3DepthClampEnable]] 4268e5c31af7Sopenharmony_ci pname:extendedDynamicState3DepthClampEnable indicates that the 4269e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4270e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT 4271e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3PolygonMode]] 4272e5c31af7Sopenharmony_ci pname:extendedDynamicState3PolygonMode indicates that the implementation 4273e5c31af7Sopenharmony_ci supports the following dynamic state: 4274e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_POLYGON_MODE_EXT 4275e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3RasterizationSamples]] 4276e5c31af7Sopenharmony_ci pname:extendedDynamicState3RasterizationSamples indicates that the 4277e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4278e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT 4279e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3SampleMask]] 4280e5c31af7Sopenharmony_ci pname:extendedDynamicState3SampleMask indicates that the implementation 4281e5c31af7Sopenharmony_ci supports the following dynamic state: 4282e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT 4283e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3AlphaToCoverageEnable]] 4284e5c31af7Sopenharmony_ci pname:extendedDynamicState3AlphaToCoverageEnable indicates that the 4285e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4286e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT 4287e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3AlphaToOneEnable]] 4288e5c31af7Sopenharmony_ci pname:extendedDynamicState3AlphaToOneEnable indicates that the 4289e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4290e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT 4291e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3LogicOpEnable]] 4292e5c31af7Sopenharmony_ci pname:extendedDynamicState3LogicOpEnable indicates that the 4293e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4294e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT 4295e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ColorBlendEnable]] 4296e5c31af7Sopenharmony_ci pname:extendedDynamicState3ColorBlendEnable indicates that the 4297e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4298e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT 4299e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ColorBlendEquation]] 4300e5c31af7Sopenharmony_ci pname:extendedDynamicState3ColorBlendEquation indicates that the 4301e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4302e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT 4303e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ColorWriteMask]] 4304e5c31af7Sopenharmony_ci pname:extendedDynamicState3ColorWriteMask indicates that the 4305e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4306e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT 4307e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3RasterizationStream]] 4308e5c31af7Sopenharmony_ci pname:extendedDynamicState3RasterizationStream indicates that the 4309e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4310e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT 4311e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ConservativeRasterizationMode]] 4312e5c31af7Sopenharmony_ci pname:extendedDynamicState3ConservativeRasterizationMode indicates that 4313e5c31af7Sopenharmony_ci the implementation supports the following dynamic state: 4314e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT 4315e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ExtraPrimitiveOverestimationSize]] 4316e5c31af7Sopenharmony_ci pname:extendedDynamicState3ExtraPrimitiveOverestimationSize indicates 4317e5c31af7Sopenharmony_ci that the implementation supports the following dynamic state: 4318e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT 4319e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3DepthClipEnable]] 4320e5c31af7Sopenharmony_ci pname:extendedDynamicState3DepthClipEnable indicates that the 4321e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4322e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT 4323e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3SampleLocationsEnable]] 4324e5c31af7Sopenharmony_ci pname:extendedDynamicState3SampleLocationsEnable indicates that the 4325e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4326e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT 4327e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ColorBlendAdvanced]] 4328e5c31af7Sopenharmony_ci pname:extendedDynamicState3ColorBlendAdvanced indicates that the 4329e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4330e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT 4331e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ProvokingVertexMode]] 4332e5c31af7Sopenharmony_ci pname:extendedDynamicState3ProvokingVertexMode indicates that the 4333e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4334e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT 4335e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3LineRasterizationMode]] 4336e5c31af7Sopenharmony_ci pname:extendedDynamicState3LineRasterizationMode indicates that the 4337e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4338e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT 4339e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3LineStippleEnable]] 4340e5c31af7Sopenharmony_ci pname:extendedDynamicState3LineStippleEnable indicates that the 4341e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4342e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT 4343e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3DepthClipNegativeOneToOne]] 4344e5c31af7Sopenharmony_ci pname:extendedDynamicState3DepthClipNegativeOneToOne indicates that the 4345e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4346e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT 4347e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ViewportWScalingEnable]] 4348e5c31af7Sopenharmony_ci pname:extendedDynamicState3ViewportWScalingEnable indicates that the 4349e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4350e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV 4351e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ViewportSwizzle]] 4352e5c31af7Sopenharmony_ci pname:extendedDynamicState3ViewportSwizzle indicates that the 4353e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4354e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV 4355e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageToColorEnable]] 4356e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageToColorEnable indicates that the 4357e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4358e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV 4359e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageToColorLocation]] 4360e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageToColorLocation indicates that the 4361e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4362e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV 4363e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageModulationMode]] 4364e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationMode indicates that the 4365e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4366e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV 4367e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageModulationTableEnable]] 4368e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationTableEnable indicates that 4369e5c31af7Sopenharmony_ci the implementation supports the following dynamic state: 4370e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV 4371e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageModulationTable]] 4372e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationTable indicates that the 4373e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4374e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV 4375e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3CoverageReductionMode]] 4376e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageReductionMode indicates that the 4377e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4378e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV 4379e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3RepresentativeFragmentTestEnable]] 4380e5c31af7Sopenharmony_ci pname:extendedDynamicState3RepresentativeFragmentTestEnable indicates 4381e5c31af7Sopenharmony_ci that the implementation supports the following dynamic state: 4382e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV 4383e5c31af7Sopenharmony_ci * [[features-extendedDynamicState3ShadingRateImageEnable]] 4384e5c31af7Sopenharmony_ci pname:extendedDynamicState3ShadingRateImageEnable indicates that the 4385e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 4386e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV 4387e5c31af7Sopenharmony_ci 4388e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState3FeaturesEXT 4389e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4390e5c31af7Sopenharmony_ci 4391e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState3FeaturesEXT.adoc[] 4392e5c31af7Sopenharmony_ci-- 4393e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[] 4394e5c31af7Sopenharmony_ci 4395e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[] 4396e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV',desc='Structure describing the device-generated commands features that can be supported by an implementation',type='structs'] 4397e5c31af7Sopenharmony_ci-- 4398e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure is 4399e5c31af7Sopenharmony_cidefined as: 4400e5c31af7Sopenharmony_ci 4401e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.adoc[] 4402e5c31af7Sopenharmony_ci 4403e5c31af7Sopenharmony_ciThis structure describes the following feature: 4404e5c31af7Sopenharmony_ci 4405e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4406e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4407e5c31af7Sopenharmony_ci structure. 4408e5c31af7Sopenharmony_ci * [[features-deviceGeneratedCommands]] pname:deviceGeneratedCommands 4409e5c31af7Sopenharmony_ci indicates whether the implementation supports functionality to generate 4410e5c31af7Sopenharmony_ci commands on the device. 4411e5c31af7Sopenharmony_ci See <<device-generated-commands,Device-Generated Commands>>. 4412e5c31af7Sopenharmony_ci 4413e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV 4414e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4415e5c31af7Sopenharmony_ci 4416e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.adoc[] 4417e5c31af7Sopenharmony_ci-- 4418e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[] 4419e5c31af7Sopenharmony_ci 4420e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands_compute[] 4421e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV',desc='Structure describing the device-generated compute features that can be supported by an implementation',type='structs'] 4422e5c31af7Sopenharmony_ci-- 4423e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV structure 4424e5c31af7Sopenharmony_ciis defined as: 4425e5c31af7Sopenharmony_ci 4426e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.adoc[] 4427e5c31af7Sopenharmony_ci 4428e5c31af7Sopenharmony_ciThis structure describes the following features: 4429e5c31af7Sopenharmony_ci 4430e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4431e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4432e5c31af7Sopenharmony_ci structure. 4433e5c31af7Sopenharmony_ci * [[features-deviceGeneratedCompute]] pname:deviceGeneratedCompute 4434e5c31af7Sopenharmony_ci indicates whether the implementation supports functionality to generate 4435e5c31af7Sopenharmony_ci dispatch commands and push constants for the compute pipeline on the 4436e5c31af7Sopenharmony_ci device. 4437e5c31af7Sopenharmony_ci See <<device-generated-commands,Device-Generated Commands>>. 4438e5c31af7Sopenharmony_ci * [[features-deviceGeneratedComputePipelines]] 4439e5c31af7Sopenharmony_ci pname:deviceGeneratedComputePipelines indicates whether the 4440e5c31af7Sopenharmony_ci implementation supports functionality to generate commands to bind 4441e5c31af7Sopenharmony_ci compute pipelines on the device. 4442e5c31af7Sopenharmony_ci See <<device-generated-commands,Device-Generated Commands>>. 4443e5c31af7Sopenharmony_ci * [[features-deviceGeneratedComputeCaptureReplay]] 4444e5c31af7Sopenharmony_ci pname:deviceGeneratedComputeCaptureReplay indicates whether the 4445e5c31af7Sopenharmony_ci implementation supports functionality to capture compute pipeline 4446e5c31af7Sopenharmony_ci address and reuse later for replay in 4447e5c31af7Sopenharmony_ci <<device-generated-commands,Device-Generated Commands>>. 4448e5c31af7Sopenharmony_ci 4449e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV 4450e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4451e5c31af7Sopenharmony_ci 4452e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.adoc[] 4453e5c31af7Sopenharmony_ci-- 4454e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands_compute[] 4455e5c31af7Sopenharmony_ci 4456e5c31af7Sopenharmony_ciifdef::VK_NV_device_diagnostics_config[] 4457e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDiagnosticsConfigFeaturesNV',desc='Structure describing the device-generated diagnostic configuration features that can be supported by an implementation',type='structs'] 4458e5c31af7Sopenharmony_ci-- 4459e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDiagnosticsConfigFeaturesNV structure is defined 4460e5c31af7Sopenharmony_cias: 4461e5c31af7Sopenharmony_ci 4462e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.adoc[] 4463e5c31af7Sopenharmony_ci 4464e5c31af7Sopenharmony_ciThis structure describes the following feature: 4465e5c31af7Sopenharmony_ci 4466e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4467e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4468e5c31af7Sopenharmony_ci structure. 4469e5c31af7Sopenharmony_ci * [[features-diagnosticsConfig]] pname:diagnosticsConfig indicates whether 4470e5c31af7Sopenharmony_ci the implementation supports the ability to configure diagnostic tools. 4471e5c31af7Sopenharmony_ci 4472e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDiagnosticsConfigFeaturesNV 4473e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4474e5c31af7Sopenharmony_ci 4475e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.adoc[] 4476e5c31af7Sopenharmony_ci-- 4477e5c31af7Sopenharmony_ciendif::VK_NV_device_diagnostics_config[] 4478e5c31af7Sopenharmony_ci 4479e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[] 4480e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',desc='Structure describing whether device memory report callback can be supported by an implementation',type='structs'] 4481e5c31af7Sopenharmony_ci-- 4482e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceMemoryReportFeaturesEXT structure is defined 4483e5c31af7Sopenharmony_cias: 4484e5c31af7Sopenharmony_ci 4485e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.adoc[] 4486e5c31af7Sopenharmony_ci 4487e5c31af7Sopenharmony_ciThis structure describes the following feature: 4488e5c31af7Sopenharmony_ci 4489e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4490e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4491e5c31af7Sopenharmony_ci structure. 4492e5c31af7Sopenharmony_ci * [[features-deviceMemoryReport]] pname:deviceMemoryReport indicates 4493e5c31af7Sopenharmony_ci whether the implementation supports the ability to register device 4494e5c31af7Sopenharmony_ci memory report callbacks. 4495e5c31af7Sopenharmony_ci 4496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceMemoryReportFeaturesEXT 4497e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4498e5c31af7Sopenharmony_ci 4499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.adoc[] 4500e5c31af7Sopenharmony_ci-- 4501e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[] 4502e5c31af7Sopenharmony_ci 4503e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query,VK_KHR_global_priority[] 4504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR',desc='Structure describing whether global priority query can be supported by an implementation',type='structs'] 4505e5c31af7Sopenharmony_ci-- 4506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR structure is 4507e5c31af7Sopenharmony_cidefined as: 4508e5c31af7Sopenharmony_ci 4509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR.adoc[] 4510e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[] 4511e5c31af7Sopenharmony_cior the equivalent 4512e5c31af7Sopenharmony_ci 4513e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.adoc[] 4514e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[] 4515e5c31af7Sopenharmony_ci 4516e5c31af7Sopenharmony_ciThis structure describes the following feature: 4517e5c31af7Sopenharmony_ci 4518e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4519e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4520e5c31af7Sopenharmony_ci structure. 4521e5c31af7Sopenharmony_ci * [[features-globalPriorityQuery]] pname:globalPriorityQuery indicates 4522e5c31af7Sopenharmony_ci whether the implementation supports the ability to query global queue 4523e5c31af7Sopenharmony_ci priorities. 4524e5c31af7Sopenharmony_ci 4525e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR 4526e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4527e5c31af7Sopenharmony_ci 4528e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR.adoc[] 4529e5c31af7Sopenharmony_ci-- 4530e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query,VK_KHR_global_priority[] 4531e5c31af7Sopenharmony_ci 4532e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[] 4533e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineCreationCacheControlFeatures',desc='Structure describing whether pipeline cache control can be supported by an implementation',type='structs',alias='VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT'] 4534e5c31af7Sopenharmony_ci-- 4535e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineCreationCacheControlFeatures structure is 4536e5c31af7Sopenharmony_cidefined as: 4537e5c31af7Sopenharmony_ci 4538e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeatures.adoc[] 4539e5c31af7Sopenharmony_ci 4540e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[] 4541e5c31af7Sopenharmony_cior the equivalent 4542e5c31af7Sopenharmony_ci 4543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.adoc[] 4544e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[] 4545e5c31af7Sopenharmony_ci 4546e5c31af7Sopenharmony_ciThis structure describes the following feature: 4547e5c31af7Sopenharmony_ci 4548e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4549e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4550e5c31af7Sopenharmony_ci structure. 4551e5c31af7Sopenharmony_ci 4552e5c31af7Sopenharmony_ci// Must have preceding whitespace 4553e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 4554e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 4555e5c31af7Sopenharmony_ci// tag::VK_EXT_pipeline_creation_cache_control-features[] 4556e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-pipelineCreationCacheControl]] 4557e5c31af7Sopenharmony_ci pname:pipelineCreationCacheControl indicates that the implementation 4558e5c31af7Sopenharmony_ci supports: 4559e5c31af7Sopenharmony_ci ** The following can: be used in stext:Vk*PipelineCreateInfo::pname:flags: 4560e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT 4561e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT 4562e5c31af7Sopenharmony_ci ** The following can: be used in 4563e5c31af7Sopenharmony_ci slink:VkPipelineCacheCreateInfo::pname:flags: 4564e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT 4565e5c31af7Sopenharmony_ci// end::VK_EXT_pipeline_creation_cache_control-features[] 4566e5c31af7Sopenharmony_ci 4567e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineCreationCacheControlFeatures 4568e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4569e5c31af7Sopenharmony_ci 4570e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineCreationCacheControlFeatures.adoc[] 4571e5c31af7Sopenharmony_ci-- 4572e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[] 4573e5c31af7Sopenharmony_ci 4574e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[] 4575e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures',desc='Structure describing support for zero initialization of workgroup memory by an implementation',type='structs',alias='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'] 4576e5c31af7Sopenharmony_ci-- 4577e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures structure is 4578e5c31af7Sopenharmony_cidefined as: 4579e5c31af7Sopenharmony_ci 4580e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.adoc[] 4581e5c31af7Sopenharmony_ci 4582e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[] 4583e5c31af7Sopenharmony_cior the equivalent 4584e5c31af7Sopenharmony_ci 4585e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.adoc[] 4586e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[] 4587e5c31af7Sopenharmony_ci 4588e5c31af7Sopenharmony_ciThis structure describes the following feature: 4589e5c31af7Sopenharmony_ci 4590e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4591e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4592e5c31af7Sopenharmony_ci structure. 4593e5c31af7Sopenharmony_ci 4594e5c31af7Sopenharmony_ci// Must have preceding whitespace 4595e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 4596e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 4597e5c31af7Sopenharmony_ci// tag::VK_KHR_zero_initialize_workgroup_memory-features[] 4598e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderZeroInitializeWorkgroupMemory]] 4599e5c31af7Sopenharmony_ci pname:shaderZeroInitializeWorkgroupMemory specifies whether the 4600e5c31af7Sopenharmony_ci implementation supports initializing a variable in Workgroup storage 4601e5c31af7Sopenharmony_ci class. 4602e5c31af7Sopenharmony_ci// end::VK_KHR_zero_initialize_workgroup_memory-features[] 4603e5c31af7Sopenharmony_ci 4604e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures 4605e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4606e5c31af7Sopenharmony_ci 4607e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures.adoc[] 4608e5c31af7Sopenharmony_ci-- 4609e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[] 4610e5c31af7Sopenharmony_ci 4611e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_private_data[] 4612e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrivateDataFeatures',desc='Structure specifying physical device support',type='structs',alias='VkPhysicalDevicePrivateDataFeaturesEXT'] 4613e5c31af7Sopenharmony_ci-- 4614e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrivateDataFeatures structure is defined as: 4615e5c31af7Sopenharmony_ci 4616e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeatures.adoc[] 4617e5c31af7Sopenharmony_ci 4618e5c31af7Sopenharmony_ciifdef::VK_EXT_private_data[] 4619e5c31af7Sopenharmony_cior the equivalent 4620e5c31af7Sopenharmony_ci 4621e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeaturesEXT.adoc[] 4622e5c31af7Sopenharmony_ciendif::VK_EXT_private_data[] 4623e5c31af7Sopenharmony_ci 4624e5c31af7Sopenharmony_ciThis structure describes the following feature: 4625e5c31af7Sopenharmony_ci 4626e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4627e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4628e5c31af7Sopenharmony_ci structure. 4629e5c31af7Sopenharmony_ci 4630e5c31af7Sopenharmony_ci// Must have preceding whitespace 4631e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 4632e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 4633e5c31af7Sopenharmony_ci// tag::VK_EXT_private_data-features[] 4634e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-privateData]] pname:privateData indicates 4635e5c31af7Sopenharmony_ci whether the implementation supports private data. 4636e5c31af7Sopenharmony_ci See <<private-data, Private Data>>. 4637e5c31af7Sopenharmony_ci// end::VK_EXT_private_data-features[] 4638e5c31af7Sopenharmony_ci 4639e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeatures 4640e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4641e5c31af7Sopenharmony_ci 4642e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrivateDataFeatures.adoc[] 4643e5c31af7Sopenharmony_ci-- 4644e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_private_data[] 4645e5c31af7Sopenharmony_ci 4646e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[] 4647e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',desc='Structure describing support for shader subgroup uniform control flow by an implementation',type='structs'] 4648e5c31af7Sopenharmony_ci-- 4649e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 4650e5c31af7Sopenharmony_cistructure is defined as: 4651e5c31af7Sopenharmony_ci 4652e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.adoc[] 4653e5c31af7Sopenharmony_ci 4654e5c31af7Sopenharmony_ciThis structure describes the following feature: 4655e5c31af7Sopenharmony_ci 4656e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4657e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4658e5c31af7Sopenharmony_ci structure. 4659e5c31af7Sopenharmony_ci * [[features-shaderSubgroupUniformControlFlow]] 4660e5c31af7Sopenharmony_ci pname:shaderSubgroupUniformControlFlow specifies whether the 4661e5c31af7Sopenharmony_ci implementation supports the shader execution mode 4662e5c31af7Sopenharmony_ci code:SubgroupUniformControlFlowKHR 4663e5c31af7Sopenharmony_ci 4664e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 4665e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4666e5c31af7Sopenharmony_ci 4667e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.adoc[] 4668e5c31af7Sopenharmony_ci-- 4669e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[] 4670e5c31af7Sopenharmony_ci 4671e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 4672e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRobustness2FeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs'] 4673e5c31af7Sopenharmony_ci-- 4674e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRobustness2FeaturesEXT structure is defined as: 4675e5c31af7Sopenharmony_ci 4676e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRobustness2FeaturesEXT.adoc[] 4677e5c31af7Sopenharmony_ci 4678e5c31af7Sopenharmony_ciThis structure describes the following features: 4679e5c31af7Sopenharmony_ci 4680e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4681e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4682e5c31af7Sopenharmony_ci structure. 4683e5c31af7Sopenharmony_ci * [[features-robustBufferAccess2]] pname:robustBufferAccess2 indicates 4684e5c31af7Sopenharmony_ci whether buffer accesses are tightly bounds-checked against the range of 4685e5c31af7Sopenharmony_ci the descriptor. 4686e5c31af7Sopenharmony_ci Uniform buffers must: be bounds-checked to the range of the descriptor, 4687e5c31af7Sopenharmony_ci where the range is rounded up to a multiple of 4688e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment, 4689e5c31af7Sopenharmony_ci pname:robustUniformBufferAccessSizeAlignment>>. 4690e5c31af7Sopenharmony_ci Storage buffers must: be bounds-checked to the range of the descriptor, 4691e5c31af7Sopenharmony_ci where the range is rounded up to a multiple of 4692e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment, 4693e5c31af7Sopenharmony_ci pname:robustStorageBufferAccessSizeAlignment>>. 4694e5c31af7Sopenharmony_ci Out of bounds buffer loads will return zero values, and <<textures, 4695e5c31af7Sopenharmony_ci image load, sample, and atomic operations>> from texel buffers will have 4696e5c31af7Sopenharmony_ci [eq]#(0,0,1)# values <<textures-conversion-to-rgba,inserted for missing 4697e5c31af7Sopenharmony_ci G, B, or A components>> based on the format. 4698e5c31af7Sopenharmony_ci * [[features-robustImageAccess2]] pname:robustImageAccess2 indicates 4699e5c31af7Sopenharmony_ci whether image accesses are tightly bounds-checked against the dimensions 4700e5c31af7Sopenharmony_ci of the image view. 4701e5c31af7Sopenharmony_ci Out of bounds <<textures, image load, sample, and atomic operations>> 4702e5c31af7Sopenharmony_ci from images will return zero values, with [eq]#(0,0,1)# values 4703e5c31af7Sopenharmony_ci <<textures-conversion-to-rgba,inserted for missing G, B, or A 4704e5c31af7Sopenharmony_ci components>> based on the format. 4705e5c31af7Sopenharmony_ci * [[{vuprefix}features-nullDescriptor]] pname:nullDescriptor indicates 4706e5c31af7Sopenharmony_ci whether descriptors can: be written with a dlink:VK_NULL_HANDLE resource 4707e5c31af7Sopenharmony_ci or view, which are considered valid to access and act as if the 4708e5c31af7Sopenharmony_ci descriptor were bound to nothing. 4709e5c31af7Sopenharmony_ci 4710e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRobustness2FeaturesEXT 4711e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4712e5c31af7Sopenharmony_ci 4713e5c31af7Sopenharmony_ci.Valid Usage 4714e5c31af7Sopenharmony_ci**** 4715e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000]] 4716e5c31af7Sopenharmony_ci If pname:robustBufferAccess2 is enabled then 4717e5c31af7Sopenharmony_ci <<features-robustBufferAccess, pname:robustBufferAccess>> must: also be 4718e5c31af7Sopenharmony_ci enabled 4719e5c31af7Sopenharmony_ci**** 4720e5c31af7Sopenharmony_ci 4721e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRobustness2FeaturesEXT.adoc[] 4722e5c31af7Sopenharmony_ci-- 4723e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 4724e5c31af7Sopenharmony_ci 4725e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[] 4726e5c31af7Sopenharmony_ci[[features-nullDescriptor]] nullDescriptor support requires the 4727e5c31af7Sopenharmony_ci`apiext:VK_EXT_robustness2` extension. 4728e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 4729e5c31af7Sopenharmony_ci 4730e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_image_robustness[] 4731e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageRobustnessFeatures',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs',alias='VkPhysicalDeviceImageRobustnessFeaturesEXT'] 4732e5c31af7Sopenharmony_ci-- 4733e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageRobustnessFeatures structure is defined as: 4734e5c31af7Sopenharmony_ci 4735e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeatures.adoc[] 4736e5c31af7Sopenharmony_ci 4737e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[] 4738e5c31af7Sopenharmony_cior the equivalent 4739e5c31af7Sopenharmony_ci 4740e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.adoc[] 4741e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[] 4742e5c31af7Sopenharmony_ci 4743e5c31af7Sopenharmony_ciThis structure describes the following feature: 4744e5c31af7Sopenharmony_ci 4745e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4746e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4747e5c31af7Sopenharmony_ci structure. 4748e5c31af7Sopenharmony_ci 4749e5c31af7Sopenharmony_ci// Must have preceding whitespace 4750e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 4751e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 4752e5c31af7Sopenharmony_ci// tag::VK_EXT_image_robustness-features[] 4753e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-robustImageAccess]] pname:robustImageAccess 4754e5c31af7Sopenharmony_ci indicates whether image accesses are tightly bounds-checked against the 4755e5c31af7Sopenharmony_ci dimensions of the image view. 4756e5c31af7Sopenharmony_ci <<textures-input-validation,Invalid texels>> resulting from out of 4757e5c31af7Sopenharmony_ci bounds image loads will be replaced as described in 4758e5c31af7Sopenharmony_ci <<textures-texel-replacement,Texel Replacement>>, with either 4759e5c31af7Sopenharmony_ci [eq]#(0,0,1)# or [eq]#(0,0,0)# values inserted for missing G, B, or A 4760e5c31af7Sopenharmony_ci components based on the format. 4761e5c31af7Sopenharmony_ci// end::VK_EXT_image_robustness-features[] 4762e5c31af7Sopenharmony_ci 4763e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageRobustnessFeatures 4764e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4765e5c31af7Sopenharmony_ci 4766e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageRobustnessFeatures.adoc[] 4767e5c31af7Sopenharmony_ci-- 4768e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_image_robustness[] 4769e5c31af7Sopenharmony_ci 4770e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[] 4771e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTerminateInvocationFeatures',desc='Structure describing support for the SPIR-V code:SPV_KHR_terminate_invocation extension',type='structs',alias='VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR'] 4772e5c31af7Sopenharmony_ci-- 4773e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTerminateInvocationFeatures structure is 4774e5c31af7Sopenharmony_cidefined as: 4775e5c31af7Sopenharmony_ci 4776e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeatures.adoc[] 4777e5c31af7Sopenharmony_ci 4778e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[] 4779e5c31af7Sopenharmony_cior the equivalent 4780e5c31af7Sopenharmony_ci 4781e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.adoc[] 4782e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[] 4783e5c31af7Sopenharmony_ci 4784e5c31af7Sopenharmony_ciThis structure describes the following feature: 4785e5c31af7Sopenharmony_ci 4786e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4787e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4788e5c31af7Sopenharmony_ci structure. 4789e5c31af7Sopenharmony_ci 4790e5c31af7Sopenharmony_ci// Must have preceding whitespace 4791e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 4792e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 4793e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_terminate_invocation-features[] 4794e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderTerminateInvocation]] 4795e5c31af7Sopenharmony_ci pname:shaderTerminateInvocation specifies whether the implementation 4796e5c31af7Sopenharmony_ci supports SPIR-V modules that use the `SPV_KHR_terminate_invocation` 4797e5c31af7Sopenharmony_ci extension. 4798e5c31af7Sopenharmony_ci// end::VK_KHR_shader_terminate_invocation-features[] 4799e5c31af7Sopenharmony_ci 4800e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTerminateInvocationFeatures 4801e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4802e5c31af7Sopenharmony_ci 4803e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTerminateInvocationFeatures.adoc[] 4804e5c31af7Sopenharmony_ci-- 4805e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[] 4806e5c31af7Sopenharmony_ci 4807e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[] 4808e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCustomBorderColorFeaturesEXT',desc='Structure describing whether custom border colors can be supported by an implementation',type='structs'] 4809e5c31af7Sopenharmony_ci-- 4810e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCustomBorderColorFeaturesEXT structure is defined 4811e5c31af7Sopenharmony_cias: 4812e5c31af7Sopenharmony_ci 4813e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.adoc[] 4814e5c31af7Sopenharmony_ci 4815e5c31af7Sopenharmony_ciThis structure describes the following features: 4816e5c31af7Sopenharmony_ci 4817e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4818e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4819e5c31af7Sopenharmony_ci structure. 4820e5c31af7Sopenharmony_ci * [[features-customBorderColors]] pname:customBorderColors indicates that 4821e5c31af7Sopenharmony_ci the implementation supports providing a pname:borderColor value with one 4822e5c31af7Sopenharmony_ci of the following values at sampler creation time: 4823e5c31af7Sopenharmony_ci ** ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT 4824e5c31af7Sopenharmony_ci ** ename:VK_BORDER_COLOR_INT_CUSTOM_EXT 4825e5c31af7Sopenharmony_ci * [[features-customBorderColorWithoutFormat]] 4826e5c31af7Sopenharmony_ci pname:customBorderColorWithoutFormat indicates that explicit formats are 4827e5c31af7Sopenharmony_ci not required for custom border colors and the value of the pname:format 4828e5c31af7Sopenharmony_ci member of the slink:VkSamplerCustomBorderColorCreateInfoEXT structure 4829e5c31af7Sopenharmony_ci may: be ename:VK_FORMAT_UNDEFINED. 4830e5c31af7Sopenharmony_ci If this feature bit is not set, applications must: provide the 4831e5c31af7Sopenharmony_ci elink:VkFormat of the image view(s) being sampled by this sampler in the 4832e5c31af7Sopenharmony_ci pname:format member of the slink:VkSamplerCustomBorderColorCreateInfoEXT 4833e5c31af7Sopenharmony_ci structure. 4834e5c31af7Sopenharmony_ci 4835e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCustomBorderColorFeaturesEXT 4836e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4837e5c31af7Sopenharmony_ci 4838e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.adoc[] 4839e5c31af7Sopenharmony_ci-- 4840e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[] 4841e5c31af7Sopenharmony_ci 4842e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[] 4843e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBorderColorSwizzleFeaturesEXT',desc='Structure describing whether samplers with custom border colors require the component swizzle specified in order to have defined behavior',type='structs'] 4844e5c31af7Sopenharmony_ci-- 4845e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBorderColorSwizzleFeaturesEXT structure is defined 4846e5c31af7Sopenharmony_cias: 4847e5c31af7Sopenharmony_ci 4848e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.adoc[] 4849e5c31af7Sopenharmony_ci 4850e5c31af7Sopenharmony_ciThis structure describes the following features: 4851e5c31af7Sopenharmony_ci 4852e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4853e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4854e5c31af7Sopenharmony_ci structure. 4855e5c31af7Sopenharmony_ci * [[features-borderColorSwizzle]] pname:borderColorSwizzle indicates that 4856e5c31af7Sopenharmony_ci defined values are returned by sampled image operations when used with a 4857e5c31af7Sopenharmony_ci sampler that uses a ename:VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, 4858e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_INT_OPAQUE_BLACK, 4859e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, or 4860e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_INT_CUSTOM_EXT pname:borderColor and an image view 4861e5c31af7Sopenharmony_ci that uses a non-<<resources-image-views-identity-mappings,identity 4862e5c31af7Sopenharmony_ci component mapping>>, when either pname:borderColorSwizzleFromImage is 4863e5c31af7Sopenharmony_ci enabled or the slink:VkSamplerBorderColorComponentMappingCreateInfoEXT 4864e5c31af7Sopenharmony_ci is specified. 4865e5c31af7Sopenharmony_ci * [[features-borderColorSwizzleFromImage]] 4866e5c31af7Sopenharmony_ci pname:borderColorSwizzleFromImage indicates that the implementation will 4867e5c31af7Sopenharmony_ci return the correct border color values from sampled image operations 4868e5c31af7Sopenharmony_ci under the conditions expressed above, without the application having to 4869e5c31af7Sopenharmony_ci specify the border color component mapping when creating the sampler 4870e5c31af7Sopenharmony_ci object. 4871e5c31af7Sopenharmony_ci If this feature bit is not set, applications can: chain a 4872e5c31af7Sopenharmony_ci slink:VkSamplerBorderColorComponentMappingCreateInfoEXT structure when 4873e5c31af7Sopenharmony_ci creating samplers for use with image views that do not have an 4874e5c31af7Sopenharmony_ci <<resources-image-views-identity-mappings,identity swizzle>> and, when 4875e5c31af7Sopenharmony_ci those samplers are combined with image views using the same component 4876e5c31af7Sopenharmony_ci mapping, sampled image operations that use opaque black or custom border 4877e5c31af7Sopenharmony_ci colors will return the correct border color values. 4878e5c31af7Sopenharmony_ci 4879e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBorderColorSwizzleFeaturesEXT 4880e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4881e5c31af7Sopenharmony_ci 4882e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.adoc[] 4883e5c31af7Sopenharmony_ci-- 4884e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[] 4885e5c31af7Sopenharmony_ci 4886e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[] 4887e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePortabilitySubsetFeaturesKHR',desc='Structure describing the features that may not be supported by an implementation of the Vulkan 1.0 Portability Subset',type='structs'] 4888e5c31af7Sopenharmony_ci-- 4889e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePortabilitySubsetFeaturesKHR structure is defined 4890e5c31af7Sopenharmony_cias: 4891e5c31af7Sopenharmony_ci 4892e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.adoc[] 4893e5c31af7Sopenharmony_ci 4894e5c31af7Sopenharmony_ciThis structure describes the following features: 4895e5c31af7Sopenharmony_ci 4896e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4897e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4898e5c31af7Sopenharmony_ci structure. 4899e5c31af7Sopenharmony_ci * [[features-constantAlphaColorBlendFactors]] 4900e5c31af7Sopenharmony_ci pname:constantAlphaColorBlendFactors indicates whether this 4901e5c31af7Sopenharmony_ci implementation supports constant _alpha_ <<framebuffer-blendfactors>> 4902e5c31af7Sopenharmony_ci used as source or destination _color_ <<framebuffer-blending>>. 4903e5c31af7Sopenharmony_ci * [[features-events]] pname:events indicates whether this implementation 4904e5c31af7Sopenharmony_ci supports synchronization using <<synchronization-events>>. 4905e5c31af7Sopenharmony_ci * [[features-imageViewFormatReinterpretation]] 4906e5c31af7Sopenharmony_ci pname:imageViewFormatReinterpretation indicates whether this 4907e5c31af7Sopenharmony_ci implementation supports a sname:VkImageView being created with a texel 4908e5c31af7Sopenharmony_ci format containing a different number of components, or a different 4909e5c31af7Sopenharmony_ci number of bits in each component, than the texel format of the 4910e5c31af7Sopenharmony_ci underlying sname:VkImage. 4911e5c31af7Sopenharmony_ci * [[features-imageViewFormatSwizzle]] pname:imageViewFormatSwizzle 4912e5c31af7Sopenharmony_ci indicates whether this implementation supports remapping format 4913e5c31af7Sopenharmony_ci components using slink:VkImageViewCreateInfo::pname:components. 4914e5c31af7Sopenharmony_ci * [[features-imageView2DOn3DImage]] pname:imageView2DOn3DImage indicates 4915e5c31af7Sopenharmony_ci whether this implementation supports a sname:VkImage being created with 4916e5c31af7Sopenharmony_ci the ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag set, permitting a 4917e5c31af7Sopenharmony_ci 2D or 2D array image view to be created on a 3D sname:VkImage. 4918e5c31af7Sopenharmony_ci * [[features-multisampleArrayImage]] pname:multisampleArrayImage indicates 4919e5c31af7Sopenharmony_ci whether this implementation supports a sname:VkImage being created as a 4920e5c31af7Sopenharmony_ci 2D array with multiple samples per texel. 4921e5c31af7Sopenharmony_ci * [[features-mutableComparisonSamplers]] pname:mutableComparisonSamplers 4922e5c31af7Sopenharmony_ci indicates whether this implementation allows descriptors with comparison 4923e5c31af7Sopenharmony_ci samplers to be <<descriptorsets-updates, updated>>. 4924e5c31af7Sopenharmony_ci * [[features-pointPolygons]] pname:pointPolygons indicates whether this 4925e5c31af7Sopenharmony_ci implementation supports <<primsrast>> using a _point_ 4926e5c31af7Sopenharmony_ci <<primsrast-polygonmode>>. 4927e5c31af7Sopenharmony_ci * [[features-samplerMipLodBias]] pname:samplerMipLodBias indicates whether 4928e5c31af7Sopenharmony_ci this implementation supports setting a <<samplers-mipLodBias, mipmap LOD 4929e5c31af7Sopenharmony_ci bias value>> when <<samplers, creating a sampler>>. 4930e5c31af7Sopenharmony_ci * [[features-separateStencilMaskRef]] pname:separateStencilMaskRef 4931e5c31af7Sopenharmony_ci indicates whether this implementation supports separate front and back 4932e5c31af7Sopenharmony_ci <<fragops-stencil>> reference values. 4933e5c31af7Sopenharmony_ci * [[features-shaderSampleRateInterpolationFunctions]] 4934e5c31af7Sopenharmony_ci pname:shaderSampleRateInterpolationFunctions indicates whether this 4935e5c31af7Sopenharmony_ci implementation supports fragment shaders which use the 4936e5c31af7Sopenharmony_ci <<spirvenv-capabilities-table-InterpolationFunction, 4937e5c31af7Sopenharmony_ci code:InterpolationFunction>> capability and the extended instructions 4938e5c31af7Sopenharmony_ci `InterpolateAtCentroid`, `InterpolateAtOffset`, and 4939e5c31af7Sopenharmony_ci `InterpolateAtSample` from the `GLSL.std.450` extended instruction set. 4940e5c31af7Sopenharmony_ci This member is only meaningful if the <<features-sampleRateShading, 4941e5c31af7Sopenharmony_ci pname:sampleRateShading>> feature is supported. 4942e5c31af7Sopenharmony_ci * [[features-tessellationIsolines]] pname:tessellationIsolines indicates 4943e5c31af7Sopenharmony_ci whether this implementation supports 4944e5c31af7Sopenharmony_ci <<tessellation-isoline-tessellation, isoline output>> from the 4945e5c31af7Sopenharmony_ci <<tessellation>> stage of a graphics pipeline. 4946e5c31af7Sopenharmony_ci This member is only meaningful if <<features-tessellationShader, 4947e5c31af7Sopenharmony_ci pname:tessellationShader>> are supported. 4948e5c31af7Sopenharmony_ci * [[features-tessellationPointMode]] pname:tessellationPointMode indicates 4949e5c31af7Sopenharmony_ci whether this implementation supports <<tessellation-point-mode, point 4950e5c31af7Sopenharmony_ci output>> from the <<tessellation>> stage of a graphics pipeline. 4951e5c31af7Sopenharmony_ci This member is only meaningful if <<features-tessellationShader, 4952e5c31af7Sopenharmony_ci pname:tessellationShader>> are supported. 4953e5c31af7Sopenharmony_ci * [[features-triangleFans]] pname:triangleFans indicates whether this 4954e5c31af7Sopenharmony_ci implementation supports <<drawing-triangle-fans>> primitive topology. 4955e5c31af7Sopenharmony_ci * [[features-vertexAttributeAccessBeyondStride]] 4956e5c31af7Sopenharmony_ci pname:vertexAttributeAccessBeyondStride indicates whether this 4957e5c31af7Sopenharmony_ci implementation supports accessing a vertex input attribute beyond the 4958e5c31af7Sopenharmony_ci stride of the corresponding vertex input binding. 4959e5c31af7Sopenharmony_ci 4960e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePortabilitySubsetFeaturesKHR 4961e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4962e5c31af7Sopenharmony_ci 4963e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.adoc[] 4964e5c31af7Sopenharmony_ci-- 4965e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 4966e5c31af7Sopenharmony_ci 4967e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[] 4968e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanSC10Features',desc='Structure describing the features that may not be supported by an implementation of Vulkan SC',type='structs'] 4969e5c31af7Sopenharmony_ci-- 4970e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanSC10Features structure is defined as: 4971e5c31af7Sopenharmony_ci 4972e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanSC10Features.adoc[] 4973e5c31af7Sopenharmony_ci 4974e5c31af7Sopenharmony_ciThis structure describes the following features: 4975e5c31af7Sopenharmony_ci 4976e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 4977e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4978e5c31af7Sopenharmony_ci structure. 4979e5c31af7Sopenharmony_ci * [[features-shaderAtomicInstructions]] pname:shaderAtomicInstructions 4980e5c31af7Sopenharmony_ci indicates whether this implementation supports shaders which use the 4981e5c31af7Sopenharmony_ci SPIR-V code:OpAtomic* instructions. 4982e5c31af7Sopenharmony_ci 4983e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanSC10Features 4984e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 4985e5c31af7Sopenharmony_ci 4986e5c31af7Sopenharmony_ciifdef::hidden[] 4987e5c31af7Sopenharmony_ci// tag::scaddition[] 4988e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceVulkanSC10Features <<SCID-1>> 4989e5c31af7Sopenharmony_ci// end::scaddition[] 4990e5c31af7Sopenharmony_ci// tag::scdeviation[] 4991e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceVulkanSC10Features::pname:shaderAtomicInstructions 4992e5c31af7Sopenharmony_ci are made optional <<SCID-1>>. 4993e5c31af7Sopenharmony_ci// end::scdeviation[] 4994e5c31af7Sopenharmony_ciendif::hidden[] 4995e5c31af7Sopenharmony_ci 4996e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanSC10Features.adoc[] 4997e5c31af7Sopenharmony_ci-- 4998e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 4999e5c31af7Sopenharmony_ci 5000e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[] 5001e5c31af7Sopenharmony_ciinclude::{chapters}/VK_KHR_performance_query/features.adoc[] 5002e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[] 5003e5c31af7Sopenharmony_ci 5004e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[] 5005e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice4444FormatsFeaturesEXT',desc='Structure describing additional 4444 formats supported by an implementation',type='structs'] 5006e5c31af7Sopenharmony_ci-- 5007e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevice4444FormatsFeaturesEXT structure is defined as: 5008e5c31af7Sopenharmony_ci 5009e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice4444FormatsFeaturesEXT.adoc[] 5010e5c31af7Sopenharmony_ci 5011e5c31af7Sopenharmony_ciThis structure describes the following features: 5012e5c31af7Sopenharmony_ci 5013e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5014e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5015e5c31af7Sopenharmony_ci structure. 5016e5c31af7Sopenharmony_ci * [[features-formatA4R4G4B4]] pname:formatA4R4G4B4 indicates that the 5017e5c31af7Sopenharmony_ci implementation must: support using a elink:VkFormat of 5018e5c31af7Sopenharmony_ci ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT with at least the following 5019e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits: 5020e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 5021e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT 5022e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT 5023e5c31af7Sopenharmony_ci * [[features-formatA4B4G4R4]] pname:formatA4B4G4R4 indicates that the 5024e5c31af7Sopenharmony_ci implementation must: support using a elink:VkFormat of 5025e5c31af7Sopenharmony_ci ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT with at least the following 5026e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits: 5027e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 5028e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT 5029e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT 5030e5c31af7Sopenharmony_ci 5031e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice4444FormatsFeaturesEXT 5032e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5033e5c31af7Sopenharmony_ci 5034e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice4444FormatsFeaturesEXT.adoc[] 5035e5c31af7Sopenharmony_ci 5036e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 5037e5c31af7Sopenharmony_ci[NOTE] 5038e5c31af7Sopenharmony_ci.Note 5039e5c31af7Sopenharmony_ci==== 5040e5c31af7Sopenharmony_ciAlthough the formats defined by the `apiext:VK_EXT_4444_formats` extension 5041e5c31af7Sopenharmony_ciwere promoted to Vulkan 1.3 as optional formats, the 5042e5c31af7Sopenharmony_cislink:VkPhysicalDevice4444FormatsFeaturesEXT structure was not promoted to 5043e5c31af7Sopenharmony_ciVulkan 1.3. 5044e5c31af7Sopenharmony_ci==== 5045e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 5046e5c31af7Sopenharmony_ci-- 5047e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[] 5048e5c31af7Sopenharmony_ci 5049e5c31af7Sopenharmony_ciifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 5050e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT',desc='Structure describing whether the mutable descriptor type is supported',type='structs',alias='VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE'] 5051e5c31af7Sopenharmony_ci-- 5052e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT structure is 5053e5c31af7Sopenharmony_cidefined as: 5054e5c31af7Sopenharmony_ci 5055e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.adoc[] 5056e5c31af7Sopenharmony_ci 5057e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[] 5058e5c31af7Sopenharmony_cior the equivalent 5059e5c31af7Sopenharmony_ci 5060e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.adoc[] 5061e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[] 5062e5c31af7Sopenharmony_ci 5063e5c31af7Sopenharmony_ciThis structure describes the following feature: 5064e5c31af7Sopenharmony_ci 5065e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5066e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5067e5c31af7Sopenharmony_ci structure. 5068e5c31af7Sopenharmony_ci * [[features-mutableDescriptorType]] pname:mutableDescriptorType indicates 5069e5c31af7Sopenharmony_ci that the implementation must: support using the elink:VkDescriptorType 5070e5c31af7Sopenharmony_ci of ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT with at least the following 5071e5c31af7Sopenharmony_ci descriptor types, where any combination of the types must: be supported: 5072e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE 5073e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE 5074e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER 5075e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER 5076e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER 5077e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER 5078e5c31af7Sopenharmony_ci 5079e5c31af7Sopenharmony_ci * Additionally, pname:mutableDescriptorType indicates that: 5080e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 5081e5c31af7Sopenharmony_ci ** Non-uniform descriptor indexing must: be supported if all descriptor 5082e5c31af7Sopenharmony_ci types in a slink:VkMutableDescriptorTypeListEXT for 5083e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT have the corresponding non-uniform 5084e5c31af7Sopenharmony_ci indexing features enabled in 5085e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceDescriptorIndexingFeatures. 5086e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT with 5087e5c31af7Sopenharmony_ci pname:descriptorType of ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT relaxes 5088e5c31af7Sopenharmony_ci the list of required descriptor types to the descriptor types which 5089e5c31af7Sopenharmony_ci have the corresponding update-after-bind feature enabled in 5090e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceDescriptorIndexingFeatures. 5091e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 5092e5c31af7Sopenharmony_ci ** Dynamically uniform descriptor indexing must: be supported if all 5093e5c31af7Sopenharmony_ci descriptor types in a slink:VkMutableDescriptorTypeListEXT for 5094e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_MUTABLE_EXT have the corresponding dynamic 5095e5c31af7Sopenharmony_ci indexing features enabled. 5096e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT must: be 5097e5c31af7Sopenharmony_ci supported. 5098e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT must: be supported. 5099e5c31af7Sopenharmony_ci 5100e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT 5101e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5102e5c31af7Sopenharmony_ci 5103e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT.adoc[] 5104e5c31af7Sopenharmony_ci-- 5105e5c31af7Sopenharmony_ciendif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 5106e5c31af7Sopenharmony_ci 5107e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[] 5108e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipControlFeaturesEXT',desc='Structure describing additional depth clip control supported by an implementation',type='structs'] 5109e5c31af7Sopenharmony_ci-- 5110e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipControlFeaturesEXT structure is defined 5111e5c31af7Sopenharmony_cias: 5112e5c31af7Sopenharmony_ci 5113e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.adoc[] 5114e5c31af7Sopenharmony_ci 5115e5c31af7Sopenharmony_ciThis structure describes the following feature: 5116e5c31af7Sopenharmony_ci 5117e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5118e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5119e5c31af7Sopenharmony_ci structure. 5120e5c31af7Sopenharmony_ci * [[features-depthClipControl]] pname:depthClipControl indicates that the 5121e5c31af7Sopenharmony_ci implementation supports setting 5122e5c31af7Sopenharmony_ci slink:VkPipelineViewportDepthClipControlCreateInfoEXT::pname:negativeOneToOne 5123e5c31af7Sopenharmony_ci to ename:VK_TRUE. 5124e5c31af7Sopenharmony_ci 5125e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipControlFeaturesEXT 5126e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5127e5c31af7Sopenharmony_ci 5128e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.adoc[] 5129e5c31af7Sopenharmony_ci-- 5130e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[] 5131e5c31af7Sopenharmony_ci 5132e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 5133e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',desc='Structure describing the workgroup storage explicit layout features that can be supported by an implementation',type='structs'] 5134e5c31af7Sopenharmony_ci-- 5135e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR structure 5136e5c31af7Sopenharmony_ciis defined as: 5137e5c31af7Sopenharmony_ci 5138e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.adoc[] 5139e5c31af7Sopenharmony_ci 5140e5c31af7Sopenharmony_ciThis structure describes the following features: 5141e5c31af7Sopenharmony_ci 5142e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5143e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5144e5c31af7Sopenharmony_ci structure. 5145e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout]] 5146e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout indicates whether the implementation 5147e5c31af7Sopenharmony_ci supports the SPIR-V code:WorkgroupMemoryExplicitLayoutKHR capability. 5148e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayoutScalarBlockLayout]] 5149e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether 5150e5c31af7Sopenharmony_ci the implementation supports scalar alignment for laying out Workgroup 5151e5c31af7Sopenharmony_ci Blocks. 5152e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout8BitAccess]] 5153e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout8BitAccess indicates whether objects 5154e5c31af7Sopenharmony_ci in the code:Workgroup storage class with the code:Block decoration can: 5155e5c31af7Sopenharmony_ci have 8-bit integer members. 5156e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 5157e5c31af7Sopenharmony_ci in such objects. 5158e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 5159e5c31af7Sopenharmony_ci code:WorkgroupMemoryExplicitLayout8BitAccessKHR capability. 5160e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout16BitAccess]] 5161e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout16BitAccess indicates whether objects 5162e5c31af7Sopenharmony_ci in the code:Workgroup storage class with the code:Block decoration can: 5163e5c31af7Sopenharmony_ci have 16-bit integer and 16-bit floating-point members. 5164e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 5165e5c31af7Sopenharmony_ci members must: not be used in such objects. 5166e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 5167e5c31af7Sopenharmony_ci code:WorkgroupMemoryExplicitLayout16BitAccessKHR capability. 5168e5c31af7Sopenharmony_ci 5169e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 5170e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5171e5c31af7Sopenharmony_ci 5172e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.adoc[] 5173e5c31af7Sopenharmony_ci-- 5174e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 5175e5c31af7Sopenharmony_ci 5176e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_synchronization2[] 5177e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSynchronization2Features',desc='Structure describing whether the implementation supports v2 synchronization commands',type='structs',alias='VkPhysicalDeviceSynchronization2FeaturesKHR'] 5178e5c31af7Sopenharmony_ci-- 5179e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSynchronization2Features structure is defined as: 5180e5c31af7Sopenharmony_ci 5181e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2Features.adoc[] 5182e5c31af7Sopenharmony_ci 5183e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[] 5184e5c31af7Sopenharmony_cior the equivalent 5185e5c31af7Sopenharmony_ci 5186e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.adoc[] 5187e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[] 5188e5c31af7Sopenharmony_ci 5189e5c31af7Sopenharmony_ciThis structure describes the following feature: 5190e5c31af7Sopenharmony_ci 5191e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5192e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5193e5c31af7Sopenharmony_ci structure. 5194e5c31af7Sopenharmony_ci 5195e5c31af7Sopenharmony_ci// Must have preceding whitespace 5196e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 5197e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 5198e5c31af7Sopenharmony_ci// tag::VK_KHR_synchronization2-features[] 5199e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-synchronization2]] pname:synchronization2 5200e5c31af7Sopenharmony_ci indicates whether the implementation supports the new set of 5201e5c31af7Sopenharmony_ci synchronization commands introduced in `apiext:VK_KHR_synchronization2`. 5202e5c31af7Sopenharmony_ci// end::VK_KHR_synchronization2-features[] 5203e5c31af7Sopenharmony_ci 5204e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSynchronization2Features 5205e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5206e5c31af7Sopenharmony_ci 5207e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSynchronization2Features.adoc[] 5208e5c31af7Sopenharmony_ci-- 5209e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_synchronization2[] 5210e5c31af7Sopenharmony_ci 5211e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[] 5212e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',desc='Structure describing whether the dynamic vertex input state can be used',type='structs'] 5213e5c31af7Sopenharmony_ci-- 5214e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT structure is 5215e5c31af7Sopenharmony_cidefined as: 5216e5c31af7Sopenharmony_ci 5217e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.adoc[] 5218e5c31af7Sopenharmony_ci 5219e5c31af7Sopenharmony_ciThis structure describes the following feature: 5220e5c31af7Sopenharmony_ci 5221e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5222e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5223e5c31af7Sopenharmony_ci structure. 5224e5c31af7Sopenharmony_ci * [[features-vertexInputDynamicState]] pname:vertexInputDynamicState 5225e5c31af7Sopenharmony_ci indicates that the implementation supports the following dynamic states: 5226e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT 5227e5c31af7Sopenharmony_ci 5228e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT 5229e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5230e5c31af7Sopenharmony_ci 5231e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.adoc[] 5232e5c31af7Sopenharmony_ci-- 5233e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[] 5234e5c31af7Sopenharmony_ci 5235e5c31af7Sopenharmony_ciifdef::VK_EXT_primitives_generated_query[] 5236e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',desc='Structure describing support for primitives generated query',type='structs'] 5237e5c31af7Sopenharmony_ci-- 5238e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT structure is 5239e5c31af7Sopenharmony_cidefined as: 5240e5c31af7Sopenharmony_ci 5241e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.adoc[] 5242e5c31af7Sopenharmony_ci 5243e5c31af7Sopenharmony_ciThis structure describes the following features: 5244e5c31af7Sopenharmony_ci 5245e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5246e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5247e5c31af7Sopenharmony_ci structure. 5248e5c31af7Sopenharmony_ci * [[features-primitivesGeneratedQuery]] pname:primitivesGeneratedQuery 5249e5c31af7Sopenharmony_ci indicates whether the implementation supports the 5250e5c31af7Sopenharmony_ci ename:VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query type. 5251e5c31af7Sopenharmony_ci * [[features-primitivesGeneratedQueryWithRasterizerDiscard]] 5252e5c31af7Sopenharmony_ci pname:primitivesGeneratedQueryWithRasterizerDiscard indicates whether 5253e5c31af7Sopenharmony_ci the implementation supports this query when 5254e5c31af7Sopenharmony_ci <<primsrast-discard,rasterization discard>> is enabled. 5255e5c31af7Sopenharmony_ci * [[features-primitivesGeneratedQueryWithNonZeroStreams]] 5256e5c31af7Sopenharmony_ci pname:primitivesGeneratedQueryWithNonZeroStreams indicates whether the 5257e5c31af7Sopenharmony_ci implementation supports this query with a non-zero index in 5258e5c31af7Sopenharmony_ci flink:vkCmdBeginQueryIndexedEXT. 5259e5c31af7Sopenharmony_ci 5260e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT 5261e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5262e5c31af7Sopenharmony_ci 5263e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT.adoc[] 5264e5c31af7Sopenharmony_ci-- 5265e5c31af7Sopenharmony_ciendif::VK_EXT_primitives_generated_query[] 5266e5c31af7Sopenharmony_ci 5267e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 5268e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateFeaturesKHR',desc='Structure indicating support for variable rate fragment shading',type='structs'] 5269e5c31af7Sopenharmony_ci-- 5270e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR structure is 5271e5c31af7Sopenharmony_cidefined as: 5272e5c31af7Sopenharmony_ci 5273e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.adoc[] 5274e5c31af7Sopenharmony_ci 5275e5c31af7Sopenharmony_ciThis structure describes the following features: 5276e5c31af7Sopenharmony_ci 5277e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5278e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5279e5c31af7Sopenharmony_ci structure. 5280e5c31af7Sopenharmony_ci * [[features-pipelineFragmentShadingRate]] 5281e5c31af7Sopenharmony_ci pname:pipelineFragmentShadingRate indicates that the implementation 5282e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-pipeline, pipeline 5283e5c31af7Sopenharmony_ci fragment shading rate>>. 5284e5c31af7Sopenharmony_ci * [[features-primitiveFragmentShadingRate]] 5285e5c31af7Sopenharmony_ci pname:primitiveFragmentShadingRate indicates that the implementation 5286e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-primitive, primitive 5287e5c31af7Sopenharmony_ci fragment shading rate>>. 5288e5c31af7Sopenharmony_ci * [[features-attachmentFragmentShadingRate]] 5289e5c31af7Sopenharmony_ci pname:attachmentFragmentShadingRate indicates that the implementation 5290e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-attachment, attachment 5291e5c31af7Sopenharmony_ci fragment shading rate>>. 5292e5c31af7Sopenharmony_ci 5293e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateFeaturesKHR 5294e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5295e5c31af7Sopenharmony_ci 5296e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.adoc[] 5297e5c31af7Sopenharmony_ci-- 5298e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 5299e5c31af7Sopenharmony_ci 5300e5c31af7Sopenharmony_ciifdef::VK_EXT_legacy_dithering[] 5301e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLegacyDitheringFeaturesEXT',desc='Structure describing support for legacy dithering',type='structs'] 5302e5c31af7Sopenharmony_ci-- 5303e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLegacyDitheringFeaturesEXT structure is defined 5304e5c31af7Sopenharmony_cias: 5305e5c31af7Sopenharmony_ci 5306e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLegacyDitheringFeaturesEXT.adoc[] 5307e5c31af7Sopenharmony_ci 5308e5c31af7Sopenharmony_ciThis structure describes the following feature: 5309e5c31af7Sopenharmony_ci 5310e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5311e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5312e5c31af7Sopenharmony_ci structure. 5313e5c31af7Sopenharmony_ci * [[features-legacyDithering]] pname:legacyDithering indicates whether the 5314e5c31af7Sopenharmony_ci implementation supports <<interfaces-legacy-dithering, Legacy 5315e5c31af7Sopenharmony_ci Dithering>>. 5316e5c31af7Sopenharmony_ci 5317e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLegacyDitheringFeaturesEXT 5318e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5319e5c31af7Sopenharmony_ci 5320e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLegacyDitheringFeaturesEXT.adoc[] 5321e5c31af7Sopenharmony_ci-- 5322e5c31af7Sopenharmony_ciendif::VK_EXT_legacy_dithering[] 5323e5c31af7Sopenharmony_ci 5324e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[] 5325e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV',desc='Structure indicating support for fragment shading rate enums',type='structs'] 5326e5c31af7Sopenharmony_ci-- 5327e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV structure is 5328e5c31af7Sopenharmony_cidefined as: 5329e5c31af7Sopenharmony_ci 5330e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.adoc[] 5331e5c31af7Sopenharmony_ci 5332e5c31af7Sopenharmony_ciThis structure describes the following features: 5333e5c31af7Sopenharmony_ci 5334e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5335e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5336e5c31af7Sopenharmony_ci structure. 5337e5c31af7Sopenharmony_ci * [[features-fragmentShadingRateEnums]] pname:fragmentShadingRateEnums 5338e5c31af7Sopenharmony_ci indicates that the implementation supports specifying fragment shading 5339e5c31af7Sopenharmony_ci rates using the ename:VkFragmentShadingRateNV enumerated type. 5340e5c31af7Sopenharmony_ci * [[features-supersampleFragmentShadingRates]] 5341e5c31af7Sopenharmony_ci pname:supersampleFragmentShadingRates indicates that the implementation 5342e5c31af7Sopenharmony_ci supports fragment shading rate enum values indicating more than one 5343e5c31af7Sopenharmony_ci invocation per fragment. 5344e5c31af7Sopenharmony_ci * [[features-noInvocationFragmentShadingRates]] 5345e5c31af7Sopenharmony_ci pname:noInvocationFragmentShadingRates indicates that the implementation 5346e5c31af7Sopenharmony_ci supports a fragment shading rate enum value indicating that no fragment 5347e5c31af7Sopenharmony_ci shaders should be invoked when that shading rate is used. 5348e5c31af7Sopenharmony_ci 5349e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV 5350e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5351e5c31af7Sopenharmony_ci 5352e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.adoc[] 5353e5c31af7Sopenharmony_ci-- 5354e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[] 5355e5c31af7Sopenharmony_ci 5356e5c31af7Sopenharmony_ci 5357e5c31af7Sopenharmony_ciifdef::VK_NV_inherited_viewport_scissor[] 5358e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInheritedViewportScissorFeaturesNV',desc='Structure describing the viewport scissor inheritance behavior for an implementation',type='structs'] 5359e5c31af7Sopenharmony_ci-- 5360e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInheritedViewportScissorFeaturesNV structure is 5361e5c31af7Sopenharmony_cidefined as: 5362e5c31af7Sopenharmony_ci 5363e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.adoc[] 5364e5c31af7Sopenharmony_ci 5365e5c31af7Sopenharmony_ciThis structure describes the following feature: 5366e5c31af7Sopenharmony_ci 5367e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5368e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5369e5c31af7Sopenharmony_ci structure. 5370e5c31af7Sopenharmony_ci * [[features-inheritedViewportScissor2D]] pname:inheritedViewportScissor2D 5371e5c31af7Sopenharmony_ci indicates whether secondary command buffers can inherit most of the 5372e5c31af7Sopenharmony_ci dynamic state affected by 5373e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 5374e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, 5375e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, 5376e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 5377e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[] 5378e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, 5379e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT, 5380e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT, 5381e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[] 5382e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_VIEWPORT or ename:VK_DYNAMIC_STATE_SCISSOR, from 5383e5c31af7Sopenharmony_ci a primary command buffer. 5384e5c31af7Sopenharmony_ci 5385e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInheritedViewportScissorFeaturesNV 5386e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5387e5c31af7Sopenharmony_ci 5388e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.adoc[] 5389e5c31af7Sopenharmony_ci-- 5390e5c31af7Sopenharmony_ciendif::VK_NV_inherited_viewport_scissor[] 5391e5c31af7Sopenharmony_ci 5392e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_protected_access[] 5393e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineProtectedAccessFeaturesEXT',desc='Structure describing support for specifying protected access on individual pipelines',type='structs'] 5394e5c31af7Sopenharmony_ci-- 5395e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineProtectedAccessFeaturesEXT structure is 5396e5c31af7Sopenharmony_cidefined as: 5397e5c31af7Sopenharmony_ci 5398e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineProtectedAccessFeaturesEXT.adoc[] 5399e5c31af7Sopenharmony_ci 5400e5c31af7Sopenharmony_ciThis structure describes the following feature: 5401e5c31af7Sopenharmony_ci 5402e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5403e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5404e5c31af7Sopenharmony_ci structure. 5405e5c31af7Sopenharmony_ci * [[features-pipelineProtectedAccess]] pname:pipelineProtectedAccess 5406e5c31af7Sopenharmony_ci indicates whether the implementation supports specifying protected 5407e5c31af7Sopenharmony_ci access on individual pipelines. 5408e5c31af7Sopenharmony_ci 5409e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineProtectedAccessFeaturesEXT 5410e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5411e5c31af7Sopenharmony_ci 5412e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineProtectedAccessFeaturesEXT.adoc[] 5413e5c31af7Sopenharmony_ci-- 5414e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_protected_access[] 5415e5c31af7Sopenharmony_ci 5416e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_2plane_444_formats[] 5417e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',desc='Structure describing whether the implementation supports additional 2-plane 444 {YCbCr} formats',type='structs'] 5418e5c31af7Sopenharmony_ci-- 5419e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure is 5420e5c31af7Sopenharmony_cidefined as: 5421e5c31af7Sopenharmony_ci 5422e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.adoc[] 5423e5c31af7Sopenharmony_ci 5424e5c31af7Sopenharmony_ciThis structure describes the following feature: 5425e5c31af7Sopenharmony_ci 5426e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5427e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5428e5c31af7Sopenharmony_ci structure. 5429e5c31af7Sopenharmony_ci * [[features-ycbcr2plane444Formats]] pname:ycbcr2plane444Formats indicates 5430e5c31af7Sopenharmony_ci that the implementation supports the following 2-plane 444 {YCbCr} 5431e5c31af7Sopenharmony_ci formats: 5432e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM 5433e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 5434e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 5435e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM 5436e5c31af7Sopenharmony_ci 5437e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT 5438e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5439e5c31af7Sopenharmony_ci 5440e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.adoc[] 5441e5c31af7Sopenharmony_ci 5442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 5443e5c31af7Sopenharmony_ci[NOTE] 5444e5c31af7Sopenharmony_ci.Note 5445e5c31af7Sopenharmony_ci==== 5446e5c31af7Sopenharmony_ciAlthough the formats defined by the `apiext:VK_EXT_ycbcr_2plane_444_formats` 5447e5c31af7Sopenharmony_ciwere promoted to Vulkan 1.3 as optional formats, the 5448e5c31af7Sopenharmony_cislink:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure was not 5449e5c31af7Sopenharmony_cipromoted to Vulkan 1.3. 5450e5c31af7Sopenharmony_ci==== 5451e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 5452e5c31af7Sopenharmony_ci-- 5453e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_2plane_444_formats[] 5454e5c31af7Sopenharmony_ci 5455e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[] 5456e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceColorWriteEnableFeaturesEXT',desc='Structure describing whether writes to color attachments can be enabled and disabled dynamically',type='structs'] 5457e5c31af7Sopenharmony_ci-- 5458e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceColorWriteEnableFeaturesEXT structure is defined 5459e5c31af7Sopenharmony_cias: 5460e5c31af7Sopenharmony_ci 5461e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.adoc[] 5462e5c31af7Sopenharmony_ci 5463e5c31af7Sopenharmony_ciThis structure describes the following feature: 5464e5c31af7Sopenharmony_ci 5465e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5466e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5467e5c31af7Sopenharmony_ci structure. 5468e5c31af7Sopenharmony_ci * [[features-colorWriteEnable]] pname:colorWriteEnable indicates that the 5469e5c31af7Sopenharmony_ci implementation supports the dynamic state 5470e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT. 5471e5c31af7Sopenharmony_ci 5472e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceColorWriteEnableFeaturesEXT 5473e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5474e5c31af7Sopenharmony_ci 5475e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.adoc[] 5476e5c31af7Sopenharmony_ci-- 5477e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[] 5478e5c31af7Sopenharmony_ci 5479e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_properties[] 5480e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelinePropertiesFeaturesEXT',desc='Structure describing what pipeline properties are supported',type='structs'] 5481e5c31af7Sopenharmony_ci-- 5482e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelinePropertiesFeaturesEXT structure is defined 5483e5c31af7Sopenharmony_cias: 5484e5c31af7Sopenharmony_ci 5485e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelinePropertiesFeaturesEXT.adoc[] 5486e5c31af7Sopenharmony_ci 5487e5c31af7Sopenharmony_ciThis structure describes the following feature: 5488e5c31af7Sopenharmony_ci 5489e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5490e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5491e5c31af7Sopenharmony_ci structure. 5492e5c31af7Sopenharmony_ci * [[features-pipelinePropertiesIdentifier]] 5493e5c31af7Sopenharmony_ci pname:pipelinePropertiesIdentifier indicates that the implementation 5494e5c31af7Sopenharmony_ci supports querying a unique pipeline identifier. 5495e5c31af7Sopenharmony_ci 5496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelinePropertiesFeaturesEXT 5497e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5498e5c31af7Sopenharmony_ci 5499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelinePropertiesFeaturesEXT.adoc[] 5500e5c31af7Sopenharmony_ci-- 5501e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_properties[] 5502e5c31af7Sopenharmony_ci 5503e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[] 5504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProvokingVertexFeaturesEXT',desc='Structure describing the provoking vertex features that can be supported by an implementation',type='structs'] 5505e5c31af7Sopenharmony_ci-- 5506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProvokingVertexFeaturesEXT structure is defined 5507e5c31af7Sopenharmony_cias: 5508e5c31af7Sopenharmony_ci 5509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.adoc[] 5510e5c31af7Sopenharmony_ci 5511e5c31af7Sopenharmony_ciThis structure describes the following features: 5512e5c31af7Sopenharmony_ci 5513e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5514e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5515e5c31af7Sopenharmony_ci structure. 5516e5c31af7Sopenharmony_ci * [[features-provokingVertexLast]] pname:provokingVertexLast indicates 5517e5c31af7Sopenharmony_ci whether the implementation supports the 5518e5c31af7Sopenharmony_ci ename:VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 5519e5c31af7Sopenharmony_ci <<VkProvokingVertexModeEXT,provoking vertex mode>> for flat shading. 5520e5c31af7Sopenharmony_ci * [[features-transformFeedbackPreservesProvokingVertex]] 5521e5c31af7Sopenharmony_ci pname:transformFeedbackPreservesProvokingVertex indicates that the order 5522e5c31af7Sopenharmony_ci of vertices within each primitive written by transform feedback will 5523e5c31af7Sopenharmony_ci preserve the provoking vertex. 5524e5c31af7Sopenharmony_ci This does not apply to triangle fan primitives when 5525e5c31af7Sopenharmony_ci <<limits-transformFeedbackPreservesTriangleFanProvokingVertex, 5526e5c31af7Sopenharmony_ci pname:transformFeedbackPreservesTriangleFanProvokingVertex>> is 5527e5c31af7Sopenharmony_ci ename:VK_FALSE. 5528e5c31af7Sopenharmony_ci pname:transformFeedbackPreservesProvokingVertex must: be ename:VK_FALSE 5529e5c31af7Sopenharmony_ci when the `apiext:VK_EXT_transform_feedback` extension is not supported. 5530e5c31af7Sopenharmony_ci 5531e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProvokingVertexFeaturesEXT 5532e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5533e5c31af7Sopenharmony_ci 5534e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 5535e5c31af7Sopenharmony_ciWhen sname:VkPhysicalDeviceProvokingVertexFeaturesEXT is in the pname:pNext 5536e5c31af7Sopenharmony_cichain of slink:VkDeviceCreateInfo but the <<features-transformFeedback, 5537e5c31af7Sopenharmony_cipname:transformFeedback>> feature is not enabled, the value of 5538e5c31af7Sopenharmony_cipname:transformFeedbackPreservesProvokingVertex is ignored. 5539e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 5540e5c31af7Sopenharmony_ci 5541e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.adoc[] 5542e5c31af7Sopenharmony_ci-- 5543e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[] 5544e5c31af7Sopenharmony_ci 5545e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[] 5546e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorBufferFeaturesEXT',desc='Structure describing the descriptor buffer features that can be supported by an implementation',type='structs'] 5547e5c31af7Sopenharmony_ci-- 5548e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorBufferFeaturesEXT structure is defined 5549e5c31af7Sopenharmony_cias: 5550e5c31af7Sopenharmony_ci 5551e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorBufferFeaturesEXT.adoc[] 5552e5c31af7Sopenharmony_ci 5553e5c31af7Sopenharmony_ciThis structure describes the following feature: 5554e5c31af7Sopenharmony_ci 5555e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5556e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5557e5c31af7Sopenharmony_ci structure. 5558e5c31af7Sopenharmony_ci * [[features-descriptorBuffer]] pname:descriptorBuffer indicates that the 5559e5c31af7Sopenharmony_ci implementation supports putting shader-accessible descriptors directly 5560e5c31af7Sopenharmony_ci in memory. 5561e5c31af7Sopenharmony_ci * [[features-descriptorBufferCaptureReplay]] 5562e5c31af7Sopenharmony_ci pname:descriptorBufferCaptureReplay indicates that the implementation 5563e5c31af7Sopenharmony_ci supports capture and replay when using descriptor buffers. 5564e5c31af7Sopenharmony_ci If this is ename:VK_TRUE, all resources created with 5565e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, 5566e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, 5567e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, 5568e5c31af7Sopenharmony_ci ename:VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT, or 5569e5c31af7Sopenharmony_ci ename:VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT 5570e5c31af7Sopenharmony_ci must: be created before resources of the same types without those flags. 5571e5c31af7Sopenharmony_ci * [[features-descriptorBufferImageLayoutIgnored]] 5572e5c31af7Sopenharmony_ci pname:descriptorBufferImageLayoutIgnored indicates that the 5573e5c31af7Sopenharmony_ci implementation will ignore pname:imageLayout in 5574e5c31af7Sopenharmony_ci sname:VkDescriptorImageInfo when calling flink:vkGetDescriptorEXT. 5575e5c31af7Sopenharmony_ci * [[features-descriptorBufferPushDescriptors]] 5576e5c31af7Sopenharmony_ci pname:descriptorBufferPushDescriptors indicates that the implementation 5577e5c31af7Sopenharmony_ci supports using push descriptors with descriptor buffers. 5578e5c31af7Sopenharmony_ci 5579e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorBufferFeaturesEXT 5580e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5581e5c31af7Sopenharmony_ci 5582e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorBufferFeaturesEXT.adoc[] 5583e5c31af7Sopenharmony_ci-- 5584e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[] 5585e5c31af7Sopenharmony_ci 5586e5c31af7Sopenharmony_ciifdef::VK_EXT_pageable_device_local_memory[] 5587e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',desc='Structure describing whether the implementation supports pageable device-local memory',type='structs'] 5588e5c31af7Sopenharmony_ci-- 5589e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT structure is 5590e5c31af7Sopenharmony_cidefined as: 5591e5c31af7Sopenharmony_ci 5592e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.adoc[] 5593e5c31af7Sopenharmony_ci 5594e5c31af7Sopenharmony_ciThis structure describes the following feature: 5595e5c31af7Sopenharmony_ci 5596e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5597e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5598e5c31af7Sopenharmony_ci structure. 5599e5c31af7Sopenharmony_ci * [[features-pageableDeviceLocalMemory]] pname:pageableDeviceLocalMemory 5600e5c31af7Sopenharmony_ci indicates that the implementation supports pageable device-local memory 5601e5c31af7Sopenharmony_ci and may: transparently move device-local memory allocations to 5602e5c31af7Sopenharmony_ci host-local memory to better share device-local memory with other 5603e5c31af7Sopenharmony_ci applications. 5604e5c31af7Sopenharmony_ci 5605e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT 5606e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5607e5c31af7Sopenharmony_ci 5608e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.adoc[] 5609e5c31af7Sopenharmony_ci-- 5610e5c31af7Sopenharmony_ciendif::VK_EXT_pageable_device_local_memory[] 5611e5c31af7Sopenharmony_ci 5612e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[] 5613e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiDrawFeaturesEXT',desc='Structure describing whether the implementation supports multi draw functionality',type='structs'] 5614e5c31af7Sopenharmony_ci-- 5615e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure is defined as: 5616e5c31af7Sopenharmony_ci 5617e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.adoc[] 5618e5c31af7Sopenharmony_ci 5619e5c31af7Sopenharmony_ciThis structure describes the following features: 5620e5c31af7Sopenharmony_ci 5621e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5622e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5623e5c31af7Sopenharmony_ci structure. 5624e5c31af7Sopenharmony_ci * [[features-multiDraw]] pname:multiDraw indicates that the implementation 5625e5c31af7Sopenharmony_ci supports flink:vkCmdDrawMultiEXT and flink:vkCmdDrawMultiIndexedEXT. 5626e5c31af7Sopenharmony_ci 5627e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiDrawFeaturesEXT 5628e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5629e5c31af7Sopenharmony_ci 5630e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.adoc[] 5631e5c31af7Sopenharmony_ci-- 5632e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[] 5633e5c31af7Sopenharmony_ci 5634e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[] 5635e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMotionBlurFeaturesNV',desc='Structure describing the ray tracing motion blur features that can be supported by an implementation',type='structs'] 5636e5c31af7Sopenharmony_ci-- 5637e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV structure is 5638e5c31af7Sopenharmony_cidefined as: 5639e5c31af7Sopenharmony_ci 5640e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.adoc[] 5641e5c31af7Sopenharmony_ci 5642e5c31af7Sopenharmony_ciThis structure describes the following features: 5643e5c31af7Sopenharmony_ci 5644e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5645e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5646e5c31af7Sopenharmony_ci structure. 5647e5c31af7Sopenharmony_ci * [[features-rayTracingMotionBlur]] pname:rayTracingMotionBlur indicates 5648e5c31af7Sopenharmony_ci whether the implementation supports the motion blur feature. 5649e5c31af7Sopenharmony_ci * [[features-rayTracingMotionBlurPipelineTraceRaysIndirect]] 5650e5c31af7Sopenharmony_ci pname:rayTracingMotionBlurPipelineTraceRaysIndirect indicates whether 5651e5c31af7Sopenharmony_ci the implementation supports indirect ray tracing commands with the 5652e5c31af7Sopenharmony_ci motion blur feature enabled. 5653e5c31af7Sopenharmony_ci 5654e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMotionBlurFeaturesNV 5655e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5656e5c31af7Sopenharmony_ci 5657e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.adoc[] 5658e5c31af7Sopenharmony_ci-- 5659e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_motion_blur[] 5660e5c31af7Sopenharmony_ci 5661e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[] 5662e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpacityMicromapFeaturesEXT',desc='Structure describing the ray tracing opacity micromap features that can be supported by an implementation',type='structs'] 5663e5c31af7Sopenharmony_ci-- 5664e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpacityMicromapFeaturesEXT structure is defined 5665e5c31af7Sopenharmony_cias: 5666e5c31af7Sopenharmony_ci 5667e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpacityMicromapFeaturesEXT.adoc[] 5668e5c31af7Sopenharmony_ci 5669e5c31af7Sopenharmony_ciThis structure describes the following feature: 5670e5c31af7Sopenharmony_ci 5671e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5672e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5673e5c31af7Sopenharmony_ci structure. 5674e5c31af7Sopenharmony_ci * [[features-micromap]] pname:micromap indicates whether the 5675e5c31af7Sopenharmony_ci implementation supports the micromap array feature. 5676e5c31af7Sopenharmony_ci * [[features-micromapCaptureReplay]] pname:micromapCaptureReplay indicates 5677e5c31af7Sopenharmony_ci whether the implementation supports capture and replay of addresses for 5678e5c31af7Sopenharmony_ci micromap arrays. 5679e5c31af7Sopenharmony_ci * [[features-micromapHostCommands]] pname:micromapHostCommands indicates 5680e5c31af7Sopenharmony_ci whether the implementation supports host side micromap array commands. 5681e5c31af7Sopenharmony_ci 5682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpacityMicromapFeaturesEXT 5683e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5684e5c31af7Sopenharmony_ci 5685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpacityMicromapFeaturesEXT.adoc[] 5686e5c31af7Sopenharmony_ci-- 5687e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[] 5688e5c31af7Sopenharmony_ci 5689e5c31af7Sopenharmony_ciifdef::VK_NV_displacement_micromap[] 5690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDisplacementMicromapFeaturesNV',desc='Structure describing the ray tracing displacement micromap features that can be supported by an implementation',type='structs'] 5691e5c31af7Sopenharmony_ci-- 5692e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDisplacementMicromapFeaturesNV structure is 5693e5c31af7Sopenharmony_cidefined as: 5694e5c31af7Sopenharmony_ci 5695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDisplacementMicromapFeaturesNV.adoc[] 5696e5c31af7Sopenharmony_ci 5697e5c31af7Sopenharmony_ciThis structure describes the following feature: 5698e5c31af7Sopenharmony_ci 5699e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5700e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5701e5c31af7Sopenharmony_ci structure. 5702e5c31af7Sopenharmony_ci * [[features-displacementMicromap]] pname:displacementMicromap indicates 5703e5c31af7Sopenharmony_ci whether the implementation supports the displacement micromap feature. 5704e5c31af7Sopenharmony_ci 5705e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDisplacementMicromapFeaturesNV 5706e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5707e5c31af7Sopenharmony_ci 5708e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDisplacementMicromapFeaturesNV.adoc[] 5709e5c31af7Sopenharmony_ci-- 5710e5c31af7Sopenharmony_ciendif::VK_NV_displacement_micromap[] 5711e5c31af7Sopenharmony_ci 5712e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[] 5713e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassShadingFeaturesHUAWEI',desc='Structure describing whether subpass shading is enabled',type='structs'] 5714e5c31af7Sopenharmony_ci-- 5715e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassShadingFeaturesHUAWEI structure is defined 5716e5c31af7Sopenharmony_cias: 5717e5c31af7Sopenharmony_ci 5718e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.adoc[] 5719e5c31af7Sopenharmony_ci 5720e5c31af7Sopenharmony_ciThis structure describes the following feature: 5721e5c31af7Sopenharmony_ci 5722e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5723e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5724e5c31af7Sopenharmony_ci structure. 5725e5c31af7Sopenharmony_ci * [[features-subpassShading]] pname:subpassShading specifies whether 5726e5c31af7Sopenharmony_ci subpass shading is supported. 5727e5c31af7Sopenharmony_ci 5728e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassShadingFeaturesHUAWEI 5729e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5730e5c31af7Sopenharmony_ci 5731e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.adoc[] 5732e5c31af7Sopenharmony_ci-- 5733e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[] 5734e5c31af7Sopenharmony_ci 5735e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_rdma[] 5736e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryRDMAFeaturesNV',desc='Structure describing the external memory RDMA features supported by the implementation',type='structs'] 5737e5c31af7Sopenharmony_ci-- 5738e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryRDMAFeaturesNV structure is defined 5739e5c31af7Sopenharmony_cias: 5740e5c31af7Sopenharmony_ci 5741e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.adoc[] 5742e5c31af7Sopenharmony_ci 5743e5c31af7Sopenharmony_ciThis structure describes the following feature: 5744e5c31af7Sopenharmony_ci 5745e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5746e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5747e5c31af7Sopenharmony_ci structure. 5748e5c31af7Sopenharmony_ci * [[features-externalMemoryRDMA]] pname:externalMemoryRDMA indicates 5749e5c31af7Sopenharmony_ci whether the implementation has support for the 5750e5c31af7Sopenharmony_ci ename:VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV memory property and the 5751e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV external memory 5752e5c31af7Sopenharmony_ci handle type. 5753e5c31af7Sopenharmony_ci 5754e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryRDMAFeaturesNV 5755e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5756e5c31af7Sopenharmony_ci 5757e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.adoc[] 5758e5c31af7Sopenharmony_ci-- 5759e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_rdma[] 5760e5c31af7Sopenharmony_ci 5761e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[] 5762e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentIdFeaturesKHR',desc='Structure indicating support for present id',type='structs'] 5763e5c31af7Sopenharmony_ci-- 5764e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentIdFeaturesKHR structure is defined as: 5765e5c31af7Sopenharmony_ci 5766e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentIdFeaturesKHR.adoc[] 5767e5c31af7Sopenharmony_ci 5768e5c31af7Sopenharmony_ciThis structure describes the following feature: 5769e5c31af7Sopenharmony_ci 5770e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5771e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5772e5c31af7Sopenharmony_ci structure. 5773e5c31af7Sopenharmony_ci * [[features-presentId]] pname:presentId indicates that the implementation 5774e5c31af7Sopenharmony_ci supports specifying present ID values in the sname:VkPresentIdKHR 5775e5c31af7Sopenharmony_ci extension to the sname:VkPresentInfoKHR struct. 5776e5c31af7Sopenharmony_ci 5777e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentIdFeaturesKHR 5778e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5779e5c31af7Sopenharmony_ci 5780e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentIdFeaturesKHR.adoc[] 5781e5c31af7Sopenharmony_ci-- 5782e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[] 5783e5c31af7Sopenharmony_ci 5784e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[] 5785e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentWaitFeaturesKHR',desc='Structure indicating support for present wait',type='structs'] 5786e5c31af7Sopenharmony_ci-- 5787e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentWaitFeaturesKHR structure is defined as: 5788e5c31af7Sopenharmony_ci 5789e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentWaitFeaturesKHR.adoc[] 5790e5c31af7Sopenharmony_ci 5791e5c31af7Sopenharmony_ciThis structure describes the following feature: 5792e5c31af7Sopenharmony_ci 5793e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5794e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5795e5c31af7Sopenharmony_ci structure. 5796e5c31af7Sopenharmony_ci * [[features-presentWait]] pname:presentWait indicates that the 5797e5c31af7Sopenharmony_ci implementation supports fname:vkWaitForPresentKHR. 5798e5c31af7Sopenharmony_ci 5799e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentWaitFeaturesKHR 5800e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5801e5c31af7Sopenharmony_ci 5802e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentWaitFeaturesKHR.adoc[] 5803e5c31af7Sopenharmony_ci-- 5804e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[] 5805e5c31af7Sopenharmony_ci 5806e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[] 5807e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostImageCopyFeaturesEXT',desc='Structure indicating support for copies to or from images from host memory',type='structs'] 5808e5c31af7Sopenharmony_ci-- 5809e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostImageCopyFeaturesEXT structure is defined as: 5810e5c31af7Sopenharmony_ci 5811e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostImageCopyFeaturesEXT.adoc[] 5812e5c31af7Sopenharmony_ci 5813e5c31af7Sopenharmony_ciThis structure describes the following feature: 5814e5c31af7Sopenharmony_ci 5815e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5816e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5817e5c31af7Sopenharmony_ci structure. 5818e5c31af7Sopenharmony_ci * [[features-hostImageCopy]] pname:hostImageCopy indicates that the 5819e5c31af7Sopenharmony_ci implementation supports copying from host memory to images using the 5820e5c31af7Sopenharmony_ci flink:vkCopyMemoryToImageEXT command, copying from images to host memory 5821e5c31af7Sopenharmony_ci using the flink:vkCopyImageToMemoryEXT command, and copying between 5822e5c31af7Sopenharmony_ci images using the flink:vkCopyImageToImageEXT command. 5823e5c31af7Sopenharmony_ci 5824e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostImageCopyFeaturesEXT 5825e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5826e5c31af7Sopenharmony_ci 5827e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostImageCopyFeaturesEXT.adoc[] 5828e5c31af7Sopenharmony_ci-- 5829e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[] 5830e5c31af7Sopenharmony_ci 5831e5c31af7Sopenharmony_ciifdef::VK_NV_present_barrier[] 5832e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentBarrierFeaturesNV',desc='Structure indicating support for VK_NV_present_barrier extension',type='structs'] 5833e5c31af7Sopenharmony_ci-- 5834e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentBarrierFeaturesNV structure is defined as: 5835e5c31af7Sopenharmony_ci 5836e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentBarrierFeaturesNV.adoc[] 5837e5c31af7Sopenharmony_ci 5838e5c31af7Sopenharmony_ciThis structure describes the following feature: 5839e5c31af7Sopenharmony_ci 5840e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5841e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5842e5c31af7Sopenharmony_ci structure. 5843e5c31af7Sopenharmony_ci * [[features-presentBarrier]] pname:presentBarrier indicates that the 5844e5c31af7Sopenharmony_ci implementation supports the present barrier feature. 5845e5c31af7Sopenharmony_ci 5846e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentBarrierFeaturesNV 5847e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5848e5c31af7Sopenharmony_ci 5849e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentBarrierFeaturesNV.adoc[] 5850e5c31af7Sopenharmony_ci-- 5851e5c31af7Sopenharmony_ciendif::VK_NV_present_barrier[] 5852e5c31af7Sopenharmony_ci 5853e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[] 5854e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerDotProductFeatures',desc='Structure describing integer dot product features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR'] 5855e5c31af7Sopenharmony_ci-- 5856e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerDotProductFeatures structure is 5857e5c31af7Sopenharmony_cidefined as: 5858e5c31af7Sopenharmony_ci 5859e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeatures.adoc[] 5860e5c31af7Sopenharmony_ci 5861e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[] 5862e5c31af7Sopenharmony_cior the equivalent 5863e5c31af7Sopenharmony_ci 5864e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.adoc[] 5865e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[] 5866e5c31af7Sopenharmony_ci 5867e5c31af7Sopenharmony_ciThis structure describes the following feature: 5868e5c31af7Sopenharmony_ci 5869e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5870e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5871e5c31af7Sopenharmony_ci structure. 5872e5c31af7Sopenharmony_ci 5873e5c31af7Sopenharmony_ci// Must have preceding whitespace 5874e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 5875e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 5876e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_integer_dot_product-features[] 5877e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderIntegerDotProduct]] 5878e5c31af7Sopenharmony_ci pname:shaderIntegerDotProduct specifies whether shader modules can: 5879e5c31af7Sopenharmony_ci declare the code:DotProductInputAllKHR, code:DotProductInput4x8BitKHR, 5880e5c31af7Sopenharmony_ci code:DotProductInput4x8BitPackedKHR and code:DotProductKHR capabilities. 5881e5c31af7Sopenharmony_ci// end::VK_KHR_shader_integer_dot_product-features[] 5882e5c31af7Sopenharmony_ci 5883e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerDotProductFeatures 5884e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5885e5c31af7Sopenharmony_ci 5886e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerDotProductFeatures.adoc[] 5887e5c31af7Sopenharmony_ci-- 5888e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[] 5889e5c31af7Sopenharmony_ci 5890e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[] 5891e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance4Features',desc='Structure describing whether the implementation supports maintenance4 functionality',type='structs',alias='VkPhysicalDeviceMaintenance4FeaturesKHR'] 5892e5c31af7Sopenharmony_ci-- 5893e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance4Features structure is defined as: 5894e5c31af7Sopenharmony_ci 5895e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4Features.adoc[] 5896e5c31af7Sopenharmony_ci 5897e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[] 5898e5c31af7Sopenharmony_cior the equivalent 5899e5c31af7Sopenharmony_ci 5900e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.adoc[] 5901e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[] 5902e5c31af7Sopenharmony_ci 5903e5c31af7Sopenharmony_ciThis structure describes the following feature: 5904e5c31af7Sopenharmony_ci 5905e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5906e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5907e5c31af7Sopenharmony_ci structure. 5908e5c31af7Sopenharmony_ci 5909e5c31af7Sopenharmony_ci// Must have preceding whitespace 5910e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 5911e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 5912e5c31af7Sopenharmony_ci// tag::VK_KHR_maintenance4-features[] 5913e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-maintenance4]] pname:maintenance4 indicates 5914e5c31af7Sopenharmony_ci that the implementation supports the following: 5915e5c31af7Sopenharmony_ci ** The application may: destroy a slink:VkPipelineLayout object 5916e5c31af7Sopenharmony_ci immediately after using it to create another object. 5917e5c31af7Sopenharmony_ci ** code:LocalSizeId can: be used as an alternative to code:LocalSize to 5918e5c31af7Sopenharmony_ci specify the local workgroup size with specialization constants. 5919e5c31af7Sopenharmony_ci ** Images created with identical creation parameters will always have the 5920e5c31af7Sopenharmony_ci same alignment requirements. 5921e5c31af7Sopenharmony_ci ** The size memory requirement of a buffer or image is never greater than 5922e5c31af7Sopenharmony_ci that of another buffer or image created with a greater or equal size. 5923e5c31af7Sopenharmony_ci ** Push constants do not have to be initialized before they are 5924e5c31af7Sopenharmony_ci dynamically accessed. 5925e5c31af7Sopenharmony_ci ** The interface matching rules allow a larger output vector to match with 5926e5c31af7Sopenharmony_ci a smaller input vector, with additional values being discarded. 5927e5c31af7Sopenharmony_ci// end::VK_KHR_maintenance4-features[] 5928e5c31af7Sopenharmony_ci 5929e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance4Features 5930e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5931e5c31af7Sopenharmony_ci 5932e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance4Features.adoc[] 5933e5c31af7Sopenharmony_ci-- 5934e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[] 5935e5c31af7Sopenharmony_ci 5936e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 5937e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance5FeaturesKHR',desc='Structure describing whether the implementation supports maintenance5 functionality',type='structs',alias='VkPhysicalDeviceMaintenance5FeaturesKHR'] 5938e5c31af7Sopenharmony_ci-- 5939e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance5FeaturesKHR structure is defined as: 5940e5c31af7Sopenharmony_ci 5941e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance5FeaturesKHR.adoc[] 5942e5c31af7Sopenharmony_ci 5943e5c31af7Sopenharmony_ciThis structure describes the following feature: 5944e5c31af7Sopenharmony_ci 5945e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 5946e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 5947e5c31af7Sopenharmony_ci structure. 5948e5c31af7Sopenharmony_ci * [[features-maintenance5]] pname:maintenance5 indicates that the 5949e5c31af7Sopenharmony_ci implementation supports the following: 5950e5c31af7Sopenharmony_ci ** The ability to expose support for the optional format 5951e5c31af7Sopenharmony_ci ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR. 5952e5c31af7Sopenharmony_ci ** The ability to expose support for the optional format 5953e5c31af7Sopenharmony_ci ename:VK_FORMAT_A8_UNORM_KHR. 5954e5c31af7Sopenharmony_ci ** A property to indicate that multisample coverage operations are 5955e5c31af7Sopenharmony_ci performed after sample counting in EarlyFragmentTests mode. 5956e5c31af7Sopenharmony_ci ** Creating a sname:VkBufferView with a subset of the associated 5957e5c31af7Sopenharmony_ci sname:VkBuffer usage using slink:VkBufferUsageFlags2CreateInfoKHR. 5958e5c31af7Sopenharmony_ci ** A new function flink:vkCmdBindIndexBuffer2KHR, allowing a range of 5959e5c31af7Sopenharmony_ci memory to be bound as an index buffer. 5960e5c31af7Sopenharmony_ci ** flink:vkGetDeviceProcAddr will return `NULL` for function pointers of 5961e5c31af7Sopenharmony_ci core functions for versions higher than the version requested by the 5962e5c31af7Sopenharmony_ci application. 5963e5c31af7Sopenharmony_ci ** flink:vkCmdBindVertexBuffers2 supports using ename:VK_WHOLE_SIZE in the 5964e5c31af7Sopenharmony_ci pname:pSizes parameter. 5965e5c31af7Sopenharmony_ci ** If code:PointSize is not written, a default value of `1.0` is used for 5966e5c31af7Sopenharmony_ci the size of points. 5967e5c31af7Sopenharmony_ci ** slink:VkShaderModuleCreateInfo can: be added as a chained structure to 5968e5c31af7Sopenharmony_ci pipeline creation via slink:VkPipelineShaderStageCreateInfo, rather 5969e5c31af7Sopenharmony_ci than having to create a shader module. 5970e5c31af7Sopenharmony_ci ** A function flink:vkGetRenderingAreaGranularityKHR to query the optimal 5971e5c31af7Sopenharmony_ci render area for a dynamic rendering instance. 5972e5c31af7Sopenharmony_ci ** A property to indicate that depth/stencil texturing operations with 5973e5c31af7Sopenharmony_ci ename:VK_COMPONENT_SWIZZLE_ONE have defined behavior. 5974e5c31af7Sopenharmony_ci ** flink:vkGetDeviceImageSubresourceLayoutKHR allows an application to 5975e5c31af7Sopenharmony_ci perform a flink:vkGetImageSubresourceLayout query without having to 5976e5c31af7Sopenharmony_ci create an image. 5977e5c31af7Sopenharmony_ci ** ename:VK_REMAINING_ARRAY_LAYERS as the pname:layerCount member of 5978e5c31af7Sopenharmony_ci slink:VkImageSubresourceLayers. 5979e5c31af7Sopenharmony_ci ** A property to indicate whether code:PointSize controls the final 5980e5c31af7Sopenharmony_ci rasterization of polygons if <<primsrast-polygonmode, polygon mode>> is 5981e5c31af7Sopenharmony_ci ename:VK_POLYGON_MODE_POINT. 5982e5c31af7Sopenharmony_ci ** Two properties to indicate the non-strict line rasterization algorithm 5983e5c31af7Sopenharmony_ci used. 5984e5c31af7Sopenharmony_ci ** Two new flags words elink:VkPipelineCreateFlagBits2KHR and 5985e5c31af7Sopenharmony_ci elink:VkBufferUsageFlagBits2KHR. 5986e5c31af7Sopenharmony_ci ** Physical-device-level functions can: now be called with any value in 5987e5c31af7Sopenharmony_ci the valid range for a type beyond the defined enumerants, such that 5988e5c31af7Sopenharmony_ci applications can avoid checking individual features, extensions, or 5989e5c31af7Sopenharmony_ci versions before querying supported properties of a particular 5990e5c31af7Sopenharmony_ci enumerant. 5991e5c31af7Sopenharmony_ci ** Copies between images of any type are allowed, with 1D images treated 5992e5c31af7Sopenharmony_ci as 2D images with a height of `1`. 5993e5c31af7Sopenharmony_ci 5994e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance5FeaturesKHR 5995e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 5996e5c31af7Sopenharmony_ci 5997e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance5FeaturesKHR.adoc[] 5998e5c31af7Sopenharmony_ci-- 5999e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 6000e5c31af7Sopenharmony_ci 6001e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance6[] 6002e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance6FeaturesKHR',desc='Structure describing whether the implementation supports maintenance6 functionality',type='structs',alias='VkPhysicalDeviceMaintenance6FeaturesKHR'] 6003e5c31af7Sopenharmony_ci-- 6004e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance6FeaturesKHR structure is defined as: 6005e5c31af7Sopenharmony_ci 6006e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance6FeaturesKHR.adoc[] 6007e5c31af7Sopenharmony_ci 6008e5c31af7Sopenharmony_ciThis structure describes the following feature: 6009e5c31af7Sopenharmony_ci 6010e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6011e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6012e5c31af7Sopenharmony_ci structure. 6013e5c31af7Sopenharmony_ci * [[features-maintenance6]] pname:maintenance6 indicates that the 6014e5c31af7Sopenharmony_ci implementation supports the following: 6015e5c31af7Sopenharmony_ci ** dlink:VK_NULL_HANDLE can: be used when binding an index buffer 6016e5c31af7Sopenharmony_ci ** slink:VkBindMemoryStatusKHR can: be included in the pname:pNext chain 6017e5c31af7Sopenharmony_ci of the slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo 6018e5c31af7Sopenharmony_ci structures, enabling applications to retrieve elink:VkResult values for 6019e5c31af7Sopenharmony_ci individual memory binding operations. 6020e5c31af7Sopenharmony_ci ** slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:blockTexelViewCompatibleMultipleLayers 6021e5c31af7Sopenharmony_ci property to indicate that the implementation supports creating image 6022e5c31af7Sopenharmony_ci views with ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT where 6023e5c31af7Sopenharmony_ci the pname:layerCount member of pname:subresourceRange is greater than 6024e5c31af7Sopenharmony_ci `1`. 6025e5c31af7Sopenharmony_ci ** slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:maxCombinedImageSamplerDescriptorCount 6026e5c31af7Sopenharmony_ci property which indicates the maximum descriptor size required for any 6027e5c31af7Sopenharmony_ci <<formats-requiring-sampler-ycbcr-conversion, format that requires a 6028e5c31af7Sopenharmony_ci sampler {YCbCr} conversion>> supported by the implementation. 6029e5c31af7Sopenharmony_ci ** A 6030e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceMaintenance6PropertiesKHR::pname:fragmentShadingRateClampCombinerInputs 6031e5c31af7Sopenharmony_ci property which indicates whether the implementation clamps the inputs 6032e5c31af7Sopenharmony_ci to fragment shading rate combiner operations. 6033e5c31af7Sopenharmony_ci 6034e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance6FeaturesKHR 6035e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6036e5c31af7Sopenharmony_ci 6037e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance6FeaturesKHR.adoc[] 6038e5c31af7Sopenharmony_ci-- 6039e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance6[] 6040e5c31af7Sopenharmony_ci 6041e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 6042e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingFeatures',desc='Structure indicating support for dynamic render pass instances',type='structs',alias='VkPhysicalDeviceDynamicRenderingFeaturesKHR'] 6043e5c31af7Sopenharmony_ci-- 6044e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingFeatures structure is defined as: 6045e5c31af7Sopenharmony_ci 6046e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeatures.adoc[] 6047e5c31af7Sopenharmony_ci 6048e5c31af7Sopenharmony_ciifdef::VK_KHR_dynamic_rendering[] 6049e5c31af7Sopenharmony_cior the equivalent 6050e5c31af7Sopenharmony_ci 6051e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.adoc[] 6052e5c31af7Sopenharmony_ciendif::VK_KHR_dynamic_rendering[] 6053e5c31af7Sopenharmony_ci 6054e5c31af7Sopenharmony_ciThis structure describes the following feature: 6055e5c31af7Sopenharmony_ci 6056e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6057e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6058e5c31af7Sopenharmony_ci structure. 6059e5c31af7Sopenharmony_ci 6060e5c31af7Sopenharmony_ci// Must have preceding whitespace 6061e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[:anchor-prefix: extension-] 6062e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_3[:anchor-prefix:] 6063e5c31af7Sopenharmony_ci// tag::VK_KHR_dynamic_rendering-features[] 6064e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-dynamicRendering]] pname:dynamicRendering 6065e5c31af7Sopenharmony_ci specifies that the implementation supports dynamic render pass instances 6066e5c31af7Sopenharmony_ci using the flink:vkCmdBeginRendering command. 6067e5c31af7Sopenharmony_ci// end::VK_KHR_dynamic_rendering-features[] 6068e5c31af7Sopenharmony_ci 6069e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingFeatures 6070e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6071e5c31af7Sopenharmony_ci 6072e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingFeatures.adoc[] 6073e5c31af7Sopenharmony_ci-- 6074e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 6075e5c31af7Sopenharmony_ci 6076e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[] 6077e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT',desc='Structure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementation',type='structs'] 6078e5c31af7Sopenharmony_ci-- 6079e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT structure is defined 6080e5c31af7Sopenharmony_cias: 6081e5c31af7Sopenharmony_ci 6082e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.adoc[] 6083e5c31af7Sopenharmony_ci 6084e5c31af7Sopenharmony_ciThis structure describes the following feature: 6085e5c31af7Sopenharmony_ci 6086e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6087e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6088e5c31af7Sopenharmony_ci structure. 6089e5c31af7Sopenharmony_ci * [[features-formatRgba10x6WithoutYCbCrSampler]] 6090e5c31af7Sopenharmony_ci pname:formatRgba10x6WithoutYCbCrSampler indicates that 6091e5c31af7Sopenharmony_ci ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 can: be used with a 6092e5c31af7Sopenharmony_ci sname:VkImageView with pname:subresourceRange.aspectMask equal to 6093e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_COLOR_BIT without a <<samplers-YCbCr-conversion, 6094e5c31af7Sopenharmony_ci sampler {YCbCr} conversion>> enabled. 6095e5c31af7Sopenharmony_ci 6096e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT 6097e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6098e5c31af7Sopenharmony_ci 6099e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.adoc[] 6100e5c31af7Sopenharmony_ci-- 6101e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[] 6102e5c31af7Sopenharmony_ci 6103e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[] 6104e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineRobustnessFeaturesEXT',desc='Structure describing whether an implementation supports robustness requests on a per-pipeline stage granularity',type='structs'] 6105e5c31af7Sopenharmony_ci-- 6106e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineRobustnessFeaturesEXT structure is defined 6107e5c31af7Sopenharmony_cias: 6108e5c31af7Sopenharmony_ci 6109e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineRobustnessFeaturesEXT.adoc[] 6110e5c31af7Sopenharmony_ci 6111e5c31af7Sopenharmony_ciThis structure describes the following feature: 6112e5c31af7Sopenharmony_ci 6113e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6114e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6115e5c31af7Sopenharmony_ci structure. 6116e5c31af7Sopenharmony_ci * [[features-pipelineRobustness]] pname:pipelineRobustness indicates that 6117e5c31af7Sopenharmony_ci robustness can: be requested on a per-pipeline-stage granularity. 6118e5c31af7Sopenharmony_ci 6119e5c31af7Sopenharmony_ci[NOTE] 6120e5c31af7Sopenharmony_ci.Note 6121e5c31af7Sopenharmony_ci==== 6122e5c31af7Sopenharmony_ciEnabling <<features-pipelineRobustness, pname:pipelineRobustness>> may, on 6123e5c31af7Sopenharmony_cisome platforms, incur a minor performance cost when 6124e5c31af7Sopenharmony_ci<<features-robustBufferAccess, pname:robustBufferAccess>> is disabled, even 6125e5c31af7Sopenharmony_cifor pipelines which do not make use of any robustness features. 6126e5c31af7Sopenharmony_ciIf robustness is not needed, <<features-pipelineRobustness, 6127e5c31af7Sopenharmony_cipname:pipelineRobustness>> should not be enabled by an application. 6128e5c31af7Sopenharmony_ci==== 6129e5c31af7Sopenharmony_ci 6130e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineRobustnessFeaturesEXT 6131e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6132e5c31af7Sopenharmony_ci 6133e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineRobustnessFeaturesEXT.adoc[] 6134e5c31af7Sopenharmony_ci-- 6135e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[] 6136e5c31af7Sopenharmony_ci 6137e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[] 6138e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageViewMinLodFeaturesEXT',desc='Structure describing whether clamping the min LOD of a image view is supported by the implementation',type='structs'] 6139e5c31af7Sopenharmony_ci-- 6140e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageViewMinLodFeaturesEXT structure is defined 6141e5c31af7Sopenharmony_cias: 6142e5c31af7Sopenharmony_ci 6143e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.adoc[] 6144e5c31af7Sopenharmony_ci 6145e5c31af7Sopenharmony_ciThis structure describes the following feature: 6146e5c31af7Sopenharmony_ci 6147e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6148e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6149e5c31af7Sopenharmony_ci structure. 6150e5c31af7Sopenharmony_ci * [[features-minLod]] pname:minLod indicates whether the implementation 6151e5c31af7Sopenharmony_ci supports clamping the minimum LOD value during 6152e5c31af7Sopenharmony_ci <<textures-image-level-selection,Image Level(s) Selection>>, 6153e5c31af7Sopenharmony_ci <<textures-gather,Texel Gathering>> and 6154e5c31af7Sopenharmony_ci <<textures-integer-coordinate-operations,Integer Texel Coordinate 6155e5c31af7Sopenharmony_ci Operations>> with a given slink:VkImageView by 6156e5c31af7Sopenharmony_ci slink:VkImageViewMinLodCreateInfoEXT::pname:minLod. 6157e5c31af7Sopenharmony_ci 6158e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageViewMinLodFeaturesEXT 6159e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6160e5c31af7Sopenharmony_ci 6161e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.adoc[] 6162e5c31af7Sopenharmony_ci-- 6163e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[] 6164e5c31af7Sopenharmony_ci 6165e5c31af7Sopenharmony_ciifdef::VK_EXT_rasterization_order_attachment_access[] 6166e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',desc='Structure describing whether rasterization order attachment access can be supported by an implementation',type='structs'] 6167e5c31af7Sopenharmony_ci-- 6168e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT 6169e5c31af7Sopenharmony_cistructure is defined as: 6170e5c31af7Sopenharmony_ci 6171e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.adoc[] 6172e5c31af7Sopenharmony_ci 6173e5c31af7Sopenharmony_ciifdef::VK_ARM_rasterization_order_attachment_access[] 6174e5c31af7Sopenharmony_cior the equivalent 6175e5c31af7Sopenharmony_ci 6176e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.adoc[] 6177e5c31af7Sopenharmony_ciendif::VK_ARM_rasterization_order_attachment_access[] 6178e5c31af7Sopenharmony_ci 6179e5c31af7Sopenharmony_ciThis structure describes the following features: 6180e5c31af7Sopenharmony_ci 6181e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6182e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6183e5c31af7Sopenharmony_ci structure. 6184e5c31af7Sopenharmony_ci * [[features-rasterizationOrderColorAttachmentAccess]] 6185e5c31af7Sopenharmony_ci pname:rasterizationOrderColorAttachmentAccess indicates that 6186e5c31af7Sopenharmony_ci rasterization order access to color and input attachments is supported 6187e5c31af7Sopenharmony_ci by the implementation. 6188e5c31af7Sopenharmony_ci * [[features-rasterizationOrderDepthAttachmentAccess]] 6189e5c31af7Sopenharmony_ci pname:rasterizationOrderDepthAttachmentAccess indicates that 6190e5c31af7Sopenharmony_ci rasterization order access to the depth aspect of depth/stencil and 6191e5c31af7Sopenharmony_ci input attachments is supported by the implementation. 6192e5c31af7Sopenharmony_ci * [[features-rasterizationOrderStencilAttachmentAccess]] 6193e5c31af7Sopenharmony_ci pname:rasterizationOrderStencilAttachmentAccess indicates that 6194e5c31af7Sopenharmony_ci rasterization order access to the stencil aspect of depth/stencil and 6195e5c31af7Sopenharmony_ci input attachments is supported by the implementation. 6196e5c31af7Sopenharmony_ci 6197e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT 6198e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6199e5c31af7Sopenharmony_ci 6200e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.adoc[] 6201e5c31af7Sopenharmony_ci-- 6202e5c31af7Sopenharmony_ciendif::VK_EXT_rasterization_order_attachment_access[] 6203e5c31af7Sopenharmony_ci 6204e5c31af7Sopenharmony_ciifdef::VK_EXT_subpass_merge_feedback[] 6205e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT',desc='Structure describing whether subpass merging feedback can be supported by the implementation',type='structs'] 6206e5c31af7Sopenharmony_ci-- 6207e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT structure is 6208e5c31af7Sopenharmony_cidefined as: 6209e5c31af7Sopenharmony_ci 6210e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.adoc[] 6211e5c31af7Sopenharmony_ci 6212e5c31af7Sopenharmony_ciThis structure describes the following feature: 6213e5c31af7Sopenharmony_ci 6214e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6215e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6216e5c31af7Sopenharmony_ci structure. 6217e5c31af7Sopenharmony_ci * [[features-subpassMergeFeedback]] pname:subpassMergeFeedback indicates 6218e5c31af7Sopenharmony_ci whether the implementation supports feedback of subpass merging. 6219e5c31af7Sopenharmony_ci 6220e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT 6221e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6222e5c31af7Sopenharmony_ci 6223e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT.adoc[] 6224e5c31af7Sopenharmony_ci-- 6225e5c31af7Sopenharmony_ciendif::VK_EXT_subpass_merge_feedback[] 6226e5c31af7Sopenharmony_ci 6227e5c31af7Sopenharmony_ciifdef::VK_NV_linear_color_attachment[] 6228e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLinearColorAttachmentFeaturesNV',desc='Structure describing whether <<glossary-linear-color-attachment, Linear Color Attachment>> rendering is supported by the implementation',type='structs'] 6229e5c31af7Sopenharmony_ci-- 6230e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLinearColorAttachmentFeaturesNV structure is 6231e5c31af7Sopenharmony_cidefined as: 6232e5c31af7Sopenharmony_ci 6233e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.adoc[] 6234e5c31af7Sopenharmony_ci 6235e5c31af7Sopenharmony_ciThis structure describes the following feature: 6236e5c31af7Sopenharmony_ci 6237e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6238e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6239e5c31af7Sopenharmony_ci structure. 6240e5c31af7Sopenharmony_ci * [[features-linearColorAttachment]] pname:linearColorAttachment indicates 6241e5c31af7Sopenharmony_ci whether the implementation supports renderable 6242e5c31af7Sopenharmony_ci <<glossary-linear-color-attachment, Linear Color Attachment>> 6243e5c31af7Sopenharmony_ci 6244e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLinearColorAttachmentFeaturesNV 6245e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6246e5c31af7Sopenharmony_ci 6247e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLinearColorAttachmentFeaturesNV.adoc[] 6248e5c31af7Sopenharmony_ci-- 6249e5c31af7Sopenharmony_ciendif::VK_NV_linear_color_attachment[] 6250e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_layout[] 6251e5c31af7Sopenharmony_ci 6252e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',desc='Structure indicating support for a render feedback loop image layout',type='structs'] 6253e5c31af7Sopenharmony_ci-- 6254e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT structure 6255e5c31af7Sopenharmony_ciis defined as: 6256e5c31af7Sopenharmony_ci 6257e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.adoc[] 6258e5c31af7Sopenharmony_ci 6259e5c31af7Sopenharmony_ciThis structure describes the following feature: 6260e5c31af7Sopenharmony_ci 6261e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6262e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6263e5c31af7Sopenharmony_ci structure. 6264e5c31af7Sopenharmony_ci * [[features-attachmentFeedbackLoopLayout]] 6265e5c31af7Sopenharmony_ci pname:attachmentFeedbackLoopLayout indicates whether the implementation 6266e5c31af7Sopenharmony_ci supports using 6267e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout 6268e5c31af7Sopenharmony_ci for images created with 6269e5c31af7Sopenharmony_ci ename:VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT. 6270e5c31af7Sopenharmony_ci 6271e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.adoc[] 6272e5c31af7Sopenharmony_ci-- 6273e5c31af7Sopenharmony_ci 6274e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_layout[] 6275e5c31af7Sopenharmony_ci 6276e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[] 6277e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceNestedCommandBufferFeaturesEXT',desc='Structure describing whether nested command buffers are supported by the implementation',type='structs'] 6278e5c31af7Sopenharmony_ci-- 6279e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceNestedCommandBufferFeaturesEXT structure is 6280e5c31af7Sopenharmony_cidefined as: 6281e5c31af7Sopenharmony_ci 6282e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.adoc[] 6283e5c31af7Sopenharmony_ci 6284e5c31af7Sopenharmony_ciThis structure describes the following features: 6285e5c31af7Sopenharmony_ci 6286e5c31af7Sopenharmony_ci * [[features-nestedCommandBuffer]] pname:nestedCommandBuffer indicates the 6287e5c31af7Sopenharmony_ci implementation supports nested command buffers, which allows <<glossary, 6288e5c31af7Sopenharmony_ci Secondary Command Buffers>> to execute other <<glossary, Secondary 6289e5c31af7Sopenharmony_ci Command Buffers>>. 6290e5c31af7Sopenharmony_ci * [[features-nestedCommandBufferRendering]] 6291e5c31af7Sopenharmony_ci pname:nestedCommandBufferRendering indicates that it is valid to call 6292e5c31af7Sopenharmony_ci flink:vkCmdExecuteCommands inside a <<glossary, Secondary Command 6293e5c31af7Sopenharmony_ci Buffer>> recorded with 6294e5c31af7Sopenharmony_ci ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT. 6295e5c31af7Sopenharmony_ci * [[features-nestedCommandBufferSimultaneousUse]] 6296e5c31af7Sopenharmony_ci pname:nestedCommandBufferSimultaneousUse indicates that the 6297e5c31af7Sopenharmony_ci implementation supports nested command buffers with command buffers that 6298e5c31af7Sopenharmony_ci are recorded with ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT. 6299e5c31af7Sopenharmony_ci 6300e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceNestedCommandBufferFeaturesEXT 6301e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6302e5c31af7Sopenharmony_ci 6303e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceNestedCommandBufferFeaturesEXT.adoc[] 6304e5c31af7Sopenharmony_ci-- 6305e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[] 6306e5c31af7Sopenharmony_ci 6307e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[] 6308e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',desc='Structure describing support for graphics pipeline libraries',type='structs'] 6309e5c31af7Sopenharmony_ci-- 6310e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT structure is 6311e5c31af7Sopenharmony_cidefined as: 6312e5c31af7Sopenharmony_ci 6313e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.adoc[] 6314e5c31af7Sopenharmony_ci 6315e5c31af7Sopenharmony_ciThis structure describes the following feature: 6316e5c31af7Sopenharmony_ci 6317e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6318e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6319e5c31af7Sopenharmony_ci structure. 6320e5c31af7Sopenharmony_ci * [[features-graphicsPipelineLibrary]] pname:graphicsPipelineLibrary 6321e5c31af7Sopenharmony_ci indicates that the implementation supports <<pipelines-library, graphics 6322e5c31af7Sopenharmony_ci pipeline libraries>>. 6323e5c31af7Sopenharmony_ci 6324e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT 6325e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6326e5c31af7Sopenharmony_ci 6327e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT.adoc[] 6328e5c31af7Sopenharmony_ci-- 6329e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[] 6330e5c31af7Sopenharmony_ci 6331e5c31af7Sopenharmony_ciifdef::VK_EXT_multisampled_render_to_single_sampled[] 6332e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',desc='Structure describing whether multisampled rendering to single-sampled attachments is supported',type='structs'] 6333e5c31af7Sopenharmony_ci-- 6334e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT 6335e5c31af7Sopenharmony_cistructure is defined as: 6336e5c31af7Sopenharmony_ci 6337e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.adoc[] 6338e5c31af7Sopenharmony_ci 6339e5c31af7Sopenharmony_ciThis structure describes the following features: 6340e5c31af7Sopenharmony_ci 6341e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6342e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6343e5c31af7Sopenharmony_ci structure. 6344e5c31af7Sopenharmony_ci * [[features-multisampledRenderToSingleSampled]] 6345e5c31af7Sopenharmony_ci pname:multisampledRenderToSingleSampled indicates that the 6346e5c31af7Sopenharmony_ci implementation supports multisampled rendering to single-sampled render 6347e5c31af7Sopenharmony_ci pass attachments. 6348e5c31af7Sopenharmony_ci 6349e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT 6350e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6351e5c31af7Sopenharmony_ci 6352e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.adoc[] 6353e5c31af7Sopenharmony_ci-- 6354e5c31af7Sopenharmony_ciendif::VK_EXT_multisampled_render_to_single_sampled[] 6355e5c31af7Sopenharmony_ci 6356e5c31af7Sopenharmony_ciifdef::VK_EXT_image_2d_view_of_3d[] 6357e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImage2DViewOf3DFeaturesEXT',desc='Structure describing whether single-slice 2D views of 3D images can be used in image descriptors',type='structs'] 6358e5c31af7Sopenharmony_ci-- 6359e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImage2DViewOf3DFeaturesEXT structure is defined 6360e5c31af7Sopenharmony_cias: 6361e5c31af7Sopenharmony_ci 6362e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.adoc[] 6363e5c31af7Sopenharmony_ci 6364e5c31af7Sopenharmony_ciThis structure describes the following features: 6365e5c31af7Sopenharmony_ci 6366e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6367e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6368e5c31af7Sopenharmony_ci structure. 6369e5c31af7Sopenharmony_ci * [[features-image2DViewOf3D]] pname:image2DViewOf3D indicates that the 6370e5c31af7Sopenharmony_ci implementation supports using a 2D view of a 3D image in a descriptor of 6371e5c31af7Sopenharmony_ci type ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE if the image is created 6372e5c31af7Sopenharmony_ci using ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT. 6373e5c31af7Sopenharmony_ci * [[features-sampler2DViewOf3D]] pname:sampler2DViewOf3D indicates that 6374e5c31af7Sopenharmony_ci the implementation supports using a 2D view of a 3D image in a 6375e5c31af7Sopenharmony_ci descriptor of type ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or 6376e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER if the image is created 6377e5c31af7Sopenharmony_ci using ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT. 6378e5c31af7Sopenharmony_ci 6379e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImage2DViewOf3DFeaturesEXT 6380e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6381e5c31af7Sopenharmony_ci 6382e5c31af7Sopenharmony_ci 6383e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImage2DViewOf3DFeaturesEXT.adoc[] 6384e5c31af7Sopenharmony_ci-- 6385e5c31af7Sopenharmony_ciendif::VK_EXT_image_2d_view_of_3d[] 6386e5c31af7Sopenharmony_ci 6387e5c31af7Sopenharmony_ciifdef::VK_EXT_image_sliced_view_of_3d[] 6388e5c31af7Sopenharmony_ci 6389e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT',desc='Structure describing whether slice-based views of 3D images can be used in storage image descriptors',type='structs'] 6390e5c31af7Sopenharmony_ci-- 6391e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT structure is 6392e5c31af7Sopenharmony_cidefined as: 6393e5c31af7Sopenharmony_ci 6394e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.adoc[] 6395e5c31af7Sopenharmony_ci 6396e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT 6397e5c31af7Sopenharmony_cistructure describe the following features: 6398e5c31af7Sopenharmony_ci 6399e5c31af7Sopenharmony_ci * [[features-imageSlicedViewOf3D]] pname:imageSlicedViewOf3D indicates 6400e5c31af7Sopenharmony_ci that the implementation supports using a sliced view of a 3D image in a 6401e5c31af7Sopenharmony_ci descriptor of type ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE by using a 6402e5c31af7Sopenharmony_ci slink:VkImageViewSlicedCreateInfoEXT structure when creating the view. 6403e5c31af7Sopenharmony_ci 6404e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT 6405e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6406e5c31af7Sopenharmony_ci 6407e5c31af7Sopenharmony_ci 6408e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT.adoc[] 6409e5c31af7Sopenharmony_ci-- 6410e5c31af7Sopenharmony_ci 6411e5c31af7Sopenharmony_ciendif::VK_EXT_image_sliced_view_of_3d[] 6412e5c31af7Sopenharmony_ci 6413e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control[] 6414e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageCompressionControlFeaturesEXT',desc='Structure describing whether image compression controls can be supported by an implementation',type='structs'] 6415e5c31af7Sopenharmony_ci-- 6416e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageCompressionControlFeaturesEXT structure is 6417e5c31af7Sopenharmony_cidefined as: 6418e5c31af7Sopenharmony_ci 6419e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageCompressionControlFeaturesEXT.adoc[] 6420e5c31af7Sopenharmony_ci 6421e5c31af7Sopenharmony_ciThis structure describes the following feature: 6422e5c31af7Sopenharmony_ci 6423e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6424e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6425e5c31af7Sopenharmony_ci structure. 6426e5c31af7Sopenharmony_ci * [[features-imageCompressionControl]] pname:imageCompressionControl 6427e5c31af7Sopenharmony_ci indicates that the implementation supports providing controls for image 6428e5c31af7Sopenharmony_ci compression at image creation time. 6429e5c31af7Sopenharmony_ci 6430e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageCompressionControlFeaturesEXT 6431e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6432e5c31af7Sopenharmony_ci 6433e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageCompressionControlFeaturesEXT.adoc[] 6434e5c31af7Sopenharmony_ci-- 6435e5c31af7Sopenharmony_ci 6436e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control_swapchain[] 6437e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',desc='Structure describing whether per-swapchain image compression controls can be supported by an implementation',type='structs'] 6438e5c31af7Sopenharmony_ci-- 6439e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT 6440e5c31af7Sopenharmony_cistructure is defined as: 6441e5c31af7Sopenharmony_ci 6442e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.adoc[] 6443e5c31af7Sopenharmony_ci 6444e5c31af7Sopenharmony_ciThis structure describes the following feature: 6445e5c31af7Sopenharmony_ci 6446e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6447e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6448e5c31af7Sopenharmony_ci structure. 6449e5c31af7Sopenharmony_ci * [[features-imageCompressionControlSwapchain]] 6450e5c31af7Sopenharmony_ci pname:imageCompressionControlSwapchain indicates that the implementation 6451e5c31af7Sopenharmony_ci supports controlling image controls per swapchain and querying image 6452e5c31af7Sopenharmony_ci compression properties per surface. 6453e5c31af7Sopenharmony_ci 6454e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT 6455e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6456e5c31af7Sopenharmony_ci 6457e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT.adoc[] 6458e5c31af7Sopenharmony_ci-- 6459e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control_swapchain[] 6460e5c31af7Sopenharmony_ci 6461e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control[] 6462e5c31af7Sopenharmony_ci 6463e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_position_fetch[] 6464e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR',desc='Structure describing support for fetching vertex positions of hit triangles',type='structs'] 6465e5c31af7Sopenharmony_ci-- 6466e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR structure is 6467e5c31af7Sopenharmony_cidefined as: 6468e5c31af7Sopenharmony_ci 6469e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.adoc[] 6470e5c31af7Sopenharmony_ci 6471e5c31af7Sopenharmony_ciThis structure describes the following feature: 6472e5c31af7Sopenharmony_ci 6473e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6474e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6475e5c31af7Sopenharmony_ci structure. 6476e5c31af7Sopenharmony_ci * [[features-rayTracingPositionFetch]] pname:rayTracingPositionFetch 6477e5c31af7Sopenharmony_ci indicates that the implementation supports fetching the object space 6478e5c31af7Sopenharmony_ci vertex positions of a hit triangle. 6479e5c31af7Sopenharmony_ci 6480e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR 6481e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6482e5c31af7Sopenharmony_ci 6483e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR.adoc[] 6484e5c31af7Sopenharmony_ci-- 6485e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_position_fetch[] 6486e5c31af7Sopenharmony_ci 6487e5c31af7Sopenharmony_ci 6488e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_early_and_late_fragment_tests[] 6489e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',desc='Structure describing whether early and late fragment tests can be supported by an implementation',type='structs'] 6490e5c31af7Sopenharmony_ci-- 6491e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD 6492e5c31af7Sopenharmony_cistructure is defined as: 6493e5c31af7Sopenharmony_ci 6494e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.adoc[] 6495e5c31af7Sopenharmony_ci 6496e5c31af7Sopenharmony_ciThis structure describes the following feature: 6497e5c31af7Sopenharmony_ci 6498e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6499e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6500e5c31af7Sopenharmony_ci structure. 6501e5c31af7Sopenharmony_ci * [[features-shaderEarlyAndLateFragmentTests]] 6502e5c31af7Sopenharmony_ci pname:shaderEarlyAndLateFragmentTests indicates whether the 6503e5c31af7Sopenharmony_ci implementation supports the code:EarlyAndLateFragmentTestsAMD 6504e5c31af7Sopenharmony_ci {ExecutionMode}. 6505e5c31af7Sopenharmony_ci 6506e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD 6507e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6508e5c31af7Sopenharmony_ci 6509e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.adoc[] 6510e5c31af7Sopenharmony_ci-- 6511e5c31af7Sopenharmony_ciendif::VK_AMD_shader_early_and_late_fragment_tests[] 6512e5c31af7Sopenharmony_ci 6513e5c31af7Sopenharmony_ciifdef::VK_EXT_non_seamless_cube_map[] 6514e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT',desc='Structure describing features to disable seamless cube maps',type='structs'] 6515e5c31af7Sopenharmony_ci-- 6516e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT structure is defined 6517e5c31af7Sopenharmony_cias: 6518e5c31af7Sopenharmony_ci 6519e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.adoc[] 6520e5c31af7Sopenharmony_ci 6521e5c31af7Sopenharmony_ciThis structure describes the following feature: 6522e5c31af7Sopenharmony_ci 6523e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6524e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6525e5c31af7Sopenharmony_ci structure. 6526e5c31af7Sopenharmony_ci * [[features-nonSeamlessCubeMap]] pname:nonSeamlessCubeMap indicates that 6527e5c31af7Sopenharmony_ci the implementation supports 6528e5c31af7Sopenharmony_ci ename:VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT. 6529e5c31af7Sopenharmony_ci 6530e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT 6531e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6532e5c31af7Sopenharmony_ci 6533e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT.adoc[] 6534e5c31af7Sopenharmony_ci-- 6535e5c31af7Sopenharmony_ciendif::VK_EXT_non_seamless_cube_map[] 6536e5c31af7Sopenharmony_ci 6537e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_module_identifier[] 6538e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT',desc='Structure describing whether querying and providing an identifier of a shader module is supported by the implementation',type='structs'] 6539e5c31af7Sopenharmony_ci-- 6540e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT structure is 6541e5c31af7Sopenharmony_cidefined as: 6542e5c31af7Sopenharmony_ci 6543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.adoc[] 6544e5c31af7Sopenharmony_ci 6545e5c31af7Sopenharmony_ciThis structure describes the following feature: 6546e5c31af7Sopenharmony_ci 6547e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6548e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6549e5c31af7Sopenharmony_ci structure. 6550e5c31af7Sopenharmony_ci * [[features-shaderModuleIdentifier]] pname:shaderModuleIdentifier 6551e5c31af7Sopenharmony_ci indicates whether the implementation supports querying an identifier of 6552e5c31af7Sopenharmony_ci a slink:VkShaderModule or slink:VkShaderModuleCreateInfo structure, and 6553e5c31af7Sopenharmony_ci creating pipelines from identifiers only. 6554e5c31af7Sopenharmony_ci 6555e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT 6556e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6557e5c31af7Sopenharmony_ci 6558e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT.adoc[] 6559e5c31af7Sopenharmony_ci-- 6560e5c31af7Sopenharmony_ciendif::VK_EXT_shader_module_identifier[] 6561e5c31af7Sopenharmony_ci 6562e5c31af7Sopenharmony_ciifdef::VK_QCOM_tile_properties[] 6563e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTilePropertiesFeaturesQCOM',desc='Structure describing tile properties features that can be supported by an implementation',type='structs'] 6564e5c31af7Sopenharmony_ci-- 6565e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTilePropertiesFeaturesQCOM structure is defined 6566e5c31af7Sopenharmony_cias: 6567e5c31af7Sopenharmony_ci 6568e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTilePropertiesFeaturesQCOM.adoc[] 6569e5c31af7Sopenharmony_ci 6570e5c31af7Sopenharmony_ciThis structure describes the following features: 6571e5c31af7Sopenharmony_ci 6572e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6573e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6574e5c31af7Sopenharmony_ci structure. 6575e5c31af7Sopenharmony_ci * [[features-tileProperties]] pname:tileProperties indicates that the 6576e5c31af7Sopenharmony_ci implementation supports queries for returning tile properties. 6577e5c31af7Sopenharmony_ci 6578e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTilePropertiesFeaturesQCOM 6579e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6580e5c31af7Sopenharmony_ci 6581e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTilePropertiesFeaturesQCOM.adoc[] 6582e5c31af7Sopenharmony_ci-- 6583e5c31af7Sopenharmony_ciendif::VK_QCOM_tile_properties[] 6584e5c31af7Sopenharmony_ci 6585e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[] 6586e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageProcessingFeaturesQCOM',desc='Structure describing image processing features that can be supported by an implementation',type='structs'] 6587e5c31af7Sopenharmony_ci-- 6588e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageProcessingFeaturesQCOM structure is defined 6589e5c31af7Sopenharmony_cias: 6590e5c31af7Sopenharmony_ci 6591e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageProcessingFeaturesQCOM.adoc[] 6592e5c31af7Sopenharmony_ci 6593e5c31af7Sopenharmony_ciThis structure describes the following features: 6594e5c31af7Sopenharmony_ci 6595e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6596e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6597e5c31af7Sopenharmony_ci structure. 6598e5c31af7Sopenharmony_ci * [[features-textureSampleWeighted]] pname:textureSampleWeighted indicates 6599e5c31af7Sopenharmony_ci that the implementation supports shader modules that declare the 6600e5c31af7Sopenharmony_ci pname:TextureSampleWeightedQCOM capability. 6601e5c31af7Sopenharmony_ci * [[features-textureBoxFilter]] pname:textureBoxFilter indicates that the 6602e5c31af7Sopenharmony_ci implementation supports shader modules that declare the 6603e5c31af7Sopenharmony_ci pname:TextureBoxFilterQCOM capability. 6604e5c31af7Sopenharmony_ci * [[features-textureBlockMatch]] pname:textureBlockMatch indicates that 6605e5c31af7Sopenharmony_ci the implementation supports shader modules that declare the 6606e5c31af7Sopenharmony_ci pname:TextureBlockMatchQCOM capability. 6607e5c31af7Sopenharmony_ci 6608e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageProcessingFeaturesQCOM 6609e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6610e5c31af7Sopenharmony_ci 6611e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageProcessingFeaturesQCOM.adoc[] 6612e5c31af7Sopenharmony_ci-- 6613e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[] 6614e5c31af7Sopenharmony_ci 6615e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing2[] 6616e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageProcessing2FeaturesQCOM',desc='Structure describing image processing features that can be supported by an implementation',type='structs'] 6617e5c31af7Sopenharmony_ci-- 6618e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageProcessing2FeaturesQCOM structure is defined 6619e5c31af7Sopenharmony_cias: 6620e5c31af7Sopenharmony_ci 6621e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageProcessing2FeaturesQCOM.adoc[] 6622e5c31af7Sopenharmony_ci 6623e5c31af7Sopenharmony_ciThis structure describes the following features: 6624e5c31af7Sopenharmony_ci 6625e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6626e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6627e5c31af7Sopenharmony_ci structure. 6628e5c31af7Sopenharmony_ci * [[features-textureBlockMatch2]] pname:textureBlockMatch2 indicates that 6629e5c31af7Sopenharmony_ci the implementation supports shader modules that declare the 6630e5c31af7Sopenharmony_ci code:TextureBlockMatch2QCOM capability. 6631e5c31af7Sopenharmony_ci 6632e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageProcessing2FeaturesQCOM 6633e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6634e5c31af7Sopenharmony_ci 6635e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageProcessing2FeaturesQCOM.adoc[] 6636e5c31af7Sopenharmony_ci-- 6637e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing2[] 6638e5c31af7Sopenharmony_ci 6639e5c31af7Sopenharmony_ci 6640e5c31af7Sopenharmony_ci 6641e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clamp_zero_one[] 6642e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClampZeroOneFeaturesEXT',desc='Structure describing feature to control zero to one depth clamping',type='structs'] 6643e5c31af7Sopenharmony_ci-- 6644e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClampZeroOneFeaturesEXT structure is defined 6645e5c31af7Sopenharmony_cias: 6646e5c31af7Sopenharmony_ci 6647e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT.adoc[] 6648e5c31af7Sopenharmony_ci 6649e5c31af7Sopenharmony_ciThis structure describes the following feature: 6650e5c31af7Sopenharmony_ci 6651e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6652e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6653e5c31af7Sopenharmony_ci structure. 6654e5c31af7Sopenharmony_ci 6655e5c31af7Sopenharmony_ci * [[features-depthClampZeroOne]] pname:depthClampZeroOne indicates that 6656e5c31af7Sopenharmony_ci the implementation supports clamping the depth to a range of `0` to `1`. 6657e5c31af7Sopenharmony_ci 6658e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClampZeroOneFeaturesEXT 6659e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6660e5c31af7Sopenharmony_ci 6661e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClampZeroOneFeaturesEXT.adoc[] 6662e5c31af7Sopenharmony_ci-- 6663e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clamp_zero_one[] 6664e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_tile_image[] 6665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTileImageFeaturesEXT',desc='Structure describing tile image features supported by the implementation',type='structs'] 6666e5c31af7Sopenharmony_ci-- 6667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTileImageFeaturesEXT structure is defined 6668e5c31af7Sopenharmony_cias: 6669e5c31af7Sopenharmony_ci 6670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTileImageFeaturesEXT.adoc[] 6671e5c31af7Sopenharmony_ci 6672e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderTileImageFeaturesEXT 6673e5c31af7Sopenharmony_cistructure describe the following features: 6674e5c31af7Sopenharmony_ci 6675e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6676e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6677e5c31af7Sopenharmony_ci structure. 6678e5c31af7Sopenharmony_ci * [[features-shaderTileImageColorReadAccess]] 6679e5c31af7Sopenharmony_ci pname:shaderTileImageColorReadAccess indicates that the implementation 6680e5c31af7Sopenharmony_ci supports the code:TileImageColorReadAccessEXT SPIR-V capability. 6681e5c31af7Sopenharmony_ci * [[features-shaderTileImageDepthReadAccess]] 6682e5c31af7Sopenharmony_ci pname:shaderTileImageDepthReadAccess indicates that the implementation 6683e5c31af7Sopenharmony_ci supports the code:TileImageDepthReadAccessEXT SPIR-V capability. 6684e5c31af7Sopenharmony_ci * [[features-shaderTileImageStencilReadAccess]] 6685e5c31af7Sopenharmony_ci pname:shaderTileImageStencilReadAccess indicates that the implementation 6686e5c31af7Sopenharmony_ci supports the code:TileImageStencilReadAccessEXT SPIR-V capability. 6687e5c31af7Sopenharmony_ci 6688e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTileImageFeaturesEXT 6689e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6690e5c31af7Sopenharmony_ci 6691e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTileImageFeaturesEXT.adoc[] 6692e5c31af7Sopenharmony_ci-- 6693e5c31af7Sopenharmony_ciendif::VK_EXT_shader_tile_image[] 6694e5c31af7Sopenharmony_ci 6695e5c31af7Sopenharmony_ci 6696e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_bias_control[] 6697e5c31af7Sopenharmony_ci 6698e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthBiasControlFeaturesEXT',desc='Structure indicating support for depth bias scaling and representation control',type='structs'] 6699e5c31af7Sopenharmony_ci-- 6700e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthBiasControlFeaturesEXT structure is defined 6701e5c31af7Sopenharmony_cias: 6702e5c31af7Sopenharmony_ci 6703e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthBiasControlFeaturesEXT.adoc[] 6704e5c31af7Sopenharmony_ci 6705e5c31af7Sopenharmony_ciThis structure describes the following feature: 6706e5c31af7Sopenharmony_ci 6707e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6708e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6709e5c31af7Sopenharmony_ci structure. 6710e5c31af7Sopenharmony_ci * [[features-depthBiasControl]] pname:depthBiasControl indicates whether 6711e5c31af7Sopenharmony_ci the implementation supports the fname:vkCmdSetDepthBias2EXT command and 6712e5c31af7Sopenharmony_ci the sname:VkDepthBiasRepresentationInfoEXT structure. 6713e5c31af7Sopenharmony_ci * [[features-leastRepresentableValueForceUnormRepresentation]] 6714e5c31af7Sopenharmony_ci pname:leastRepresentableValueForceUnormRepresentation indicates whether 6715e5c31af7Sopenharmony_ci the implementation supports using the 6716e5c31af7Sopenharmony_ci ename:VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT 6717e5c31af7Sopenharmony_ci depth bias representation. 6718e5c31af7Sopenharmony_ci * [[features-floatRepresentation]] pname:floatRepresentation indicates 6719e5c31af7Sopenharmony_ci whether the implementation supports using the 6720e5c31af7Sopenharmony_ci ename:VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT depth bias representation. 6721e5c31af7Sopenharmony_ci * [[features-depthBiasExact]] pname:depthBiasExact indicates whether the 6722e5c31af7Sopenharmony_ci implementation supports forcing depth bias to not be scaled to ensure a 6723e5c31af7Sopenharmony_ci minimum resolvable difference using 6724e5c31af7Sopenharmony_ci sname:VkDepthBiasRepresentationInfoEXT::pname:depthBiasExact. 6725e5c31af7Sopenharmony_ci 6726e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthBiasControlFeaturesEXT.adoc[] 6727e5c31af7Sopenharmony_ci-- 6728e5c31af7Sopenharmony_ci 6729e5c31af7Sopenharmony_ciendif::VK_EXT_depth_bias_control[] 6730e5c31af7Sopenharmony_ci 6731e5c31af7Sopenharmony_ciifdef::VK_EXT_device_address_binding_report[] 6732e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAddressBindingReportFeaturesEXT',desc='Structure describing the virtual allocation reporting feature supported by an implementation',type='structs'] 6733e5c31af7Sopenharmony_ci-- 6734e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAddressBindingReportFeaturesEXT structure is 6735e5c31af7Sopenharmony_cidefined as: 6736e5c31af7Sopenharmony_ci 6737e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAddressBindingReportFeaturesEXT.adoc[] 6738e5c31af7Sopenharmony_ci 6739e5c31af7Sopenharmony_ciThis structure describes the following feature: 6740e5c31af7Sopenharmony_ci 6741e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6742e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6743e5c31af7Sopenharmony_ci structure. 6744e5c31af7Sopenharmony_ci * [[features-reportAddressBinding]] pname:reportAddressBinding indicates 6745e5c31af7Sopenharmony_ci whether this implementation supports reporting the binding of GPU 6746e5c31af7Sopenharmony_ci virtual address ranges to Vulkan objects. 6747e5c31af7Sopenharmony_ci 6748e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAddressBindingReportFeaturesEXT 6749e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6750e5c31af7Sopenharmony_ci 6751e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAddressBindingReportFeaturesEXT.adoc[] 6752e5c31af7Sopenharmony_ci-- 6753e5c31af7Sopenharmony_ciendif::VK_EXT_device_address_binding_report[] 6754e5c31af7Sopenharmony_ci 6755e5c31af7Sopenharmony_ciifdef::VK_NV_optical_flow[] 6756e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceOpticalFlowFeaturesNV',desc='Structure describing the optical flow features supported by the implementation',type='structs'] 6757e5c31af7Sopenharmony_ci-- 6758e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceOpticalFlowFeaturesNV structure is defined as: 6759e5c31af7Sopenharmony_ci 6760e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceOpticalFlowFeaturesNV.adoc[] 6761e5c31af7Sopenharmony_ci 6762e5c31af7Sopenharmony_ciThis structure describes the following feature: 6763e5c31af7Sopenharmony_ci 6764e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6765e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6766e5c31af7Sopenharmony_ci structure. 6767e5c31af7Sopenharmony_ci * [[features-opticalFlow]] pname:opticalFlow indicates whether the 6768e5c31af7Sopenharmony_ci implementation supports optical flow. 6769e5c31af7Sopenharmony_ci 6770e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceOpticalFlowFeaturesNV 6771e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6772e5c31af7Sopenharmony_ci 6773e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceOpticalFlowFeaturesNV.adoc[] 6774e5c31af7Sopenharmony_ci-- 6775e5c31af7Sopenharmony_ciendif::VK_NV_optical_flow[] 6776e5c31af7Sopenharmony_ci 6777e5c31af7Sopenharmony_ciifdef::VK_EXT_device_fault[] 6778e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFaultFeaturesEXT',desc='Structure indicating support for device fault reporting',type='structs'] 6779e5c31af7Sopenharmony_ci-- 6780e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFaultFeaturesEXT structure is defined as: 6781e5c31af7Sopenharmony_ci 6782e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFaultFeaturesEXT.adoc[] 6783e5c31af7Sopenharmony_ci 6784e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceFaultFeaturesEXT structure describe 6785e5c31af7Sopenharmony_cithe following features: 6786e5c31af7Sopenharmony_ci 6787e5c31af7Sopenharmony_ci * [[features-deviceFault]] pname:deviceFault indicates that the 6788e5c31af7Sopenharmony_ci implementation supports the reporting of device fault information. 6789e5c31af7Sopenharmony_ci * [[features-deviceFaultVendorBinary]] pname:deviceFaultVendorBinary 6790e5c31af7Sopenharmony_ci indicates that the implementation supports the generation of 6791e5c31af7Sopenharmony_ci vendor-specific binary crash dumps. 6792e5c31af7Sopenharmony_ci These may provide additional information when imported into 6793e5c31af7Sopenharmony_ci vendor-specific external tools. 6794e5c31af7Sopenharmony_ci 6795e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFaultFeaturesEXT 6796e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6797e5c31af7Sopenharmony_ci 6798e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFaultFeaturesEXT.adoc[] 6799e5c31af7Sopenharmony_ci-- 6800e5c31af7Sopenharmony_ciendif::VK_EXT_device_fault[] 6801e5c31af7Sopenharmony_ci 6802e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_library_group_handles[] 6803e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT',desc='Structure describing whether querying shader group handles from a pipeline library is supported by the implementation',type='structs'] 6804e5c31af7Sopenharmony_ci-- 6805e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT structure 6806e5c31af7Sopenharmony_ciis defined as: 6807e5c31af7Sopenharmony_ci 6808e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.adoc[] 6809e5c31af7Sopenharmony_ci 6810e5c31af7Sopenharmony_ciThis structure describes the following features: 6811e5c31af7Sopenharmony_ci 6812e5c31af7Sopenharmony_ci * [[features-pipelineLibraryGroupHandles]] 6813e5c31af7Sopenharmony_ci pname:pipelineLibraryGroupHandles indicates whether the implementation 6814e5c31af7Sopenharmony_ci supports querying group handles directly from a ray tracing pipeline 6815e5c31af7Sopenharmony_ci library, and guarantees bitwise identical group handles for such 6816e5c31af7Sopenharmony_ci libraries when linked into other pipelines. 6817e5c31af7Sopenharmony_ci 6818e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT 6819e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6820e5c31af7Sopenharmony_ci 6821e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT.adoc[] 6822e5c31af7Sopenharmony_ci-- 6823e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_library_group_handles[] 6824e5c31af7Sopenharmony_ci 6825e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_object[] 6826e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderObjectFeaturesEXT',desc='Structure describing whether shader objects can be supported by an implementation',type='structs'] 6827e5c31af7Sopenharmony_ci-- 6828e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderObjectFeaturesEXT structure is defined as: 6829e5c31af7Sopenharmony_ci 6830e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderObjectFeaturesEXT.adoc[] 6831e5c31af7Sopenharmony_ci 6832e5c31af7Sopenharmony_ciThis structure describes the following feature: 6833e5c31af7Sopenharmony_ci 6834e5c31af7Sopenharmony_ci * [[features-shaderObject]] pname:shaderObject indicates whether the 6835e5c31af7Sopenharmony_ci implementation supports <<shaders-objects, shader objects>>. 6836e5c31af7Sopenharmony_ci 6837e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderObjectFeaturesEXT 6838e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6839e5c31af7Sopenharmony_ci 6840e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderObjectFeaturesEXT.adoc[] 6841e5c31af7Sopenharmony_ci-- 6842e5c31af7Sopenharmony_ciendif::VK_EXT_shader_object[] 6843e5c31af7Sopenharmony_ci 6844e5c31af7Sopenharmony_ciifdef::VK_ARM_shader_core_builtins[] 6845e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM',desc='Structure describing the shader core builtins features that can be supported by an implementation',type='structs'] 6846e5c31af7Sopenharmony_ci-- 6847e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM structure is defined 6848e5c31af7Sopenharmony_cias: 6849e5c31af7Sopenharmony_ci 6850e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.adoc[] 6851e5c31af7Sopenharmony_ci 6852e5c31af7Sopenharmony_ciThis structure describes the following feature: 6853e5c31af7Sopenharmony_ci 6854e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6855e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6856e5c31af7Sopenharmony_ci structure. 6857e5c31af7Sopenharmony_ci * [[features-shaderCoreBuiltins]] pname:shaderCoreBuiltins indicates 6858e5c31af7Sopenharmony_ci whether the implementation supports the SPIR-V code:CoreBuiltinsARM 6859e5c31af7Sopenharmony_ci capability. 6860e5c31af7Sopenharmony_ci 6861e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM 6862e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6863e5c31af7Sopenharmony_ci 6864e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM.adoc[] 6865e5c31af7Sopenharmony_ci-- 6866e5c31af7Sopenharmony_ciendif::VK_ARM_shader_core_builtins[] 6867e5c31af7Sopenharmony_ci 6868e5c31af7Sopenharmony_ciifdef::VK_EXT_frame_boundary[] 6869e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFrameBoundaryFeaturesEXT',desc='Structure describing the frame boundary features that can be supported by an implementation',type='structs'] 6870e5c31af7Sopenharmony_ci-- 6871e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFrameBoundaryFeaturesEXT structure is defined as: 6872e5c31af7Sopenharmony_ci 6873e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFrameBoundaryFeaturesEXT.adoc[] 6874e5c31af7Sopenharmony_ci 6875e5c31af7Sopenharmony_ciThis structure describes the following feature: 6876e5c31af7Sopenharmony_ci 6877e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6878e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6879e5c31af7Sopenharmony_ci structure. 6880e5c31af7Sopenharmony_ci * [[features-frameBoundary]] pname:frameBoundary indicates whether the 6881e5c31af7Sopenharmony_ci implementation supports frame boundary information. 6882e5c31af7Sopenharmony_ci 6883e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFrameBoundaryFeaturesEXT 6884e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6885e5c31af7Sopenharmony_ci 6886e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFrameBoundaryFeaturesEXT.adoc[] 6887e5c31af7Sopenharmony_ci-- 6888e5c31af7Sopenharmony_ciendif::VK_EXT_frame_boundary[] 6889e5c31af7Sopenharmony_ci 6890e5c31af7Sopenharmony_ciifdef::VK_EXT_swapchain_maintenance1[] 6891e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT',desc='Structure describing whether implementation supports swapchain maintenance1 functionality',type='structs'] 6892e5c31af7Sopenharmony_ci-- 6893e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT structure is 6894e5c31af7Sopenharmony_cidefined as: 6895e5c31af7Sopenharmony_ci 6896e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.adoc[] 6897e5c31af7Sopenharmony_ci 6898e5c31af7Sopenharmony_ciThis structure describes the following feature: 6899e5c31af7Sopenharmony_ci 6900e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6901e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6902e5c31af7Sopenharmony_ci structure. 6903e5c31af7Sopenharmony_ci * [[features-swapchainMaintenance1]] pname:swapchainMaintenance1 indicates 6904e5c31af7Sopenharmony_ci that the implementation supports the following: 6905e5c31af7Sopenharmony_ci ** slink:VkSwapchainPresentFenceInfoEXT, specifying a fence that is 6906e5c31af7Sopenharmony_ci signaled when the resources associated with a present operation can: be 6907e5c31af7Sopenharmony_ci safely destroyed. 6908e5c31af7Sopenharmony_ci ** slink:VkSwapchainPresentModesCreateInfoEXT and 6909e5c31af7Sopenharmony_ci slink:VkSwapchainPresentModeInfoEXT, allowing the swapchain to switch 6910e5c31af7Sopenharmony_ci present modes without a need for recreation. 6911e5c31af7Sopenharmony_ci ** slink:VkSwapchainPresentScalingCreateInfoEXT, specifying the scaling 6912e5c31af7Sopenharmony_ci behavior of the swapchain in presence of window resizing. 6913e5c31af7Sopenharmony_ci ** The ename:VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT flag, 6914e5c31af7Sopenharmony_ci allowing the implementation to defer the allocation of swapchain image 6915e5c31af7Sopenharmony_ci memory until first acquisition. 6916e5c31af7Sopenharmony_ci ** flink:vkReleaseSwapchainImagesEXT, allowing acquired swapchain images 6917e5c31af7Sopenharmony_ci to be released without presenting them. 6918e5c31af7Sopenharmony_ci 6919e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT 6920e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6921e5c31af7Sopenharmony_ci 6922e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT.adoc[] 6923e5c31af7Sopenharmony_ci-- 6924e5c31af7Sopenharmony_ciendif::VK_EXT_swapchain_maintenance1[] 6925e5c31af7Sopenharmony_ci 6926e5c31af7Sopenharmony_ciifdef::VK_EXT_dynamic_rendering_unused_attachments[] 6927e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT',desc='Structure describing the dynamic rendering unused attachment features that can be supported by an implementation',type='structs'] 6928e5c31af7Sopenharmony_ci-- 6929e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT 6930e5c31af7Sopenharmony_cistructure is defined as: 6931e5c31af7Sopenharmony_ci 6932e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.adoc[] 6933e5c31af7Sopenharmony_ci 6934e5c31af7Sopenharmony_ciThis structure describes the following feature: 6935e5c31af7Sopenharmony_ci 6936e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6937e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6938e5c31af7Sopenharmony_ci structure. 6939e5c31af7Sopenharmony_ci * [[features-dynamicRenderingUnusedAttachments]] 6940e5c31af7Sopenharmony_ci pname:dynamicRenderingUnusedAttachments indicates that the 6941e5c31af7Sopenharmony_ci implementation supports binding graphics pipelines within a render pass 6942e5c31af7Sopenharmony_ci instance where any pipeline 6943e5c31af7Sopenharmony_ci slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats 6944e5c31af7Sopenharmony_ci element with a format other than ename:VK_FORMAT_UNDEFINED is allowed 6945e5c31af7Sopenharmony_ci with a corresponding slink:VkRenderingInfo::pname:pColorAttachments 6946e5c31af7Sopenharmony_ci element with a pname:imageView equal to dlink:VK_NULL_HANDLE, or any 6947e5c31af7Sopenharmony_ci pipeline 6948e5c31af7Sopenharmony_ci slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats 6949e5c31af7Sopenharmony_ci element with a ename:VK_FORMAT_UNDEFINED format is allowed with a 6950e5c31af7Sopenharmony_ci corresponding slink:VkRenderingInfo::pname:pColorAttachments element 6951e5c31af7Sopenharmony_ci with a non-dlink:VK_NULL_HANDLE pname:imageView. 6952e5c31af7Sopenharmony_ci Also a slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat 6953e5c31af7Sopenharmony_ci other than ename:VK_FORMAT_UNDEFINED is allowed with a 6954e5c31af7Sopenharmony_ci dlink:VK_NULL_HANDLE slink:VkRenderingInfo::pname:pDepthAttachment, or a 6955e5c31af7Sopenharmony_ci slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat of 6956e5c31af7Sopenharmony_ci ename:VK_FORMAT_UNDEFINED is allowed with a non-dlink:VK_NULL_HANDLE 6957e5c31af7Sopenharmony_ci slink:VkRenderingInfo::pname:pDepthAttachment. 6958e5c31af7Sopenharmony_ci Also a 6959e5c31af7Sopenharmony_ci slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat other 6960e5c31af7Sopenharmony_ci than ename:VK_FORMAT_UNDEFINED is allowed with a dlink:VK_NULL_HANDLE 6961e5c31af7Sopenharmony_ci slink:VkRenderingInfo::pname:pStencilAttachment, or a 6962e5c31af7Sopenharmony_ci slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat of 6963e5c31af7Sopenharmony_ci ename:VK_FORMAT_UNDEFINED is allowed with a non-dlink:VK_NULL_HANDLE 6964e5c31af7Sopenharmony_ci slink:VkRenderingInfo::pname:pStencilAttachment. 6965e5c31af7Sopenharmony_ci Any writes to a slink:VkRenderingInfo::pname:pColorAttachments, 6966e5c31af7Sopenharmony_ci slink:VkRenderingInfo::pname:pDepthAttachment, or 6967e5c31af7Sopenharmony_ci slink:VkRenderingInfo::pname:pStencilAttachment with 6968e5c31af7Sopenharmony_ci dlink:VK_NULL_HANDLE are discarded. 6969e5c31af7Sopenharmony_ci 6970e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT 6971e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6972e5c31af7Sopenharmony_ci 6973e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.adoc[] 6974e5c31af7Sopenharmony_ci 6975e5c31af7Sopenharmony_ci-- 6976e5c31af7Sopenharmony_ciendif::VK_EXT_dynamic_rendering_unused_attachments[] 6977e5c31af7Sopenharmony_ci 6978e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_invocation_reorder[] 6979e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV',desc='Structure describing feature to control ray tracing invocation reordering',type='structs'] 6980e5c31af7Sopenharmony_ci-- 6981e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV structure is 6982e5c31af7Sopenharmony_cidefined as: 6983e5c31af7Sopenharmony_ci 6984e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.adoc[] 6985e5c31af7Sopenharmony_ci 6986e5c31af7Sopenharmony_ciThis structure describes the following feature: 6987e5c31af7Sopenharmony_ci 6988e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 6989e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 6990e5c31af7Sopenharmony_ci structure. 6991e5c31af7Sopenharmony_ci * [[features-rayTracingInvocationReorder]] 6992e5c31af7Sopenharmony_ci pname:rayTracingInvocationReorder indicates that the implementation 6993e5c31af7Sopenharmony_ci supports `SPV_NV_shader_invocation_reorder`. 6994e5c31af7Sopenharmony_ci 6995e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV 6996e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 6997e5c31af7Sopenharmony_ci 6998e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV.adoc[] 6999e5c31af7Sopenharmony_ci 7000e5c31af7Sopenharmony_ci-- 7001e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_invocation_reorder[] 7002e5c31af7Sopenharmony_ci 7003e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[] 7004e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV',desc='Structure describing feature to use extended sparse address space',type='structs'] 7005e5c31af7Sopenharmony_ci-- 7006e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV structure is 7007e5c31af7Sopenharmony_cidefined as: 7008e5c31af7Sopenharmony_ci 7009e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.adoc[] 7010e5c31af7Sopenharmony_ci 7011e5c31af7Sopenharmony_ciThis structure describes the following feature: 7012e5c31af7Sopenharmony_ci 7013e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7014e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7015e5c31af7Sopenharmony_ci structure. 7016e5c31af7Sopenharmony_ci * [[features-extendedSparseAddressSpace]] pname:extendedSparseAddressSpace 7017e5c31af7Sopenharmony_ci indicates that the implementation supports allowing certain usages of 7018e5c31af7Sopenharmony_ci sparse memory resources to exceed 7019e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceLimits::pname:sparseAddressSpaceSize. 7020e5c31af7Sopenharmony_ci See slink:VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV. 7021e5c31af7Sopenharmony_ci 7022e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV 7023e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7024e5c31af7Sopenharmony_ci 7025e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV.adoc[] 7026e5c31af7Sopenharmony_ci 7027e5c31af7Sopenharmony_ci-- 7028e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[] 7029e5c31af7Sopenharmony_ci 7030e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_viewports[] 7031e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM',desc='Structure describing multiview per view viewports features that can be supported by an implementation',type='structs'] 7032e5c31af7Sopenharmony_ci-- 7033e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM structure is 7034e5c31af7Sopenharmony_cidefined as: 7035e5c31af7Sopenharmony_ci 7036e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.adoc[] 7037e5c31af7Sopenharmony_ci 7038e5c31af7Sopenharmony_ciThis structure describes the following features: 7039e5c31af7Sopenharmony_ci 7040e5c31af7Sopenharmony_ci * [[features-multiview-per-view-viewports]] 7041e5c31af7Sopenharmony_ci pname:multiviewPerViewViewports indicates that the implementation 7042e5c31af7Sopenharmony_ci supports multiview per-view viewports. 7043e5c31af7Sopenharmony_ci 7044e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM 7045e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7046e5c31af7Sopenharmony_ci 7047e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.adoc[] 7048e5c31af7Sopenharmony_ci-- 7049e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_viewports[] 7050e5c31af7Sopenharmony_ci 7051e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_render_areas[] 7052e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM',desc='Structure describing multiview per view render areas features that can be supported by an implementation',type='structs'] 7053e5c31af7Sopenharmony_ci-- 7054e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM structure 7055e5c31af7Sopenharmony_ciis defined as: 7056e5c31af7Sopenharmony_ci 7057e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.adoc[] 7058e5c31af7Sopenharmony_ci 7059e5c31af7Sopenharmony_ciThis structure describes the following features: 7060e5c31af7Sopenharmony_ci 7061e5c31af7Sopenharmony_ci * [[features-multiview-per-view-render-areas]] 7062e5c31af7Sopenharmony_ci pname:multiviewPerViewRenderAreas indicates that the implementation 7063e5c31af7Sopenharmony_ci supports multiview per-view render areas. 7064e5c31af7Sopenharmony_ci 7065e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM 7066e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7067e5c31af7Sopenharmony_ci 7068e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.adoc[] 7069e5c31af7Sopenharmony_ci-- 7070e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_render_areas[] 7071e5c31af7Sopenharmony_ci 7072e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[] 7073e5c31af7Sopenharmony_ci 7074e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI',desc='Structure describing whether cluster culling shader is enabled',type='structs'] 7075e5c31af7Sopenharmony_ci-- 7076e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI structure is 7077e5c31af7Sopenharmony_cidefined as: 7078e5c31af7Sopenharmony_ci 7079e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.adoc[] 7080e5c31af7Sopenharmony_ci 7081e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7082e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7083e5c31af7Sopenharmony_ci structure. 7084e5c31af7Sopenharmony_ci * [[features-clustercullingShader]] pname:clustercullingShader specifies 7085e5c31af7Sopenharmony_ci whether cluster culling shader is supported. 7086e5c31af7Sopenharmony_ci * [[features-multiviewClusterCullingShader]] 7087e5c31af7Sopenharmony_ci pname:multiviewClusterCullingShader specifies whether multiview is 7088e5c31af7Sopenharmony_ci supported. 7089e5c31af7Sopenharmony_ci 7090e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI 7091e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7092e5c31af7Sopenharmony_ci 7093e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI.adoc[] 7094e5c31af7Sopenharmony_ci-- 7095e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[] 7096e5c31af7Sopenharmony_ci 7097e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_cluster_culling_shader[] 7098e5c31af7Sopenharmony_ci 7099e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',desc='Structure describing whether cluster culling shader support VRS',type='structs'] 7100e5c31af7Sopenharmony_ci-- 7101e5c31af7Sopenharmony_ciTo query whether a Cluster Culling Shader supports the per-cluster shading 7102e5c31af7Sopenharmony_cirate feature, include a 7103e5c31af7Sopenharmony_cisname:VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI structure in the 7104e5c31af7Sopenharmony_cipname:pNext chain of the 7105e5c31af7Sopenharmony_cisname:VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI structure. 7106e5c31af7Sopenharmony_ciThis structure is defined as: 7107e5c31af7Sopenharmony_ci 7108e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.adoc[] 7109e5c31af7Sopenharmony_ci 7110e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7111e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7112e5c31af7Sopenharmony_ci structure. 7113e5c31af7Sopenharmony_ci * [[features-clusterShadingRate]] pname:clusterShadingRate specifies 7114e5c31af7Sopenharmony_ci whether per-cluster shading rates is supported. 7115e5c31af7Sopenharmony_ci 7116e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.adoc[] 7117e5c31af7Sopenharmony_ci-- 7118e5c31af7Sopenharmony_ci 7119e5c31af7Sopenharmony_ciendif::VK_HUAWEI_cluster_culling_shader[] 7120e5c31af7Sopenharmony_ci 7121e5c31af7Sopenharmony_ci 7122e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[] 7123e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderEnqueueFeaturesAMDX',desc='Structure describing whether shader enqueue within execution graphs are supported by the implementation',type='structs'] 7124e5c31af7Sopenharmony_ci-- 7125e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderEnqueueFeaturesAMDX structure is defined as: 7126e5c31af7Sopenharmony_ci 7127e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.adoc[] 7128e5c31af7Sopenharmony_ci 7129e5c31af7Sopenharmony_ciThis structure describes the following feature: 7130e5c31af7Sopenharmony_ci 7131e5c31af7Sopenharmony_ci * [[features-shaderEnqueue]] pname:shaderEnqueue indicates whether the 7132e5c31af7Sopenharmony_ci implementation supports <<executiongraphs,execution graphs>>. 7133e5c31af7Sopenharmony_ci 7134e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderEnqueueFeaturesAMDX 7135e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7136e5c31af7Sopenharmony_ci 7137e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderEnqueueFeaturesAMDX.adoc[] 7138e5c31af7Sopenharmony_ci-- 7139e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[] 7140e5c31af7Sopenharmony_ci 7141e5c31af7Sopenharmony_ciifdef::VK_QCOM_filter_cubic_clamp[] 7142e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCubicClampFeaturesQCOM',desc='Structure describing cubic clamp features that can be supported by an implementation',type='structs'] 7143e5c31af7Sopenharmony_ci-- 7144e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCubicClampFeaturesQCOM structure is defined as: 7145e5c31af7Sopenharmony_ci 7146e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCubicClampFeaturesQCOM.adoc[] 7147e5c31af7Sopenharmony_ci 7148e5c31af7Sopenharmony_ciThis structure describes the following features: 7149e5c31af7Sopenharmony_ci 7150e5c31af7Sopenharmony_ci * [[features-filter-cubic-range-clamp]] pname:cubicRangeClamp indicates 7151e5c31af7Sopenharmony_ci that the implementation supports cubic filtering in combination with a 7152e5c31af7Sopenharmony_ci <<textures-texel-range-clamp,texel range clamp>>. 7153e5c31af7Sopenharmony_ci 7154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCubicClampFeaturesQCOM 7155e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7156e5c31af7Sopenharmony_ci 7157e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCubicClampFeaturesQCOM.adoc[] 7158e5c31af7Sopenharmony_ci-- 7159e5c31af7Sopenharmony_ciendif::VK_QCOM_filter_cubic_clamp[] 7160e5c31af7Sopenharmony_ci 7161e5c31af7Sopenharmony_ciifdef::VK_QCOM_ycbcr_degamma[] 7162e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrDegammaFeaturesQCOM',desc='Structure describing {YCbCr} degamma features that can be supported by an implementation',type='structs'] 7163e5c31af7Sopenharmony_ci-- 7164e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrDegammaFeaturesQCOM structure is defined as: 7165e5c31af7Sopenharmony_ci 7166e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.adoc[] 7167e5c31af7Sopenharmony_ci 7168e5c31af7Sopenharmony_ciThis structure describes the following features: 7169e5c31af7Sopenharmony_ci 7170e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7171e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7172e5c31af7Sopenharmony_ci structure. 7173e5c31af7Sopenharmony_ci * [[features-ycbcr-degamma]] pname:ycbcrDegamma indicates whether the 7174e5c31af7Sopenharmony_ci implementation supports <<textures-ycbcr-degamma,{YCbCr} degamma>>. 7175e5c31af7Sopenharmony_ci 7176e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrDegammaFeaturesQCOM 7177e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7178e5c31af7Sopenharmony_ci 7179e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrDegammaFeaturesQCOM.adoc[] 7180e5c31af7Sopenharmony_ci-- 7181e5c31af7Sopenharmony_ciendif::VK_QCOM_ycbcr_degamma[] 7182e5c31af7Sopenharmony_ci 7183e5c31af7Sopenharmony_ciifdef::VK_QCOM_filter_cubic_weights[] 7184e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCubicWeightsFeaturesQCOM',desc='Structure describing cubic weight selection features that can be supported by an implementation',type='structs'] 7185e5c31af7Sopenharmony_ci-- 7186e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCubicWeightsFeaturesQCOM structure is defined as: 7187e5c31af7Sopenharmony_ci 7188e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCubicWeightsFeaturesQCOM.adoc[] 7189e5c31af7Sopenharmony_ci 7190e5c31af7Sopenharmony_ciThis structure describes the following feature: 7191e5c31af7Sopenharmony_ci 7192e5c31af7Sopenharmony_ci * [[features-filter-cubic-weight-selection]] pname:selectableCubicWeights 7193e5c31af7Sopenharmony_ci indicates that the implementation supports the selection of filter cubic 7194e5c31af7Sopenharmony_ci weights. 7195e5c31af7Sopenharmony_ci 7196e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCubicWeightsFeaturesQCOM 7197e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7198e5c31af7Sopenharmony_ci 7199e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCubicWeightsFeaturesQCOM.adoc[] 7200e5c31af7Sopenharmony_ci-- 7201e5c31af7Sopenharmony_ciendif::VK_QCOM_filter_cubic_weights[] 7202e5c31af7Sopenharmony_ci 7203e5c31af7Sopenharmony_ciifdef::VK_NV_descriptor_pool_overallocation[] 7204e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV',desc='Structure describing feature to allow descriptor pool overallocation',type='structs'] 7205e5c31af7Sopenharmony_ci-- 7206e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV structure 7207e5c31af7Sopenharmony_ciis defined as: 7208e5c31af7Sopenharmony_ci 7209e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.adoc[] 7210e5c31af7Sopenharmony_ci 7211e5c31af7Sopenharmony_ciThis structure describes the following feature: 7212e5c31af7Sopenharmony_ci 7213e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7214e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7215e5c31af7Sopenharmony_ci structure. 7216e5c31af7Sopenharmony_ci * [[features-descriptorPoolOverallocation]] 7217e5c31af7Sopenharmony_ci pname:descriptorPoolOverallocation indicates that the implementation 7218e5c31af7Sopenharmony_ci allows the application to opt into descriptor pool overallocation by 7219e5c31af7Sopenharmony_ci creating the descriptor pool with 7220e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV and/or 7221e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV flags. 7222e5c31af7Sopenharmony_ci 7223e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV 7224e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7225e5c31af7Sopenharmony_ci 7226e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV.adoc[] 7227e5c31af7Sopenharmony_ci-- 7228e5c31af7Sopenharmony_ciendif::VK_NV_descriptor_pool_overallocation[] 7229e5c31af7Sopenharmony_ci 7230e5c31af7Sopenharmony_ciifdef::VK_NV_per_stage_descriptor_set[] 7231e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePerStageDescriptorSetFeaturesNV',desc='Structure describing feature to allow descriptor set layout bindings to be per-stage',type='structs'] 7232e5c31af7Sopenharmony_ci-- 7233e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePerStageDescriptorSetFeaturesNV structure is 7234e5c31af7Sopenharmony_cidefined as: 7235e5c31af7Sopenharmony_ci 7236e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.adoc[] 7237e5c31af7Sopenharmony_ci 7238e5c31af7Sopenharmony_ciThis structure describes the following feature: 7239e5c31af7Sopenharmony_ci 7240e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7241e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7242e5c31af7Sopenharmony_ci structure. 7243e5c31af7Sopenharmony_ci * [[features-perStageDescriptorSet]] pname:perStageDescriptorSet indicates 7244e5c31af7Sopenharmony_ci that the implementation allows the 7245e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV descriptor set 7246e5c31af7Sopenharmony_ci layout creation flag to be used so the bindings are specified per-stage 7247e5c31af7Sopenharmony_ci rather than across all stages. 7248e5c31af7Sopenharmony_ci * [[features-dynamicPipelineLayout]] pname:dynamicPipelineLayout indicates 7249e5c31af7Sopenharmony_ci the implementation allows the pname:layout member of 7250e5c31af7Sopenharmony_ci slink:VkBindDescriptorSetsInfoKHR, slink:VkPushConstantsInfoKHR, 7251e5c31af7Sopenharmony_ci slink:VkPushDescriptorSetInfoKHR, 7252e5c31af7Sopenharmony_ci slink:VkPushDescriptorSetWithTemplateInfoKHR, 7253e5c31af7Sopenharmony_ci slink:VkSetDescriptorBufferOffsetsInfoEXT and 7254e5c31af7Sopenharmony_ci slink:VkBindDescriptorBufferEmbeddedSamplersInfoEXT to be 7255e5c31af7Sopenharmony_ci dlink:VK_NULL_HANDLE and slink:VkPipelineLayoutCreateInfo can: be 7256e5c31af7Sopenharmony_ci chained off those structures' pname:pNext instead. 7257e5c31af7Sopenharmony_ci 7258e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePerStageDescriptorSetFeaturesNV 7259e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7260e5c31af7Sopenharmony_ci 7261e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePerStageDescriptorSetFeaturesNV.adoc[] 7262e5c31af7Sopenharmony_ci 7263e5c31af7Sopenharmony_ci-- 7264e5c31af7Sopenharmony_ciendif::VK_NV_per_stage_descriptor_set[] 7265e5c31af7Sopenharmony_ci 7266e5c31af7Sopenharmony_ciifdef::VK_NV_cuda_kernel_launch[] 7267e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCudaKernelLaunchFeaturesNV',desc='Structure describing whether cuda kernel launch is supported by the implementation',type='structs'] 7268e5c31af7Sopenharmony_ci-- 7269e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCudaKernelLaunchFeaturesNV structure is defined 7270e5c31af7Sopenharmony_cias: 7271e5c31af7Sopenharmony_ci 7272e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.adoc[] 7273e5c31af7Sopenharmony_ci 7274e5c31af7Sopenharmony_ciThis structure describes the following features: 7275e5c31af7Sopenharmony_ci 7276e5c31af7Sopenharmony_ci * [[features-cudaKernelLaunchFeatures]] pname:cudaKernelLaunchFeatures is 7277e5c31af7Sopenharmony_ci non-zero if cuda kernel launch is supported. 7278e5c31af7Sopenharmony_ci 7279e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCudaKernelLaunchFeaturesNV 7280e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7281e5c31af7Sopenharmony_ci 7282e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCudaKernelLaunchFeaturesNV.adoc[] 7283e5c31af7Sopenharmony_ci-- 7284e5c31af7Sopenharmony_ciendif::VK_NV_cuda_kernel_launch[] 7285e5c31af7Sopenharmony_ci 7286e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_format_resolve[] 7287e5c31af7Sopenharmony_ci 7288e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalFormatResolveFeaturesANDROID',desc='Structure describing whether external format resolves are supported',type='structs'] 7289e5c31af7Sopenharmony_ci-- 7290e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalFormatResolveFeaturesANDROID structure is 7291e5c31af7Sopenharmony_cidefined as: 7292e5c31af7Sopenharmony_ci 7293e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.adoc[] 7294e5c31af7Sopenharmony_ci 7295e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7296e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7297e5c31af7Sopenharmony_ci structure. 7298e5c31af7Sopenharmony_ci * [[features-externalFormatResolve]] pname:externalFormatResolve specifies 7299e5c31af7Sopenharmony_ci whether external format resolves are supported. 7300e5c31af7Sopenharmony_ci 7301e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalFormatResolveFeaturesANDROID 7302e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7303e5c31af7Sopenharmony_ci 7304e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalFormatResolveFeaturesANDROID.adoc[] 7305e5c31af7Sopenharmony_ci-- 7306e5c31af7Sopenharmony_ci 7307e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_format_resolve[] 7308e5c31af7Sopenharmony_ci 7309e5c31af7Sopenharmony_ciifdef::VK_ARM_scheduling_controls[] 7310e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSchedulingControlsFeaturesARM',desc='Structure describing scheduling controls features that can be supported by an implementation',type='structs'] 7311e5c31af7Sopenharmony_ci-- 7312e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSchedulingControlsFeaturesARM structure is defined 7313e5c31af7Sopenharmony_cias: 7314e5c31af7Sopenharmony_ci 7315e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSchedulingControlsFeaturesARM.adoc[] 7316e5c31af7Sopenharmony_ci 7317e5c31af7Sopenharmony_ciThis structure describes the following features: 7318e5c31af7Sopenharmony_ci 7319e5c31af7Sopenharmony_ci * [[features-schedulingControls]] pname:schedulingControls indicates that 7320e5c31af7Sopenharmony_ci the implementation supports scheduling controls. 7321e5c31af7Sopenharmony_ci 7322e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSchedulingControlsFeaturesARM 7323e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7324e5c31af7Sopenharmony_ci 7325e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSchedulingControlsFeaturesARM.adoc[] 7326e5c31af7Sopenharmony_ci-- 7327e5c31af7Sopenharmony_ciendif::VK_ARM_scheduling_controls[] 7328e5c31af7Sopenharmony_ci 7329e5c31af7Sopenharmony_ciifdef::VK_IMG_relaxed_line_rasterization[] 7330e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG',desc='Structure describing relaxed line rasterization features that can be supported by an implementation',type='structs'] 7331e5c31af7Sopenharmony_ci-- 7332e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG structure is 7333e5c31af7Sopenharmony_cidefined as: 7334e5c31af7Sopenharmony_ci 7335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[] 7336e5c31af7Sopenharmony_ci 7337e5c31af7Sopenharmony_ciThis structure describes the following feature: 7338e5c31af7Sopenharmony_ci 7339e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7340e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7341e5c31af7Sopenharmony_ci structure. 7342e5c31af7Sopenharmony_ci * [[features-relaxedLineRasterization]] pname:relaxedLineRasterization 7343e5c31af7Sopenharmony_ci indicates that the implementation supports relaxed line rasterization 7344e5c31af7Sopenharmony_ci control. 7345e5c31af7Sopenharmony_ci 7346e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG 7347e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7348e5c31af7Sopenharmony_ci 7349e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG.adoc[] 7350e5c31af7Sopenharmony_ci-- 7351e5c31af7Sopenharmony_ciendif::VK_IMG_relaxed_line_rasterization[] 7352e5c31af7Sopenharmony_ci 7353e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[] 7354e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRenderPassStripedFeaturesARM',desc='Structure describing whether striped rendering can be supported by an implementation',type='structs'] 7355e5c31af7Sopenharmony_ci-- 7356e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRenderPassStripedFeaturesARM structure is defined 7357e5c31af7Sopenharmony_cias: 7358e5c31af7Sopenharmony_ci 7359e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRenderPassStripedFeaturesARM.adoc[] 7360e5c31af7Sopenharmony_ci 7361e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceRenderPassStripedFeaturesARM 7362e5c31af7Sopenharmony_cistructure describe the following features: 7363e5c31af7Sopenharmony_ci 7364e5c31af7Sopenharmony_ci * pname:sType is a elink:VkStructureType value identifying this structure. 7365e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 7366e5c31af7Sopenharmony_ci structure. 7367e5c31af7Sopenharmony_ci * [[features-renderPassStriped]] pname:renderPassStriped indicates that 7368e5c31af7Sopenharmony_ci striped rendering is supported by the implementation. 7369e5c31af7Sopenharmony_ci 7370e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRenderPassStripedFeaturesARM 7371e5c31af7Sopenharmony_ciinclude::{chapters}/features.adoc[tag=features] 7372e5c31af7Sopenharmony_ci 7373e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRenderPassStripedFeaturesARM.adoc[] 7374e5c31af7Sopenharmony_ci-- 7375e5c31af7Sopenharmony_ci 7376e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[] 7377e5c31af7Sopenharmony_ci 7378e5c31af7Sopenharmony_ci[[features-requirements]] 7379e5c31af7Sopenharmony_ci== Feature Requirements 7380e5c31af7Sopenharmony_ci 7381e5c31af7Sopenharmony_ciAll Vulkan graphics implementations must: support the following features: 7382e5c31af7Sopenharmony_ci 7383e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[] 7384e5c31af7Sopenharmony_ci * <<features-robustBufferAccess, pname:robustBufferAccess>>, unless the 7385e5c31af7Sopenharmony_ci `apiext:VK_KHR_portability_subset` extension is enabled. 7386e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 7387e5c31af7Sopenharmony_ciifndef::VK_KHR_portability_subset[] 7388e5c31af7Sopenharmony_ci * <<features-robustBufferAccess, pname:robustBufferAccess>> 7389e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 7390e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 7391e5c31af7Sopenharmony_ci * <<features-multiview, pname:multiview>>, if Vulkan 1.1 is supported. 7392e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[] 7393e5c31af7Sopenharmony_ci Vulkan SC 1.0 does not require pname:multiview to be supported 7394e5c31af7Sopenharmony_ci <<SCID-8>>. 7395e5c31af7Sopenharmony_ciifdef::hidden[] 7396e5c31af7Sopenharmony_ci// tag::scdeviation[] 7397e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceVulkan11Features::pname:multiview is made optional 7398e5c31af7Sopenharmony_ci <<SCID-8>>. 7399e5c31af7Sopenharmony_ci// end::scdeviation[] 7400e5c31af7Sopenharmony_ciendif::hidden[] 7401e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 7402e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[] 7403e5c31af7Sopenharmony_ci * <<features-shaderDrawParameters, pname:shaderDrawParameters>>, if the 7404e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_draw_parameters` extension is supported. 7405e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[] 7406e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 7407e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 7408e5c31af7Sopenharmony_ci * <<features-uniformBufferStandardLayout, 7409e5c31af7Sopenharmony_ci pname:uniformBufferStandardLayout>>, if Vulkan 1.2 or the 7410e5c31af7Sopenharmony_ci `apiext:VK_KHR_uniform_buffer_standard_layout` extension is supported. 7411e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 7412e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[] 7413e5c31af7Sopenharmony_ci * <<features-variablePointersStorageBuffer, 7414e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer>>, if the 7415e5c31af7Sopenharmony_ci `apiext:VK_KHR_variable_pointers` extension is supported. 7416e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[] 7417e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[] 7418e5c31af7Sopenharmony_ci * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if 7419e5c31af7Sopenharmony_ci the `apiext:VK_KHR_8bit_storage` extension is supported. 7420e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[] 7421e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[] 7422e5c31af7Sopenharmony_ci * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if 7423e5c31af7Sopenharmony_ci <<features-uniformAndStorageBuffer8BitAccess, 7424e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer8BitAccess>> is enabled. 7425e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[] 7426e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 7427e5c31af7Sopenharmony_ci * If 7428e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature is supported, or if] 7429e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension is supported: 7430e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayDynamicIndexing, 7431e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayDynamicIndexing>> 7432e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayDynamicIndexing, 7433e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayDynamicIndexing>> 7434e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayDynamicIndexing, 7435e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayDynamicIndexing>> 7436e5c31af7Sopenharmony_ci ** <<features-shaderStorageTexelBufferArrayDynamicIndexing, 7437e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayDynamicIndexing>> 7438e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayNonUniformIndexing, 7439e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayNonUniformIndexing>> 7440e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayNonUniformIndexing, 7441e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayNonUniformIndexing>> 7442e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayNonUniformIndexing, 7443e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayNonUniformIndexing>> 7444e5c31af7Sopenharmony_ci ** <<features-descriptorBindingSampledImageUpdateAfterBind, 7445e5c31af7Sopenharmony_ci pname:descriptorBindingSampledImageUpdateAfterBind>> 7446e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageImageUpdateAfterBind, 7447e5c31af7Sopenharmony_ci pname:descriptorBindingStorageImageUpdateAfterBind>> 7448e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageBufferUpdateAfterBind, 7449e5c31af7Sopenharmony_ci pname:descriptorBindingStorageBufferUpdateAfterBind>> (see also 7450e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 7451e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 7452e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUniformTexelBufferUpdateAfterBind, 7453e5c31af7Sopenharmony_ci pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> (see also 7454e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 7455e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 7456e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageTexelBufferUpdateAfterBind, 7457e5c31af7Sopenharmony_ci pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> (see also 7458e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 7459e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 7460e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUpdateUnusedWhilePending, 7461e5c31af7Sopenharmony_ci pname:descriptorBindingUpdateUnusedWhilePending>> 7462e5c31af7Sopenharmony_ci ** <<features-descriptorBindingPartiallyBound, 7463e5c31af7Sopenharmony_ci pname:descriptorBindingPartiallyBound>> 7464e5c31af7Sopenharmony_ci ** <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>> 7465e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 7466e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 7467e5c31af7Sopenharmony_ci * If Vulkan 1.3 is supported: 7468e5c31af7Sopenharmony_ci ** <<features-vulkanMemoryModel, pname:vulkanMemoryModel>> 7469e5c31af7Sopenharmony_ci ** <<features-vulkanMemoryModelDeviceScope, 7470e5c31af7Sopenharmony_ci pname:vulkanMemoryModelDeviceScope>> 7471e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 7472e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_inline_uniform_block[] 7473e5c31af7Sopenharmony_ci * <<features-inlineUniformBlock, pname:inlineUniformBlock>>, if 7474e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7475e5c31af7Sopenharmony_ci the `apiext:VK_EXT_inline_uniform_block` extension is supported. 7476e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 7477e5c31af7Sopenharmony_ci * <<features-descriptorBindingInlineUniformBlockUpdateAfterBind, 7478e5c31af7Sopenharmony_ci pname:descriptorBindingInlineUniformBlockUpdateAfterBind>>, if 7479e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7480e5c31af7Sopenharmony_ci the `apiext:VK_EXT_inline_uniform_block` extension is supported; and if 7481e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature is supported, or] 7482e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension is supported. 7483e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 7484e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_inline_uniform_block[] 7485e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[] 7486e5c31af7Sopenharmony_ci * <<features-scalarBlockLayout, pname:scalarBlockLayout>>, if the 7487e5c31af7Sopenharmony_ci `apiext:VK_EXT_scalar_block_layout` extension is supported. 7488e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[] 7489e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 7490e5c31af7Sopenharmony_ci * <<features-subgroupBroadcastDynamicId, 7491e5c31af7Sopenharmony_ci pname:subgroupBroadcastDynamicId>>, if Vulkan 1.2 is supported. 7492e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 7493e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[] 7494e5c31af7Sopenharmony_ci * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>, 7495e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is 7496e5c31af7Sopenharmony_ci supported. 7497e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[] 7498e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_draw_indirect_count[] 7499e5c31af7Sopenharmony_ci * <<features-drawIndirectCount, pname:drawIndirectCount>>, if the 7500e5c31af7Sopenharmony_ci `apiext:VK_KHR_draw_indirect_count` extension is supported. 7501e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_draw_indirect_count[] 7502e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[] 7503e5c31af7Sopenharmony_ci * <<features-samplerFilterMinmax, pname:samplerFilterMinmax>>, if the 7504e5c31af7Sopenharmony_ci `apiext:VK_EXT_sampler_filter_minmax` extension is supported. 7505e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[] 7506e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[] 7507e5c31af7Sopenharmony_ci * <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>, 7508e5c31af7Sopenharmony_ci if the `apiext:VK_EXT_shader_viewport_index_layer` extension is 7509e5c31af7Sopenharmony_ci supported. 7510e5c31af7Sopenharmony_ci * <<features-shaderOutputLayer, pname:shaderOutputLayer>>, if the 7511e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_viewport_index_layer` extension is supported. 7512e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[] 7513e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_subgroup_size_control[] 7514e5c31af7Sopenharmony_ci * <<features-subgroupSizeControl, pname:subgroupSizeControl>>, if 7515e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7516e5c31af7Sopenharmony_ci the `apiext:VK_EXT_subgroup_size_control` extension is supported. 7517e5c31af7Sopenharmony_ci * <<features-computeFullSubgroups, pname:computeFullSubgroups>>, if 7518e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7519e5c31af7Sopenharmony_ci the `apiext:VK_EXT_subgroup_size_control` extension is supported. 7520e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_subgroup_size_control[] 7521e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[] 7522e5c31af7Sopenharmony_ci * <<features-deviceMemoryReport, pname:deviceMemoryReport>>, if the 7523e5c31af7Sopenharmony_ci `apiext:VK_EXT_device_memory_report` extension is supported. 7524e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[] 7525e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[] 7526e5c31af7Sopenharmony_ci * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the 7527e5c31af7Sopenharmony_ci `apiext:VK_EXT_global_priority_query` extension is supported. 7528e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[] 7529e5c31af7Sopenharmony_ciifdef::VK_KHR_global_priority[] 7530e5c31af7Sopenharmony_ci * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the 7531e5c31af7Sopenharmony_ci `apiext:VK_KHR_global_priority` extension is supported. 7532e5c31af7Sopenharmony_ciendif::VK_KHR_global_priority[] 7533e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 7534e5c31af7Sopenharmony_ci * <<features-imagelessFramebuffer, pname:imagelessFramebuffer>>, if Vulkan 7535e5c31af7Sopenharmony_ci 1.2 or the `apiext:VK_KHR_imageless_framebuffer` extension is supported. 7536e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 7537e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 7538e5c31af7Sopenharmony_ci * <<features-separateDepthStencilLayouts, 7539e5c31af7Sopenharmony_ci pname:separateDepthStencilLayouts>>, if Vulkan 1.2 or the 7540e5c31af7Sopenharmony_ci `apiext:VK_KHR_separate_depth_stencil_layouts` extension is supported. 7541e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 7542e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[] 7543e5c31af7Sopenharmony_ci * <<features-hostQueryReset, pname:hostQueryReset>>, if Vulkan 1.2 or the 7544e5c31af7Sopenharmony_ci `apiext:VK_EXT_host_query_reset` extension is supported. 7545e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[] 7546e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 7547e5c31af7Sopenharmony_ci * <<features-timelineSemaphore, pname:timelineSemaphore>>, if Vulkan 1.2 7548e5c31af7Sopenharmony_ci or the `apiext:VK_KHR_timeline_semaphore` extension is supported. 7549e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[] 7550e5c31af7Sopenharmony_ci Vulkan SC 1.0 does not require pname:timelineSemaphore to be supported 7551e5c31af7Sopenharmony_ci <<SCID-8>>. 7552e5c31af7Sopenharmony_ciifdef::hidden[] 7553e5c31af7Sopenharmony_ci// tag::scdeviation[] 7554e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceVulkan12Features::pname:timelineSemaphore is made 7555e5c31af7Sopenharmony_ci optional <<SCID-8>>. 7556e5c31af7Sopenharmony_ci// end::scdeviation[] 7557e5c31af7Sopenharmony_ciendif::hidden[] 7558e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 7559e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 7560e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 7561e5c31af7Sopenharmony_ci * If the `apiext:VK_KHR_acceleration_structure` extension is supported: 7562e5c31af7Sopenharmony_ci ** <<features-accelerationStructure, pname:accelerationStructure>> 7563e5c31af7Sopenharmony_ci ** All the features required by 7564e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing, pname:descriptorIndexing>> feature if Vulkan 1.2 is supported, or] 7565e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension. 7566e5c31af7Sopenharmony_ci ** <<features-descriptorBindingAccelerationStructureUpdateAfterBind, 7567e5c31af7Sopenharmony_ci pname:descriptorBindingAccelerationStructureUpdateAfterBind>> 7568e5c31af7Sopenharmony_ci ** <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> from 7569e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[Vulkan 1.2 or] 7570e5c31af7Sopenharmony_ci the `apiext:VK_KHR_buffer_device_address` extension. 7571e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 7572e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 7573e5c31af7Sopenharmony_ci * If the `apiext:VK_KHR_ray_tracing_pipeline` extension is supported: 7574e5c31af7Sopenharmony_ci ** <<features-rayTracingPipeline, pname:rayTracingPipeline>> 7575e5c31af7Sopenharmony_ci ** <<features-rayTracingPipelineTraceRaysIndirect, 7576e5c31af7Sopenharmony_ci pname:rayTracingPipelineTraceRaysIndirect>> 7577e5c31af7Sopenharmony_ci ** <<features-rayTraversalPrimitiveCulling, 7578e5c31af7Sopenharmony_ci pname:rayTraversalPrimitiveCulling>>, if <<features-rayQuery, 7579e5c31af7Sopenharmony_ci pname:rayQuery>> is supported 7580e5c31af7Sopenharmony_ci ** the `apiext:VK_KHR_pipeline_library` extension must: be supported. 7581e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 7582e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 7583e5c31af7Sopenharmony_ci * <<features-rayQuery, pname:rayQuery>>, if the `apiext:VK_KHR_ray_query` 7584e5c31af7Sopenharmony_ci extension is supported. 7585e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 7586e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[] 7587e5c31af7Sopenharmony_ci * <<features-pipelineCreationCacheControl, 7588e5c31af7Sopenharmony_ci pname:pipelineCreationCacheControl>>, if 7589e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7590e5c31af7Sopenharmony_ci the `apiext:VK_EXT_pipeline_creation_cache_control` extension is 7591e5c31af7Sopenharmony_ci supported. 7592e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control[] 7593e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 7594e5c31af7Sopenharmony_ci * <<features-subgroup-extended-types, pname:shaderSubgroupExtendedTypes>>, 7595e5c31af7Sopenharmony_ci if Vulkan 1.2 or the `apiext:VK_KHR_shader_subgroup_extended_types` 7596e5c31af7Sopenharmony_ci extension is supported. 7597e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 7598e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[] 7599e5c31af7Sopenharmony_ci * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>>, if 7600e5c31af7Sopenharmony_ci the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is supported. 7601e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[] 7602e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[] 7603e5c31af7Sopenharmony_ci * <<features-pipelineExecutableInfo, pname:pipelineExecutableInfo>>, if 7604e5c31af7Sopenharmony_ci the `apiext:VK_KHR_pipeline_executable_properties` extension is 7605e5c31af7Sopenharmony_ci supported. 7606e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[] 7607e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 7608e5c31af7Sopenharmony_ci * <<features-textureCompressionASTC_HDR, 7609e5c31af7Sopenharmony_ci pname:textureCompressionASTC_HDR>>, if the 7610e5c31af7Sopenharmony_ci `apiext:VK_EXT_texture_compression_astc_hdr` extension is supported. 7611e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texture_compression_astc_hdr[] 7612e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[] 7613e5c31af7Sopenharmony_ci * <<features-depthClipEnable, pname:depthClipEnable>>, if the 7614e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_clip_enable` extension is supported. 7615e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[] 7616e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[] 7617e5c31af7Sopenharmony_ci * <<features-memoryPriority, pname:memoryPriority>>, if the 7618e5c31af7Sopenharmony_ci `apiext:VK_EXT_memory_priority` extension is supported. 7619e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[] 7620e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[] 7621e5c31af7Sopenharmony_ci * <<features-ycbcrImageArrays, pname:ycbcrImageArrays>>, if the 7622e5c31af7Sopenharmony_ci `apiext:VK_EXT_ycbcr_image_arrays` extension is supported. 7623e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[] 7624e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[] 7625e5c31af7Sopenharmony_ci * <<features-indexTypeUint8, pname:indexTypeUint8>>, if the 7626e5c31af7Sopenharmony_ci `apiext:VK_EXT_index_type_uint8` extension is supported. 7627e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[] 7628e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[] 7629e5c31af7Sopenharmony_ci * <<features-primitiveTopologyListRestart, 7630e5c31af7Sopenharmony_ci pname:primitiveTopologyListRestart>>, if the 7631e5c31af7Sopenharmony_ci `apiext:VK_EXT_primitive_topology_list_restart` extension is supported. 7632e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[] 7633e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[] 7634e5c31af7Sopenharmony_ci * <<features-shaderDemoteToHelperInvocation, 7635e5c31af7Sopenharmony_ci pname:shaderDemoteToHelperInvocation>>, if 7636e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7637e5c31af7Sopenharmony_ci the `apiext:VK_EXT_shader_demote_to_helper_invocation` extension is 7638e5c31af7Sopenharmony_ci supported. 7639e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_shader_demote_to_helper_invocation[] 7640e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[] 7641e5c31af7Sopenharmony_ci * <<features-texelBufferAlignment, pname:texelBufferAlignment>>, if 7642e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7643e5c31af7Sopenharmony_ci the `apiext:VK_EXT_texel_buffer_alignment` extension is supported. 7644e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_texel_buffer_alignment[] 7645e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model,VKSC_VERSION_1_0[] 7646e5c31af7Sopenharmony_ci * <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>, 7647e5c31af7Sopenharmony_ciifdef::VKSC_VERSION_1_0[] 7648e5c31af7Sopenharmony_ci if Vulkan SC 1.0 <<SCID-5>> or 7649e5c31af7Sopenharmony_ciifdef::hidden[] 7650e5c31af7Sopenharmony_ci// tag::scdeviation[] 7651e5c31af7Sopenharmony_ci * slink:VkPhysicalDeviceVulkan12Features::pname:vulkanMemoryModel must: be 7652e5c31af7Sopenharmony_ci reported as ename:VK_TRUE <<SCID-1>>. 7653e5c31af7Sopenharmony_ci// end::scdeviation[] 7654e5c31af7Sopenharmony_ciendif::hidden[] 7655e5c31af7Sopenharmony_ciendif::VKSC_VERSION_1_0[] 7656e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_vulkan_memory_model` extension is supported. 7657e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model,VKSC_VERSION_1_0[] 7658e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_buffer_device_address[] 7659e5c31af7Sopenharmony_ci * <<features-bufferDeviceAddress, pname:bufferDeviceAddress>>, if 7660e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7661e5c31af7Sopenharmony_ci the `apiext:VK_KHR_buffer_device_address` extension is supported. 7662e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_buffer_device_address[] 7663e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[] 7664e5c31af7Sopenharmony_ci * <<VkPhysicalDevicePerformanceQueryFeaturesKHR, 7665e5c31af7Sopenharmony_ci pname:performanceCounterQueryPools>>, if the 7666e5c31af7Sopenharmony_ci `apiext:VK_KHR_performance_query` extension is supported. 7667e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[] 7668e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 7669e5c31af7Sopenharmony_ci * <<features-transformFeedback, pname:transformFeedback>>, if the 7670e5c31af7Sopenharmony_ci `apiext:VK_EXT_transform_feedback` extension is supported. 7671e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 7672e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[] 7673e5c31af7Sopenharmony_ci * <<features-conditionalRendering, pname:conditionalRendering>>, if the 7674e5c31af7Sopenharmony_ci `apiext:VK_EXT_conditional_rendering` extension is supported. 7675e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[] 7676e5c31af7Sopenharmony_ciifdef::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[] 7677e5c31af7Sopenharmony_ci * <<features-vertexAttributeInstanceRateDivisor, 7678e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateDivisor>>, if 7679e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[] 7680e5c31af7Sopenharmony_ci the `apiext:VK_EXT_vertex_attribute_divisor` extension or 7681e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[] 7682e5c31af7Sopenharmony_ci the `apiext:VK_KHR_vertex_attribute_divisor` extension is supported. 7683e5c31af7Sopenharmony_ciendif::VK_KHR_vertex_attribute_divisor,VK_EXT_vertex_attribute_divisor[] 7684e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 7685e5c31af7Sopenharmony_ci * <<features-fragmentDensityMap, pname:fragmentDensityMap>>, if the 7686e5c31af7Sopenharmony_ci `apiext:VK_EXT_fragment_density_map` extension is supported. 7687e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 7688e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[] 7689e5c31af7Sopenharmony_ci * <<features-shaderSubgroupClock, pname:shaderSubgroupClock>>, if the 7690e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_clock` extension is supported. 7691e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[] 7692e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[] 7693e5c31af7Sopenharmony_ci * <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>, 7694e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_shader_atomic_int64` extension is supported. 7695e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[] 7696e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 7697e5c31af7Sopenharmony_ci * <<features-shaderInt64, pname:shaderInt64>>, if the 7698e5c31af7Sopenharmony_ci <<features-shaderSharedInt64Atomics, pname:shaderSharedInt64Atomics>> or 7699e5c31af7Sopenharmony_ci <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>> 7700e5c31af7Sopenharmony_ci features are supported. 7701e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 7702e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[] 7703e5c31af7Sopenharmony_ci * <<features-shaderFloat16, pname:shaderFloat16>> or 7704e5c31af7Sopenharmony_ci <<features-shaderInt8, pname:shaderInt8>>, if the 7705e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_float16_int8` extension is supported. 7706e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[] 7707e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[] 7708e5c31af7Sopenharmony_ci * <<features-fragmentShaderSampleInterlock, 7709e5c31af7Sopenharmony_ci pname:fragmentShaderSampleInterlock>> or 7710e5c31af7Sopenharmony_ci <<features-fragmentShaderPixelInterlock, 7711e5c31af7Sopenharmony_ci pname:fragmentShaderPixelInterlock>> or 7712e5c31af7Sopenharmony_ci <<features-fragmentShaderShadingRateInterlock, 7713e5c31af7Sopenharmony_ci pname:fragmentShaderShadingRateInterlock>>, if the 7714e5c31af7Sopenharmony_ci `apiext:VK_EXT_fragment_shader_interlock` extension is supported. 7715e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[] 7716e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[] 7717e5c31af7Sopenharmony_ci * <<features-rectangularLines, pname:rectangularLines>> or 7718e5c31af7Sopenharmony_ci <<features-bresenhamLines, pname:bresenhamLines>> or 7719e5c31af7Sopenharmony_ci <<features-smoothLines, pname:smoothLines>> or 7720e5c31af7Sopenharmony_ci <<features-stippledRectangularLines, pname:stippledRectangularLines>> or 7721e5c31af7Sopenharmony_ci <<features-stippledBresenhamLines, pname:stippledBresenhamLines>> or 7722e5c31af7Sopenharmony_ci <<features-stippledSmoothLines, pname:stippledSmoothLines>>, if the 7723e5c31af7Sopenharmony_ci `apiext:VK_EXT_line_rasterization` extension is supported. 7724e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[] 7725e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[] 7726e5c31af7Sopenharmony_ci * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>, 7727e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_16bit_storage` extension is supported. 7728e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[] 7729e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[] 7730e5c31af7Sopenharmony_ci * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>, 7731e5c31af7Sopenharmony_ci if <<features-uniformAndStorageBuffer16BitAccess, 7732e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer16BitAccess>> is enabled. 7733e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[] 7734e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_image_robustness[] 7735e5c31af7Sopenharmony_ci * <<features-robustImageAccess, pname:robustImageAccess>>, if 7736e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7737e5c31af7Sopenharmony_ci the `apiext:VK_EXT_image_robustness` extension is supported. 7738e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_image_robustness[] 7739e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[] 7740e5c31af7Sopenharmony_ci * <<features-formatA4R4G4B4, pname:formatA4R4G4B4>>, if the 7741e5c31af7Sopenharmony_ci `apiext:VK_EXT_4444_formats` extension is supported. 7742e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[] 7743e5c31af7Sopenharmony_ciifdef::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 7744e5c31af7Sopenharmony_ci * <<features-mutableDescriptorType, pname:mutableDescriptorType>>, if the 7745e5c31af7Sopenharmony_ci `apiext:VK_EXT_mutable_descriptor_type` or 7746e5c31af7Sopenharmony_ci `apiext:VK_VALVE_mutable_descriptor_type` extension is supported. 7747e5c31af7Sopenharmony_ciendif::VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type[] 7748e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[] 7749e5c31af7Sopenharmony_ci * <<features-shaderInt64, pname:shaderInt64>> and 7750e5c31af7Sopenharmony_ci <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if 7751e5c31af7Sopenharmony_ci the `apiext:VK_EXT_shader_image_atomic_int64` extension is supported. 7752e5c31af7Sopenharmony_ci * <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if 7753e5c31af7Sopenharmony_ci the <<features-sparseImageInt64Atomics, pname:sparseImageInt64Atomics>> 7754e5c31af7Sopenharmony_ci feature is supported. 7755e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[] 7756e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[] 7757e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>, 7758e5c31af7Sopenharmony_ci if the <<features-sparseImageFloat32Atomics, 7759e5c31af7Sopenharmony_ci pname:sparseImageFloat32Atomics>> feature is supported. 7760e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32AtomicAdd, 7761e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicAdd>>, if the 7762e5c31af7Sopenharmony_ci <<features-sparseImageFloat32AtomicAdd, 7763e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicAdd>> feature is supported. 7764e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[] 7765e5c31af7Sopenharmony_ciifdef::VK_EXT_primitives_generated_query[] 7766e5c31af7Sopenharmony_ci * <<features-primitivesGeneratedQuery, pname:primitivesGeneratedQuery>>, 7767e5c31af7Sopenharmony_ci if the `apiext:VK_EXT_primitives_generated_query` extension is 7768e5c31af7Sopenharmony_ci supported. 7769e5c31af7Sopenharmony_ciendif::VK_EXT_primitives_generated_query[] 7770e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 7771e5c31af7Sopenharmony_ci * <<features-pipelineFragmentShadingRate, 7772e5c31af7Sopenharmony_ci pname:pipelineFragmentShadingRate>>, if the 7773e5c31af7Sopenharmony_ci `apiext:VK_KHR_fragment_shading_rate` extension is supported. 7774e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 7775e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_protected_access[] 7776e5c31af7Sopenharmony_ci * <<features-pipelineProtectedAccess, pname:pipelineProtectedAccess>>, if 7777e5c31af7Sopenharmony_ci the `apiext:VK_EXT_pipeline_protected_access` extension is supported. 7778e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_protected_access[] 7779e5c31af7Sopenharmony_ciifdef::VK_EXT_legacy_dithering[] 7780e5c31af7Sopenharmony_ci * <<features-legacyDithering, pname:legacyDithering>>, if the 7781e5c31af7Sopenharmony_ci `apiext:VK_EXT_legacy_dithering` extension is supported. 7782e5c31af7Sopenharmony_ciendif::VK_EXT_legacy_dithering[] 7783e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[] 7784e5c31af7Sopenharmony_ci * <<features-shaderTerminateInvocation, pname:shaderTerminateInvocation>> 7785e5c31af7Sopenharmony_ci if 7786e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7787e5c31af7Sopenharmony_ci the `apiext:VK_KHR_shader_terminate_invocation` extension is supported. 7788e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_terminate_invocation[] 7789e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[] 7790e5c31af7Sopenharmony_ci * <<features-shaderZeroInitializeWorkgroupMemory, 7791e5c31af7Sopenharmony_ci pname:shaderZeroInitializeWorkgroupMemory>>, if 7792e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7793e5c31af7Sopenharmony_ci the `apiext:VK_KHR_zero_initialize_workgroup_memory` extension is 7794e5c31af7Sopenharmony_ci supported. 7795e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_zero_initialize_workgroup_memory[] 7796e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 7797e5c31af7Sopenharmony_ci * <<features-workgroupMemoryExplicitLayout, 7798e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout>>, if the 7799e5c31af7Sopenharmony_ci `apiext:VK_KHR_workgroup_memory_explicit_layout` extension is supported. 7800e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 7801e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[] 7802e5c31af7Sopenharmony_ci * <<features-vertexInputDynamicState, pname:vertexInputDynamicState>>, if 7803e5c31af7Sopenharmony_ci the `apiext:VK_EXT_vertex_input_dynamic_state` extension is supported. 7804e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[] 7805e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_synchronization2[] 7806e5c31af7Sopenharmony_ci * <<features-synchronization2, pname:synchronization2>> if 7807e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7808e5c31af7Sopenharmony_ci the `apiext:VK_KHR_synchronization2` extension is supported. 7809e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_synchronization2[] 7810e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[] 7811e5c31af7Sopenharmony_ci * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the 7812e5c31af7Sopenharmony_ci `apiext:VK_EXT_provoking_vertex` extension is supported. 7813e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[] 7814e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_buffer[] 7815e5c31af7Sopenharmony_ci * <<features-descriptorBuffer, pname:descriptorBuffer>>, if the 7816e5c31af7Sopenharmony_ci `<<VK_EXT_descriptor_buffer>>` extension is supported. 7817e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_buffer[] 7818e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[] 7819e5c31af7Sopenharmony_ci * <<features-shaderSubgroupUniformControlFlow, 7820e5c31af7Sopenharmony_ci pname:shaderSubgroupUniformControlFlow>>, if the 7821e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_subgroup_uniform_control_flow` extension is 7822e5c31af7Sopenharmony_ci supported. 7823e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[] 7824e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[] 7825e5c31af7Sopenharmony_ci * <<features-borderColorSwizzle, pname:borderColorSwizzle>> if the 7826e5c31af7Sopenharmony_ci `apiext:VK_EXT_border_color_swizzle` extension is supported. 7827e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[] 7828e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[] 7829e5c31af7Sopenharmony_ci * <<features-multiDraw, pname:multiDraw>>, if the 7830e5c31af7Sopenharmony_ci `apiext:VK_EXT_multi_draw` extension is supported. 7831e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[] 7832e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[] 7833e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32AtomicMinMax, 7834e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicMinMax>>, if the 7835e5c31af7Sopenharmony_ci <<features-sparseImageFloat32AtomicMinMax, 7836e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicMinMax>> feature is supported. 7837e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[] 7838e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[] 7839e5c31af7Sopenharmony_ci * <<features-presentId, pname:presentId>>, if the 7840e5c31af7Sopenharmony_ci `apiext:VK_KHR_present_id` extension is supported. 7841e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[] 7842e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[] 7843e5c31af7Sopenharmony_ci * <<features-presentWait, pname:presentWait>>, if the 7844e5c31af7Sopenharmony_ci `apiext:VK_KHR_present_wait` extension is supported. 7845e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[] 7846e5c31af7Sopenharmony_ciifdef::VK_EXT_host_image_copy[] 7847e5c31af7Sopenharmony_ci * <<features-hostImageCopy, pname:hostImageCopy>>, if the 7848e5c31af7Sopenharmony_ci `<<VK_EXT_host_image_copy>>` extension is supported. 7849e5c31af7Sopenharmony_ciendif::VK_EXT_host_image_copy[] 7850e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[] 7851e5c31af7Sopenharmony_ci * <<features-shaderIntegerDotProduct, pname:shaderIntegerDotProduct>> if 7852e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7853e5c31af7Sopenharmony_ci the `apiext:VK_KHR_shader_integer_dot_product` extension is supported. 7854e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_shader_integer_dot_product[] 7855e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_maintenance4[] 7856e5c31af7Sopenharmony_ci * <<features-maintenance4, pname:maintenance4>>, if 7857e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7858e5c31af7Sopenharmony_ci the `apiext:VK_KHR_maintenance4` extension is supported. 7859e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_maintenance4[] 7860e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance5[] 7861e5c31af7Sopenharmony_ci * <<features-maintenance5, pname:maintenance5>>, if the 7862e5c31af7Sopenharmony_ci `apiext:VK_KHR_maintenance5` extension is supported. 7863e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance5[] 7864e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance6[] 7865e5c31af7Sopenharmony_ci * <<features-maintenance6, pname:maintenance6>>, if the 7866e5c31af7Sopenharmony_ci `apiext:VK_KHR_maintenance6` extension is supported. 7867e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance6[] 7868e5c31af7Sopenharmony_ciifdef::VK_EXT_image_2d_view_of_3d[] 7869e5c31af7Sopenharmony_ci * <<features-image2DViewOf3D, pname:image2DViewOf3D>>, if the 7870e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_2d_view_of_3d` extension is supported. 7871e5c31af7Sopenharmony_ciendif::VK_EXT_image_2d_view_of_3d[] 7872e5c31af7Sopenharmony_ciifdef::VK_EXT_image_sliced_view_of_3d[] 7873e5c31af7Sopenharmony_ci * <<features-imageSlicedViewOf3D, pname:imageSlicedViewOf3D>>, if the 7874e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_sliced_view_of_3d` extension is supported. 7875e5c31af7Sopenharmony_ciendif::VK_EXT_image_sliced_view_of_3d[] 7876e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_EXT_private_data[] 7877e5c31af7Sopenharmony_ci * <<features-privateData, pname:privateData>>, if 7878e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7879e5c31af7Sopenharmony_ci the `apiext:VK_EXT_private_data` extension is supported. 7880e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_EXT_private_data[] 7881e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[] 7882e5c31af7Sopenharmony_ci * <<features-extendedDynamicState, pname:extendedDynamicState>>, if the 7883e5c31af7Sopenharmony_ci `apiext:VK_EXT_extended_dynamic_state` extension is supported. 7884e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[] 7885e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[] 7886e5c31af7Sopenharmony_ci * <<features-extendedDynamicState2, pname:extendedDynamicState2>>, if the 7887e5c31af7Sopenharmony_ci `apiext:VK_EXT_extended_dynamic_state2` extension is supported. 7888e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[] 7889e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[] 7890e5c31af7Sopenharmony_ci * <<features-depthClipControl, pname:depthClipControl>>, if the 7891e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_clip_control` extension is supported. 7892e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[] 7893e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[] 7894e5c31af7Sopenharmony_ci * <<features-minLod, pname:minLod>>, if the 7895e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_view_min_lod` extension is supported. 7896e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[] 7897e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync[] 7898e5c31af7Sopenharmony_ci * At least one of <<features-sciSyncFence, pname:sciSyncFence>> and 7899e5c31af7Sopenharmony_ci <<features-sciSyncSemaphore, pname:sciSyncSemaphore>>, and at least one 7900e5c31af7Sopenharmony_ci of <<features-sciSyncImport, pname:sciSyncImport>> and 7901e5c31af7Sopenharmony_ci <<features-sciSyncExport, pname:sciSyncExport>>, if the 7902e5c31af7Sopenharmony_ci `apiext:VK_NV_external_sci_sync` extension is supported. 7903e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync[] 7904e5c31af7Sopenharmony_ciifdef::VK_NV_external_sci_sync2[] 7905e5c31af7Sopenharmony_ci * At least one of <<features-sciSyncFence2, pname:sciSyncFence>> and 7906e5c31af7Sopenharmony_ci <<features-sciSyncSemaphore2, pname:sciSyncSemaphore2>>, and at least 7907e5c31af7Sopenharmony_ci one of <<features-sciSyncImport2, pname:sciSyncImport>> and 7908e5c31af7Sopenharmony_ci <<features-sciSyncExport2, pname:sciSyncExport>>, if the 7909e5c31af7Sopenharmony_ci `apiext:VK_NV_external_sci_sync2` extension is supported. 7910e5c31af7Sopenharmony_ciendif::VK_NV_external_sci_sync2[] 7911e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_sci_buf[] 7912e5c31af7Sopenharmony_ci * At least one of <<features-sciBufImport, pname:sciBufImport>> and 7913e5c31af7Sopenharmony_ci <<features-sciBufExport, pname:sciBufExport>>, if the 7914e5c31af7Sopenharmony_ci `apiext:VK_NV_external_memory_sci_buf` extension is supported. 7915e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_sci_buf[] 7916e5c31af7Sopenharmony_ciifdef::VK_NV_linear_color_attachment[] 7917e5c31af7Sopenharmony_ci * <<features-linearColorAttachment, pname:linearColorAttachment>>, if the 7918e5c31af7Sopenharmony_ci `apiext:VK_NV_linear_color_attachment` extension is supported. 7919e5c31af7Sopenharmony_ciendif::VK_NV_linear_color_attachment[] 7920e5c31af7Sopenharmony_ciifdef::VK_NV_present_barrier[] 7921e5c31af7Sopenharmony_ci * <<features-presentBarrier, pname:presentBarrier>>, if the 7922e5c31af7Sopenharmony_ci `apiext:VK_NV_present_barrier` extension is supported. 7923e5c31af7Sopenharmony_ciendif::VK_NV_present_barrier[] 7924e5c31af7Sopenharmony_ciifdef::VK_EXT_graphics_pipeline_library[] 7925e5c31af7Sopenharmony_ci * <<features-graphicsPipelineLibrary, pname:graphicsPipelineLibrary>>, if 7926e5c31af7Sopenharmony_ci the `apiext:VK_EXT_graphics_pipeline_library` extension is supported. 7927e5c31af7Sopenharmony_ciendif::VK_EXT_graphics_pipeline_library[] 7928e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 7929e5c31af7Sopenharmony_ci * <<features-dynamicRendering, pname:dynamicRendering>>, if 7930e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[Vulkan 1.3 or] 7931e5c31af7Sopenharmony_ci the `apiext:VK_KHR_dynamic_rendering` extension is supported. 7932e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 7933e5c31af7Sopenharmony_ciifdef::VK_EXT_nested_command_buffer[] 7934e5c31af7Sopenharmony_ci * <<features-nestedCommandBuffer, pname:nestedCommandBuffer>>, if the 7935e5c31af7Sopenharmony_ci `apiext:VK_EXT_nested_command_buffer` extension is supported. 7936e5c31af7Sopenharmony_ciendif::VK_EXT_nested_command_buffer[] 7937e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader[] 7938e5c31af7Sopenharmony_ci * <<features-taskShader, pname:taskShader>> and <<features-meshShader, 7939e5c31af7Sopenharmony_ci pname:meshShader>>, if the `apiext:VK_EXT_mesh_shader` extension is 7940e5c31af7Sopenharmony_ci supported. 7941e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader[] 7942e5c31af7Sopenharmony_ciifdef::VK_EXT_mesh_shader+VK_KHR_fragment_shading_rate[] 7943e5c31af7Sopenharmony_ci * <<features-primitiveFragmentShadingRate, 7944e5c31af7Sopenharmony_ci pname:primitiveFragmentShadingRate>> if 7945e5c31af7Sopenharmony_ci <<features-primitiveFragmentShadingRate-mesh, 7946e5c31af7Sopenharmony_ci pname:primitiveFragmentShadingRateMeshShader>> feature is supported. 7947e5c31af7Sopenharmony_ciendif::VK_EXT_mesh_shader+VK_KHR_fragment_shading_rate[] 7948e5c31af7Sopenharmony_ciifdef::VK_EXT_subpass_merge_feedback[] 7949e5c31af7Sopenharmony_ci * <<features-subpassMergeFeedback, pname:subpassMergeFeedback>>, if the 7950e5c31af7Sopenharmony_ci `apiext:VK_EXT_subpass_merge_feedback` extension is supported. 7951e5c31af7Sopenharmony_ciendif::VK_EXT_subpass_merge_feedback[] 7952e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_maintenance1[] 7953e5c31af7Sopenharmony_ci * <<features-rayTracingMaintenance1, pname:rayTracingMaintenance1>>, if 7954e5c31af7Sopenharmony_ci the `apiext:VK_KHR_ray_tracing_maintenance1` extension is supported. 7955e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_maintenance1[] 7956e5c31af7Sopenharmony_ciifdef::VK_KHR_video_maintenance1[] 7957e5c31af7Sopenharmony_ci * <<features-videoMaintenance1, pname:videoMaintenance1>>, if the 7958e5c31af7Sopenharmony_ci `apiext:VK_KHR_video_maintenance1` extension is supported. 7959e5c31af7Sopenharmony_ciendif::VK_KHR_video_maintenance1[] 7960e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[] 7961e5c31af7Sopenharmony_ci * <<features-colorWriteEnable, pname:colorWriteEnable>>, if the 7962e5c31af7Sopenharmony_ci `apiext:VK_EXT_color_write_enable` extension is supported. 7963e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[] 7964e5c31af7Sopenharmony_ciifdef::VK_EXT_multisampled_render_to_single_sampled[] 7965e5c31af7Sopenharmony_ci * <<features-multisampledRenderToSingleSampled, 7966e5c31af7Sopenharmony_ci pname:multisampledRenderToSingleSampled>>, if the 7967e5c31af7Sopenharmony_ci `apiext:VK_EXT_multisampled_render_to_single_sampled` extension is 7968e5c31af7Sopenharmony_ci supported. 7969e5c31af7Sopenharmony_ciendif::VK_EXT_multisampled_render_to_single_sampled[] 7970e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control[] 7971e5c31af7Sopenharmony_ci * <<features-imageCompressionControl, pname:imageCompressionControl>>, if 7972e5c31af7Sopenharmony_ci the `apiext:VK_EXT_image_compression_control` extension is supported. 7973e5c31af7Sopenharmony_ciifdef::VK_EXT_image_compression_control_swapchain[] 7974e5c31af7Sopenharmony_ci * <<features-imageCompressionControlSwapchain, 7975e5c31af7Sopenharmony_ci pname:imageCompressionControlSwapchain>>, if the 7976e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_compression_control_swapchain` extension is 7977e5c31af7Sopenharmony_ci supported. 7978e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control_swapchain[] 7979e5c31af7Sopenharmony_ciendif::VK_EXT_image_compression_control[] 7980e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_early_and_late_fragment_tests[] 7981e5c31af7Sopenharmony_ci * <<features-shaderEarlyAndLateFragmentTests, 7982e5c31af7Sopenharmony_ci pname:shaderEarlyAndLateFragmentTests>>, if the 7983e5c31af7Sopenharmony_ci `apiext:VK_AMD_shader_early_and_late_fragment_tests` extension is 7984e5c31af7Sopenharmony_ci supported. 7985e5c31af7Sopenharmony_ciendif::VK_AMD_shader_early_and_late_fragment_tests[] 7986e5c31af7Sopenharmony_ciifdef::VK_EXT_non_seamless_cube_map[] 7987e5c31af7Sopenharmony_ci * <<features-nonSeamlessCubeMap, pname:nonSeamlessCubeMap>>, if the 7988e5c31af7Sopenharmony_ci `apiext:VK_EXT_non_seamless_cube_map` extension is supported. 7989e5c31af7Sopenharmony_ciendif::VK_EXT_non_seamless_cube_map[] 7990e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_module_identifier[] 7991e5c31af7Sopenharmony_ci * <<features-shaderModuleIdentifier, pname:shaderModuleIdentifier>>, if 7992e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_module_identifier` extension is supported. 7993e5c31af7Sopenharmony_ciendif::VK_EXT_shader_module_identifier[] 7994e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_robustness[] 7995e5c31af7Sopenharmony_ci * <<features-pipelineRobustness, pname:pipelineRobustness>>, if the 7996e5c31af7Sopenharmony_ci `apiext:VK_EXT_pipeline_robustness` extension is supported. 7997e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_robustness[] 7998e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing[] 7999e5c31af7Sopenharmony_ci * <<features-textureSampleWeighted, pname:textureSampleWeighted>>, 8000e5c31af7Sopenharmony_ci <<features-textureBlockMatch, pname:TextureBlockMatch>>, and 8001e5c31af7Sopenharmony_ci <<features-textureBoxFilter, pname:TextureBoxFilter>> if 8002e5c31af7Sopenharmony_ci `apiext:VK_QCOM_image_processing` extension is supported. 8003e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing[] 8004e5c31af7Sopenharmony_ciifdef::VK_QCOM_image_processing2[] 8005e5c31af7Sopenharmony_ci * <<features-textureBlockMatch2, pname:TextureBlockMatch2>> if 8006e5c31af7Sopenharmony_ci `apiext:VK_QCOM_image_processing2` extension is supported. 8007e5c31af7Sopenharmony_ciendif::VK_QCOM_image_processing2[] 8008e5c31af7Sopenharmony_ciifdef::VK_QCOM_tile_properties[] 8009e5c31af7Sopenharmony_ci * <<features-tileProperties, pname:tileProperties>> if 8010e5c31af7Sopenharmony_ci `apiext:VK_QCOM_tile_properties` extension is supported. 8011e5c31af7Sopenharmony_ciendif::VK_QCOM_tile_properties[] 8012e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_layout[] 8013e5c31af7Sopenharmony_ci * <<features-attachmentFeedbackLoopLayout, 8014e5c31af7Sopenharmony_ci pname:attachmentFeedbackLoopLayout>>, if the 8015e5c31af7Sopenharmony_ci `apiext:VK_EXT_attachment_feedback_loop_layout` extension is supported. 8016e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_layout[] 8017e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clamp_zero_one[] 8018e5c31af7Sopenharmony_ci * <<features-depthClampZeroOne, pname:depthClampZeroOne>>, if the 8019e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_clamp_zero_one` extension is supported. 8020e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clamp_zero_one[] 8021e5c31af7Sopenharmony_ciifdef::VK_EXT_device_fault[] 8022e5c31af7Sopenharmony_ci * <<features-deviceFault, pname:deviceFault>>, if the 8023e5c31af7Sopenharmony_ci `apiext:VK_EXT_device_fault` extension is supported. 8024e5c31af7Sopenharmony_ciendif::VK_EXT_device_fault[] 8025e5c31af7Sopenharmony_ciifdef::VK_EXT_device_address_binding_report[] 8026e5c31af7Sopenharmony_ci * <<features-reportAddressBinding, pname:reportAddressBinding>>, if the 8027e5c31af7Sopenharmony_ci `apiext:VK_EXT_device_address_binding_report` extension is supported. 8028e5c31af7Sopenharmony_ciendif::VK_EXT_device_address_binding_report[] 8029e5c31af7Sopenharmony_ciifdef::VK_EXT_opacity_micromap[] 8030e5c31af7Sopenharmony_ci * <<features-micromap, pname:micromap>>, if the 8031e5c31af7Sopenharmony_ci `apiext:VK_EXT_opacity_micromap` extension is supported. 8032e5c31af7Sopenharmony_ciendif::VK_EXT_opacity_micromap[] 8033e5c31af7Sopenharmony_ciifdef::VK_EXT_frame_boundary[] 8034e5c31af7Sopenharmony_ci * <<features-frameBoundary, pname:frameBoundary>>, if the 8035e5c31af7Sopenharmony_ci `apiext:VK_EXT_frame_boundary` extension is supported. 8036e5c31af7Sopenharmony_ciendif::VK_EXT_frame_boundary[] 8037e5c31af7Sopenharmony_ciifdef::VK_NV_displacement_micromap[] 8038e5c31af7Sopenharmony_ci * <<features-displacementMicromap, pname:displacementMicromap>>, if the 8039e5c31af7Sopenharmony_ci `apiext:VK_NV_displacement_micromap` extension is supported. 8040e5c31af7Sopenharmony_ciendif::VK_NV_displacement_micromap[] 8041e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_library_group_handles[] 8042e5c31af7Sopenharmony_ci * <<features-pipelineLibraryGroupHandles, 8043e5c31af7Sopenharmony_ci pname:pipelineLibraryGroupHandles>>, if the 8044e5c31af7Sopenharmony_ci `apiext:VK_EXT_pipeline_library_group_handles` extension is supported. 8045e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_library_group_handles[] 8046e5c31af7Sopenharmony_ciifdef::VK_EXT_swapchain_maintenance1[] 8047e5c31af7Sopenharmony_ci * <<features-swapchainMaintenance1, pname:swapchainMaintenance1>>, if the 8048e5c31af7Sopenharmony_ci `apiext:VK_EXT_swapchain_maintenance1` extension is supported. 8049e5c31af7Sopenharmony_ciendif::VK_EXT_swapchain_maintenance1[] 8050e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state3[] 8051e5c31af7Sopenharmony_ci * <<features-tessellationShader, pname:tessellationShader>>, if the 8052e5c31af7Sopenharmony_ci <<features-extendedDynamicState3TessellationDomainOrigin, 8053e5c31af7Sopenharmony_ci pname:extendedDynamicState3TessellationDomainOrigin>> feature is 8054e5c31af7Sopenharmony_ci supported. 8055e5c31af7Sopenharmony_ci * <<features-depthClamp, pname:depthClamp>>, if the 8056e5c31af7Sopenharmony_ci <<features-extendedDynamicState3DepthClampEnable, 8057e5c31af7Sopenharmony_ci pname:extendedDynamicState3DepthClampEnable>> feature is supported. 8058e5c31af7Sopenharmony_ci * <<features-fillModeNonSolid, pname:fillModeNonSolid>>, if the 8059e5c31af7Sopenharmony_ci <<features-extendedDynamicState3PolygonMode, 8060e5c31af7Sopenharmony_ci pname:extendedDynamicState3PolygonMode>> feature is supported. 8061e5c31af7Sopenharmony_ci * <<features-alphaToOne, pname:alphaToOne>>, if the 8062e5c31af7Sopenharmony_ci <<features-extendedDynamicState3AlphaToOneEnable, 8063e5c31af7Sopenharmony_ci pname:extendedDynamicState3AlphaToOneEnable>> feature is supported. 8064e5c31af7Sopenharmony_ci * <<features-logicOp, pname:logicOp>>, if the 8065e5c31af7Sopenharmony_ci <<features-extendedDynamicState3LogicOpEnable, 8066e5c31af7Sopenharmony_ci pname:extendedDynamicState3LogicOpEnable>> feature is supported. 8067e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 8068e5c31af7Sopenharmony_ci * <<features-geometryStreams, pname:geometryStreams>>, if the 8069e5c31af7Sopenharmony_ci <<features-extendedDynamicState3RasterizationStream, 8070e5c31af7Sopenharmony_ci pname:extendedDynamicState3RasterizationStream>> feature is supported. 8071e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 8072e5c31af7Sopenharmony_ciifdef::VK_EXT_conservative_rasterization[] 8073e5c31af7Sopenharmony_ci * `apiext:VK_EXT_conservative_rasterization` extension, if the 8074e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ConservativeRasterizationMode, 8075e5c31af7Sopenharmony_ci pname:extendedDynamicState3ConservativeRasterizationMode>> feature is 8076e5c31af7Sopenharmony_ci supported. 8077e5c31af7Sopenharmony_ci * `apiext:VK_EXT_conservative_rasterization` extension, if the 8078e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ExtraPrimitiveOverestimationSize, 8079e5c31af7Sopenharmony_ci pname:extendedDynamicState3ExtraPrimitiveOverestimationSize>> feature is 8080e5c31af7Sopenharmony_ci supported. 8081e5c31af7Sopenharmony_ciendif::VK_EXT_conservative_rasterization[] 8082e5c31af7Sopenharmony_ciifdef::VK_EXT_sample_locations[] 8083e5c31af7Sopenharmony_ci * `apiext:VK_EXT_sample_locations` extension, if the 8084e5c31af7Sopenharmony_ci <<features-extendedDynamicState3SampleLocationsEnable, 8085e5c31af7Sopenharmony_ci pname:extendedDynamicState3SampleLocationsEnable>> feature is supported. 8086e5c31af7Sopenharmony_ciendif::VK_EXT_sample_locations[] 8087e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[] 8088e5c31af7Sopenharmony_ci * `apiext:VK_EXT_blend_operation_advanced` extension, if the 8089e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ColorBlendAdvanced, 8090e5c31af7Sopenharmony_ci pname:extendedDynamicState3ColorBlendAdvanced>> feature is supported. 8091e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[] 8092e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[] 8093e5c31af7Sopenharmony_ci * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the 8094e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ProvokingVertexMode, 8095e5c31af7Sopenharmony_ci pname:extendedDynamicState3ProvokingVertexMode>> feature is supported. 8096e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[] 8097e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[] 8098e5c31af7Sopenharmony_ci * `apiext:VK_EXT_line_rasterization` extension, if the 8099e5c31af7Sopenharmony_ci <<features-extendedDynamicState3LineRasterizationMode, 8100e5c31af7Sopenharmony_ci pname:extendedDynamicState3LineRasterizationMode>> feature is supported. 8101e5c31af7Sopenharmony_ci * `apiext:VK_EXT_line_rasterization` extension, if the 8102e5c31af7Sopenharmony_ci <<features-extendedDynamicState3LineStippleEnable, 8103e5c31af7Sopenharmony_ci pname:extendedDynamicState3LineStippleEnable>> feature is supported. 8104e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[] 8105e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[] 8106e5c31af7Sopenharmony_ci * <<features-depthClipControl, pname:depthClipControl>>, if the 8107e5c31af7Sopenharmony_ci <<features-extendedDynamicState3DepthClipNegativeOneToOne, 8108e5c31af7Sopenharmony_ci pname:extendedDynamicState3DepthClipNegativeOneToOne>> feature is 8109e5c31af7Sopenharmony_ci supported. 8110e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[] 8111e5c31af7Sopenharmony_ciifdef::VK_NV_clip_space_w_scaling[] 8112e5c31af7Sopenharmony_ci * `apiext:VK_NV_clip_space_w_scaling` extension, if the 8113e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ViewportWScalingEnable, 8114e5c31af7Sopenharmony_ci pname:extendedDynamicState3ViewportWScalingEnable>> feature is 8115e5c31af7Sopenharmony_ci supported. 8116e5c31af7Sopenharmony_ciendif::VK_NV_clip_space_w_scaling[] 8117e5c31af7Sopenharmony_ciifdef::VK_NV_viewport_swizzle[] 8118e5c31af7Sopenharmony_ci * `apiext:VK_NV_viewport_swizzle` extension, if the 8119e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ViewportSwizzle, 8120e5c31af7Sopenharmony_ci pname:extendedDynamicState3ViewportSwizzle>> feature is supported. 8121e5c31af7Sopenharmony_ciendif::VK_NV_viewport_swizzle[] 8122e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_coverage_to_color[] 8123e5c31af7Sopenharmony_ci * `apiext:VK_NV_fragment_coverage_to_color` extension, if the 8124e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageToColorEnable, 8125e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageToColorEnable>> feature is supported. 8126e5c31af7Sopenharmony_ci * `apiext:VK_NV_fragment_coverage_to_color` extension, if the 8127e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageToColorLocation, 8128e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageToColorLocation>> feature is 8129e5c31af7Sopenharmony_ci supported. 8130e5c31af7Sopenharmony_ciendif::VK_NV_fragment_coverage_to_color[] 8131e5c31af7Sopenharmony_ciifdef::VK_NV_framebuffer_mixed_samples[] 8132e5c31af7Sopenharmony_ci * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the 8133e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageModulationMode, 8134e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationMode>> feature is 8135e5c31af7Sopenharmony_ci supported. 8136e5c31af7Sopenharmony_ci * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the 8137e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageModulationTableEnable, 8138e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationTableEnable>> feature is 8139e5c31af7Sopenharmony_ci supported. 8140e5c31af7Sopenharmony_ci * `apiext:VK_NV_framebuffer_mixed_samples` extension, if the 8141e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageModulationTable, 8142e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageModulationTable>> feature is 8143e5c31af7Sopenharmony_ci supported. 8144e5c31af7Sopenharmony_ciendif::VK_NV_framebuffer_mixed_samples[] 8145e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[] 8146e5c31af7Sopenharmony_ci * <<features-coverageReductionMode, pname:coverageReductionMode>>, if the 8147e5c31af7Sopenharmony_ci <<features-extendedDynamicState3CoverageReductionMode, 8148e5c31af7Sopenharmony_ci pname:extendedDynamicState3CoverageReductionMode>> feature is supported. 8149e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[] 8150e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[] 8151e5c31af7Sopenharmony_ci * <<features-representativeFragmentTest, 8152e5c31af7Sopenharmony_ci pname:representativeFragmentTest>>, if the 8153e5c31af7Sopenharmony_ci <<features-extendedDynamicState3RepresentativeFragmentTestEnable, 8154e5c31af7Sopenharmony_ci pname:extendedDynamicState3RepresentativeFragmentTestEnable>> feature is 8155e5c31af7Sopenharmony_ci supported. 8156e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[] 8157e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[] 8158e5c31af7Sopenharmony_ci * <<features-shadingRateImage, pname:shadingRateImage>>, if the 8159e5c31af7Sopenharmony_ci <<features-extendedDynamicState3ShadingRateImageEnable, 8160e5c31af7Sopenharmony_ci pname:extendedDynamicState3ShadingRateImageEnable>> feature is 8161e5c31af7Sopenharmony_ci supported. 8162e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[] 8163e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state3[] 8164e5c31af7Sopenharmony_ciifdef::VK_QCOM_multiview_per_view_viewports[] 8165e5c31af7Sopenharmony_ci * <<features-multiview-per-view-viewports, 8166e5c31af7Sopenharmony_ci pname:multiviewPerViewViewports>>, if the 8167e5c31af7Sopenharmony_ci `apiext:VK_QCOM_multiview_per_view_viewports` extension is supported. 8168e5c31af7Sopenharmony_ciendif::VK_QCOM_multiview_per_view_viewports[] 8169e5c31af7Sopenharmony_ciifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 8170e5c31af7Sopenharmony_ci * <<features-attachmentFeedbackLoopDynamicState, 8171e5c31af7Sopenharmony_ci pname:attachmentFeedbackLoopDynamicState>>, if the 8172e5c31af7Sopenharmony_ci `apiext:VK_EXT_attachment_feedback_loop_dynamic_state` extension is 8173e5c31af7Sopenharmony_ci supported. 8174e5c31af7Sopenharmony_ciendif::VK_EXT_attachment_feedback_loop_dynamic_state[] 8175e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_position_fetch[] 8176e5c31af7Sopenharmony_ci * <<features-rayTracingPositionFetch, pname:rayTracingPositionFetch>>, if 8177e5c31af7Sopenharmony_ci the `apiext:VK_KHR_ray_tracing_position_fetch` extension is supported. 8178e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_position_fetch[] 8179e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_object[] 8180e5c31af7Sopenharmony_ci * <<features-shaderObject, pname:shaderObject>>, if the 8181e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_object` extension is supported. 8182e5c31af7Sopenharmony_ciendif::VK_EXT_shader_object[] 8183e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_tile_image[] 8184e5c31af7Sopenharmony_ci * <<features-shaderTileImageColorReadAccess, 8185e5c31af7Sopenharmony_ci pname:shaderTileImageColorReadAccess>>, if the 8186e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_tile_image` extension is supported. 8187e5c31af7Sopenharmony_ciendif::VK_EXT_shader_tile_image[] 8188e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_bias_control[] 8189e5c31af7Sopenharmony_ci * <<features-depthBiasControl, pname:depthBiasControl>>, if the 8190e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_bias_control` extension is supported. 8191e5c31af7Sopenharmony_ciendif::VK_EXT_depth_bias_control[] 8192e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands_compute[] 8193e5c31af7Sopenharmony_ci * <<features-deviceGeneratedCompute, pname:deviceGeneratedCompute>>, if 8194e5c31af7Sopenharmony_ci the `apiext:VK_NV_device_generated_commands_compute` extension is 8195e5c31af7Sopenharmony_ci supported. 8196e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands_compute[] 8197e5c31af7Sopenharmony_ciifdef::VK_AMDX_shader_enqueue[] 8198e5c31af7Sopenharmony_ci * <<features-shaderEnqueue, pname:shaderEnqueue>> if the 8199e5c31af7Sopenharmony_ci `apiext:VK_AMDX_shader_enqueue` extension is supported. 8200e5c31af7Sopenharmony_ciendif::VK_AMDX_shader_enqueue[] 8201e5c31af7Sopenharmony_ciifdef::VK_KHR_cooperative_matrix[] 8202e5c31af7Sopenharmony_ci * <<features-cooperativeMatrix, pname:cooperativeMatrix>> if the 8203e5c31af7Sopenharmony_ci `apiext:VK_KHR_cooperative_matrix` extension is supported. 8204e5c31af7Sopenharmony_ciendif::VK_KHR_cooperative_matrix[] 8205e5c31af7Sopenharmony_ciifdef::VK_QCOM_ycbcr_degamma[] 8206e5c31af7Sopenharmony_ci * <<features-ycbcr-degamma,pname:ycbcrDegamma>>, if the 8207e5c31af7Sopenharmony_ci `apiext:VK_QCOM_ycbcr_degamma` extension is supported. 8208e5c31af7Sopenharmony_ciendif::VK_QCOM_ycbcr_degamma[] 8209e5c31af7Sopenharmony_ciifdef::VK_NV_descriptor_pool_overallocation[] 8210e5c31af7Sopenharmony_ci * <<features-descriptorPoolOverallocation,pname:descriptorPoolOverallocation>>, 8211e5c31af7Sopenharmony_ci if the `apiext:VK_NV_descriptor_pool_overallocation` extension is 8212e5c31af7Sopenharmony_ci supported. 8213e5c31af7Sopenharmony_ciendif::VK_NV_descriptor_pool_overallocation[] 8214e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_format_resolve[] 8215e5c31af7Sopenharmony_ci * <<features-externalFormatResolve, pname:externalFormatResolve>>, if the 8216e5c31af7Sopenharmony_ci `apiext:VK_ANDROID_external_format_resolve` extension is supported. 8217e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_format_resolve[] 8218e5c31af7Sopenharmony_ciifdef::VK_NV_extended_sparse_address_space[] 8219e5c31af7Sopenharmony_ci * <<features-extendedSparseAddressSpace, 8220e5c31af7Sopenharmony_ci pname:extendedSparseAddressSpace>>, if the 8221e5c31af7Sopenharmony_ci `apiext:VK_NV_extended_sparse_address_space` extension is supported. 8222e5c31af7Sopenharmony_ciendif::VK_NV_extended_sparse_address_space[] 8223e5c31af7Sopenharmony_ciifdef::VK_ARM_scheduling_controls[] 8224e5c31af7Sopenharmony_ci * <<features-schedulingControls,pname:schedulingControls>>, if the 8225e5c31af7Sopenharmony_ci `apiext:VK_ARM_scheduling_controls` extension is supported. 8226e5c31af7Sopenharmony_ciendif::VK_ARM_scheduling_controls[] 8227e5c31af7Sopenharmony_ciifdef::VK_IMG_relaxed_line_rasterization[] 8228e5c31af7Sopenharmony_ci * <<features-relaxedLineRasterization,pname:relaxedLineRasterization>>, if 8229e5c31af7Sopenharmony_ci the `apiext:VK_IMG_relaxed_line_rasterization` extension is supported. 8230e5c31af7Sopenharmony_ciendif::VK_IMG_relaxed_line_rasterization[] 8231e5c31af7Sopenharmony_ciifdef::VK_ARM_render_pass_striped[] 8232e5c31af7Sopenharmony_ci * <<features-renderPassStriped,pname:renderPassStriped>>, if the 8233e5c31af7Sopenharmony_ci `apiext:VK_ARM_render_pass_striped` extension is supported. 8234e5c31af7Sopenharmony_ciendif::VK_ARM_render_pass_striped[] 8235e5c31af7Sopenharmony_ciifdef::VK_NV_per_stage_descriptor_set[] 8236e5c31af7Sopenharmony_ci * <<features-perStageDescriptorSet,pname:perStageDescriptorSet>>, if the 8237e5c31af7Sopenharmony_ci `apiext:VK_NV_per_stage_descriptor_set` extension is supported. 8238e5c31af7Sopenharmony_ciendif::VK_NV_per_stage_descriptor_set[] 8239e5c31af7Sopenharmony_ci 8240e5c31af7Sopenharmony_ciAll other features defined in the Specification are optional:. 8241e5c31af7Sopenharmony_ci 8242e5c31af7Sopenharmony_ci 8243e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_3[] 8244e5c31af7Sopenharmony_ci[[profile-features]] 8245e5c31af7Sopenharmony_ci== Profile Features 8246e5c31af7Sopenharmony_ci 8247e5c31af7Sopenharmony_ci 8248e5c31af7Sopenharmony_ci[[profile-features-roadmap-2022]] 8249e5c31af7Sopenharmony_ci=== Roadmap 2022 8250e5c31af7Sopenharmony_ci 8251e5c31af7Sopenharmony_ciImplementations that claim support for the <<roadmap-2022, Roadmap 2022>> 8252e5c31af7Sopenharmony_ciprofile must: support the following features: 8253e5c31af7Sopenharmony_ci 8254e5c31af7Sopenharmony_ci * <<features-fullDrawIndexUint32, pname:fullDrawIndexUint32>> 8255e5c31af7Sopenharmony_ci * <<features-imageCubeArray, pname:imageCubeArray>> 8256e5c31af7Sopenharmony_ci * <<features-independentBlend, pname:independentBlend>> 8257e5c31af7Sopenharmony_ci * <<features-sampleRateShading, pname:sampleRateShading>> 8258e5c31af7Sopenharmony_ci * <<features-drawIndirectFirstInstance, pname:drawIndirectFirstInstance>> 8259e5c31af7Sopenharmony_ci * <<features-depthClamp, pname:depthClamp>> 8260e5c31af7Sopenharmony_ci * <<features-depthBiasClamp, pname:depthBiasClamp>> 8261e5c31af7Sopenharmony_ci * <<features-samplerAnisotropy, pname:samplerAnisotropy>> 8262e5c31af7Sopenharmony_ci * <<features-occlusionQueryPrecise, pname:occlusionQueryPrecise>> 8263e5c31af7Sopenharmony_ci * <<features-fragmentStoresAndAtomics, pname:fragmentStoresAndAtomics>> 8264e5c31af7Sopenharmony_ci * <<features-shaderStorageImageExtendedFormats, 8265e5c31af7Sopenharmony_ci pname:shaderStorageImageExtendedFormats>> 8266e5c31af7Sopenharmony_ci * <<features-shaderUniformBufferArrayDynamicIndexing, 8267e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayDynamicIndexing>> 8268e5c31af7Sopenharmony_ci * <<features-shaderSampledImageArrayDynamicIndexing, 8269e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayDynamicIndexing>> 8270e5c31af7Sopenharmony_ci * <<features-shaderStorageBufferArrayDynamicIndexing, 8271e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayDynamicIndexing>> 8272e5c31af7Sopenharmony_ci * <<features-shaderStorageImageArrayDynamicIndexing, 8273e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayDynamicIndexing>> 8274e5c31af7Sopenharmony_ci * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>> 8275e5c31af7Sopenharmony_ci * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>> 8276e5c31af7Sopenharmony_ci * <<features-descriptorIndexing, pname:descriptorIndexing>> 8277e5c31af7Sopenharmony_ci * <<features-shaderUniformTexelBufferArrayDynamicIndexing, 8278e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayDynamicIndexing>> 8279e5c31af7Sopenharmony_ci * <<features-shaderStorageTexelBufferArrayDynamicIndexing, 8280e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayDynamicIndexing>> 8281e5c31af7Sopenharmony_ci * <<features-shaderUniformBufferArrayNonUniformIndexing, 8282e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayNonUniformIndexing>> 8283e5c31af7Sopenharmony_ci * <<features-shaderSampledImageArrayNonUniformIndexing, 8284e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayNonUniformIndexing>> 8285e5c31af7Sopenharmony_ci * <<features-shaderStorageBufferArrayNonUniformIndexing, 8286e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayNonUniformIndexing>> 8287e5c31af7Sopenharmony_ci * <<features-shaderStorageImageArrayNonUniformIndexing, 8288e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayNonUniformIndexing>> 8289e5c31af7Sopenharmony_ci * <<features-shaderUniformTexelBufferArrayNonUniformIndexing, 8290e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayNonUniformIndexing>> 8291e5c31af7Sopenharmony_ci * <<features-shaderStorageTexelBufferArrayNonUniformIndexing, 8292e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayNonUniformIndexing>> 8293e5c31af7Sopenharmony_ci * <<features-descriptorBindingSampledImageUpdateAfterBind, 8294e5c31af7Sopenharmony_ci pname:descriptorBindingSampledImageUpdateAfterBind>> 8295e5c31af7Sopenharmony_ci * <<features-descriptorBindingStorageImageUpdateAfterBind, 8296e5c31af7Sopenharmony_ci pname:descriptorBindingStorageImageUpdateAfterBind>> 8297e5c31af7Sopenharmony_ci * <<features-descriptorBindingStorageBufferUpdateAfterBind, 8298e5c31af7Sopenharmony_ci pname:descriptorBindingStorageBufferUpdateAfterBind>> 8299e5c31af7Sopenharmony_ci * <<features-descriptorBindingUniformTexelBufferUpdateAfterBind, 8300e5c31af7Sopenharmony_ci pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> 8301e5c31af7Sopenharmony_ci * <<features-descriptorBindingStorageTexelBufferUpdateAfterBind, 8302e5c31af7Sopenharmony_ci pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> 8303e5c31af7Sopenharmony_ci * <<features-descriptorBindingUpdateUnusedWhilePending, 8304e5c31af7Sopenharmony_ci pname:descriptorBindingUpdateUnusedWhilePending>> 8305e5c31af7Sopenharmony_ci * <<features-descriptorBindingPartiallyBound, 8306e5c31af7Sopenharmony_ci pname:descriptorBindingPartiallyBound>> 8307e5c31af7Sopenharmony_ci * <<features-descriptorBindingVariableDescriptorCount, 8308e5c31af7Sopenharmony_ci pname:descriptorBindingVariableDescriptorCount>> 8309e5c31af7Sopenharmony_ci * <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>> 8310e5c31af7Sopenharmony_ci * <<features-scalarBlockLayout, pname:scalarBlockLayout>> 8311e5c31af7Sopenharmony_ciendif::VK_VERSION_1_3[] 8312