1e5c31af7Sopenharmony_ci// Copyright 2015-2021 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[width="100%",options="header"] 63e5c31af7Sopenharmony_ci|==== 64e5c31af7Sopenharmony_ci| Extension | Feature(s) 65e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 66e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[] 67e5c31af7Sopenharmony_ci| `apiext:VK_KHR_shader_draw_parameters` | <<features-shaderDrawParameters,pname:shaderDrawParameters>> 68e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[] 69e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[] 70e5c31af7Sopenharmony_ci| `apiext:VK_KHR_draw_indirect_count` | <<features-drawIndirectCount,pname:drawIndirectCount>> 71e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[] 72e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_mirror_clamp_to_edge[] 73e5c31af7Sopenharmony_ci| `apiext:VK_KHR_sampler_mirror_clamp_to_edge` | <<features-samplerMirrorClampToEdge,pname:samplerMirrorClampToEdge>> 74e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_mirror_clamp_to_edge[] 75e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[] 76e5c31af7Sopenharmony_ci| `apiext:VK_EXT_descriptor_indexing` | <<features-descriptorIndexing,pname:descriptorIndexing>> 77e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[] 78e5c31af7Sopenharmony_ciifdef::VK_EXT_sampler_filter_minmax[] 79e5c31af7Sopenharmony_ci| `apiext:VK_EXT_sampler_filter_minmax` | <<features-samplerFilterMinmax,pname:samplerFilterMinmax>> 80e5c31af7Sopenharmony_ciendif::VK_EXT_sampler_filter_minmax[] 81e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_viewport_index_layer[] 82e5c31af7Sopenharmony_ci| `apiext:VK_EXT_shader_viewport_index_layer` | <<features-shaderOutputViewportIndex,pname:shaderOutputViewportIndex>>, <<features-shaderOutputLayer,pname:shaderOutputLayer>> 83e5c31af7Sopenharmony_ciendif::VK_EXT_shader_viewport_index_layer[] 84e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 85e5c31af7Sopenharmony_ci|==== 86e5c31af7Sopenharmony_ci 87e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures',desc='Reports capabilities of a physical device',type='protos'] 88e5c31af7Sopenharmony_ci-- 89e5c31af7Sopenharmony_ciTo query supported features, call: 90e5c31af7Sopenharmony_ci 91e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures.txt[] 92e5c31af7Sopenharmony_ci 93e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 94e5c31af7Sopenharmony_ci supported features. 95e5c31af7Sopenharmony_ci * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures 96e5c31af7Sopenharmony_ci structure in which the physical device features are returned. 97e5c31af7Sopenharmony_ci For each feature, a value of ename:VK_TRUE specifies that the feature is 98e5c31af7Sopenharmony_ci supported on this physical device, and ename:VK_FALSE specifies that the 99e5c31af7Sopenharmony_ci feature is not supported. 100e5c31af7Sopenharmony_ci 101e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures.txt[] 102e5c31af7Sopenharmony_ci-- 103e5c31af7Sopenharmony_ci 104e5c31af7Sopenharmony_ciFine-grained features used by a logical device must: be enabled at 105e5c31af7Sopenharmony_cisname:VkDevice creation time. 106e5c31af7Sopenharmony_ciIf a feature is enabled that the physical device does not support, 107e5c31af7Sopenharmony_cisname:VkDevice creation will fail and return 108e5c31af7Sopenharmony_ciename:VK_ERROR_FEATURE_NOT_PRESENT. 109e5c31af7Sopenharmony_ci 110e5c31af7Sopenharmony_ciThe fine-grained features are enabled by passing a pointer to the 111e5c31af7Sopenharmony_cisname:VkPhysicalDeviceFeatures structure via the pname:pEnabledFeatures 112e5c31af7Sopenharmony_cimember of the slink:VkDeviceCreateInfo structure that is passed into the 113e5c31af7Sopenharmony_cifname:vkCreateDevice call. 114e5c31af7Sopenharmony_ciIf a member of pname:pEnabledFeatures is set to ename:VK_TRUE or 115e5c31af7Sopenharmony_ciename:VK_FALSE, then the device will be created with the indicated feature 116e5c31af7Sopenharmony_cienabled or disabled, respectively. 117e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 118e5c31af7Sopenharmony_ciFeatures can: also be enabled by using the slink:VkPhysicalDeviceFeatures2 119e5c31af7Sopenharmony_cistructure. 120e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 121e5c31af7Sopenharmony_ci 122e5c31af7Sopenharmony_ciIf an application wishes to enable all features supported by a device, it 123e5c31af7Sopenharmony_cican: simply pass in the sname:VkPhysicalDeviceFeatures structure that was 124e5c31af7Sopenharmony_cipreviously returned by fname:vkGetPhysicalDeviceFeatures. 125e5c31af7Sopenharmony_ciTo disable an individual feature, the application can: set the desired 126e5c31af7Sopenharmony_cimember to ename:VK_FALSE in the same structure. 127e5c31af7Sopenharmony_ciSetting pname:pEnabledFeatures to `NULL` 128e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 129e5c31af7Sopenharmony_ciand not including a slink:VkPhysicalDeviceFeatures2 in the pname:pNext chain 130e5c31af7Sopenharmony_ciof slink:VkDeviceCreateInfo 131e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 132e5c31af7Sopenharmony_ciis equivalent to setting all members of the structure to ename:VK_FALSE. 133e5c31af7Sopenharmony_ci 134e5c31af7Sopenharmony_ci[NOTE] 135e5c31af7Sopenharmony_ci.Note 136e5c31af7Sopenharmony_ci==== 137e5c31af7Sopenharmony_ciSome features, such as pname:robustBufferAccess, may: incur a runtime 138e5c31af7Sopenharmony_ciperformance cost. 139e5c31af7Sopenharmony_ciApplication writers should: carefully consider the implications of enabling 140e5c31af7Sopenharmony_ciall supported features. 141e5c31af7Sopenharmony_ci==== 142e5c31af7Sopenharmony_ci 143e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 144e5c31af7Sopenharmony_ci[open,refpage='vkGetPhysicalDeviceFeatures2',desc='Reports capabilities of a physical device',type='protos'] 145e5c31af7Sopenharmony_ci-- 146e5c31af7Sopenharmony_ciTo query supported features defined by the core or extensions, call: 147e5c31af7Sopenharmony_ci 148e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 149e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2.txt[] 150e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 151e5c31af7Sopenharmony_ci 152e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1+VK_KHR_get_physical_device_properties2[or the equivalent command] 153e5c31af7Sopenharmony_ci 154e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 155e5c31af7Sopenharmony_ciinclude::{generated}/api/protos/vkGetPhysicalDeviceFeatures2KHR.txt[] 156e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 157e5c31af7Sopenharmony_ci 158e5c31af7Sopenharmony_ci * pname:physicalDevice is the physical device from which to query the 159e5c31af7Sopenharmony_ci supported features. 160e5c31af7Sopenharmony_ci * pname:pFeatures is a pointer to a slink:VkPhysicalDeviceFeatures2 161e5c31af7Sopenharmony_ci structure in which the physical device features are returned. 162e5c31af7Sopenharmony_ci 163e5c31af7Sopenharmony_ciEach structure in pname:pFeatures and its pname:pNext chain contains members 164e5c31af7Sopenharmony_cicorresponding to fine-grained features. 165e5c31af7Sopenharmony_cifname:vkGetPhysicalDeviceFeatures2 writes each member to a boolean value 166e5c31af7Sopenharmony_ciindicating whether that feature is supported. 167e5c31af7Sopenharmony_ci 168e5c31af7Sopenharmony_ciinclude::{generated}/validity/protos/vkGetPhysicalDeviceFeatures2.txt[] 169e5c31af7Sopenharmony_ci-- 170e5c31af7Sopenharmony_ci 171e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures2',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs'] 172e5c31af7Sopenharmony_ci-- 173e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures2 structure is defined as: 174e5c31af7Sopenharmony_ci 175e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2.txt[] 176e5c31af7Sopenharmony_ci 177e5c31af7Sopenharmony_ciifdef::VK_KHR_get_physical_device_properties2[] 178e5c31af7Sopenharmony_cior the equivalent 179e5c31af7Sopenharmony_ci 180e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures2KHR.txt[] 181e5c31af7Sopenharmony_ciendif::VK_KHR_get_physical_device_properties2[] 182e5c31af7Sopenharmony_ci 183e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 184e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 185e5c31af7Sopenharmony_ci structure. 186e5c31af7Sopenharmony_ci * pname:features is a slink:VkPhysicalDeviceFeatures structure describing 187e5c31af7Sopenharmony_ci the fine-grained features of the Vulkan 1.0 API. 188e5c31af7Sopenharmony_ci 189e5c31af7Sopenharmony_ciThe pname:pNext chain of this structure is used to extend the structure with 190e5c31af7Sopenharmony_cifeatures defined by extensions. 191e5c31af7Sopenharmony_ciThis structure can: be used in flink:vkGetPhysicalDeviceFeatures2 or can: be 192e5c31af7Sopenharmony_ciincluded in the pname:pNext chain of a slink:VkDeviceCreateInfo structure, 193e5c31af7Sopenharmony_ciin which case it controls which features are enabled in the device in lieu 194e5c31af7Sopenharmony_ciof pname:pEnabledFeatures. 195e5c31af7Sopenharmony_ci 196e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures2.txt[] 197e5c31af7Sopenharmony_ci-- 198e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] 199e5c31af7Sopenharmony_ci 200e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFeatures',desc='Structure describing the fine-grained features that can be supported by an implementation',type='structs'] 201e5c31af7Sopenharmony_ci-- 202e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFeatures structure is defined as: 203e5c31af7Sopenharmony_ci 204e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFeatures.txt[] 205e5c31af7Sopenharmony_ci 206e5c31af7Sopenharmony_ciThis structure describes the following features: 207e5c31af7Sopenharmony_ci 208e5c31af7Sopenharmony_ci * [[features-robustBufferAccess]] pname:robustBufferAccess specifies that 209e5c31af7Sopenharmony_ci accesses to buffers are bounds-checked against the range of the buffer 210e5c31af7Sopenharmony_ci descriptor (as determined by sname:VkDescriptorBufferInfo::pname:range, 211e5c31af7Sopenharmony_ci slink:VkBufferViewCreateInfo::pname:range, or the size of the buffer). 212e5c31af7Sopenharmony_ci Out of bounds accesses must: not cause application termination, and the 213e5c31af7Sopenharmony_ci effects of shader loads, stores, and atomics must: conform to an 214e5c31af7Sopenharmony_ci implementation-dependent behavior as described below. 215e5c31af7Sopenharmony_ci ** A buffer access is considered to be out of bounds if any of the 216e5c31af7Sopenharmony_ci following are true: 217e5c31af7Sopenharmony_ci *** The pointer was formed by code:OpImageTexelPointer and the coordinate 218e5c31af7Sopenharmony_ci is less than zero or greater than or equal to the number of whole 219e5c31af7Sopenharmony_ci elements in the bound range. 220e5c31af7Sopenharmony_ci *** The pointer was not formed by code:OpImageTexelPointer and the object 221e5c31af7Sopenharmony_ci pointed to is not wholly contained within the bound range. 222e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] 223e5c31af7Sopenharmony_ci This includes accesses performed via _variable pointers_ where the 224e5c31af7Sopenharmony_ci buffer descriptor being accessed cannot be statically determined. 225e5c31af7Sopenharmony_ci Uninitialized pointers and pointers equal to code:OpConstantNull are 226e5c31af7Sopenharmony_ci treated as pointing to a zero-sized object, so all accesses through 227e5c31af7Sopenharmony_ci such pointers are considered to be out of bounds. 228e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[] 229e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 230e5c31af7Sopenharmony_ci Buffer accesses through buffer device addresses are not 231e5c31af7Sopenharmony_ci bounds-checked. 232e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 233e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[] 234e5c31af7Sopenharmony_ci If the 235e5c31af7Sopenharmony_ci <<features-cooperativeMatrixRobustBufferAccess,pname:cooperativeMatrixRobustBufferAccess>> 236e5c31af7Sopenharmony_ci feature is not enabled, then accesses using 237e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV 238e5c31af7Sopenharmony_ci may: not be bounds-checked. 239e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[] 240e5c31af7Sopenharmony_ci+ 241e5c31af7Sopenharmony_ci[NOTE] 242e5c31af7Sopenharmony_ci.Note 243e5c31af7Sopenharmony_ci==== 244e5c31af7Sopenharmony_ciIf a SPIR-V code:OpLoad instruction loads a structure and the tail end of 245e5c31af7Sopenharmony_cithe structure is out of bounds, then all members of the structure are 246e5c31af7Sopenharmony_ciconsidered out of bounds even if the members at the end are not statically 247e5c31af7Sopenharmony_ciused. 248e5c31af7Sopenharmony_ci==== 249e5c31af7Sopenharmony_ci 250e5c31af7Sopenharmony_ci *** If 251e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 252e5c31af7Sopenharmony_ci <<features-robustBufferAccess2,pname:robustBufferAccess2>> is not 253e5c31af7Sopenharmony_ci enabled and 254e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 255e5c31af7Sopenharmony_ci any buffer access is determined to be out of bounds, then any other 256e5c31af7Sopenharmony_ci access of the same type (load, store, or atomic) to the same buffer 257e5c31af7Sopenharmony_ci that accesses an address less than 16 bytes away from the out of 258e5c31af7Sopenharmony_ci bounds address may: also be considered out of bounds. 259e5c31af7Sopenharmony_ci *** If the access is a load that reads from the same memory locations as a 260e5c31af7Sopenharmony_ci prior store in the same shader invocation, with no other intervening 261e5c31af7Sopenharmony_ci accesses to the same memory locations in that shader invocation, then 262e5c31af7Sopenharmony_ci the result of the load may: be the value stored by the store 263e5c31af7Sopenharmony_ci instruction, even if the access is out of bounds. 264e5c31af7Sopenharmony_ci If the load is code:Volatile, then an out of bounds load must: return 265e5c31af7Sopenharmony_ci the appropriate out of bounds value. 266e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 267e5c31af7Sopenharmony_ci ** Accesses to descriptors written with a dlink:VK_NULL_HANDLE resource or 268e5c31af7Sopenharmony_ci view are not considered to be out of bounds. 269e5c31af7Sopenharmony_ci Instead, each type of descriptor access defines a specific behavior for 270e5c31af7Sopenharmony_ci accesses to a null descriptor. 271e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 272e5c31af7Sopenharmony_ci ** Out-of-bounds buffer loads will return any of the following values: 273e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 274e5c31af7Sopenharmony_ci *** If the access is to a uniform buffer and 275e5c31af7Sopenharmony_ci <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled, 276e5c31af7Sopenharmony_ci loads of offsets between the end of the descriptor range and the end 277e5c31af7Sopenharmony_ci of the descriptor range rounded up to a multiple of 278e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>> 279e5c31af7Sopenharmony_ci bytes must: return either zero values or the contents of the memory at 280e5c31af7Sopenharmony_ci the offset being loaded. 281e5c31af7Sopenharmony_ci Loads of offsets past the descriptor range rounded up to a multiple of 282e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>> 283e5c31af7Sopenharmony_ci bytes must: return zero values. 284e5c31af7Sopenharmony_ci *** If the access is to a storage buffer and 285e5c31af7Sopenharmony_ci <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled, 286e5c31af7Sopenharmony_ci loads of offsets between the end of the descriptor range and the end 287e5c31af7Sopenharmony_ci of the descriptor range rounded up to a multiple of 288e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>> 289e5c31af7Sopenharmony_ci bytes must: return either zero values or the contents of the memory at 290e5c31af7Sopenharmony_ci the offset being loaded. 291e5c31af7Sopenharmony_ci Loads of offsets past the descriptor range rounded up to a multiple of 292e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>> 293e5c31af7Sopenharmony_ci bytes must: return zero values. 294e5c31af7Sopenharmony_ci Similarly, stores to addresses between the end of the descriptor range 295e5c31af7Sopenharmony_ci and the end of the descriptor range rounded up to a multiple of 296e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>> 297e5c31af7Sopenharmony_ci bytes may: be discarded. 298e5c31af7Sopenharmony_ci *** Non-atomic accesses to storage buffers that are a multiple of 32 bits 299e5c31af7Sopenharmony_ci may: be decomposed into 32-bit accesses that are individually 300e5c31af7Sopenharmony_ci bounds-checked. 301e5c31af7Sopenharmony_ci *** If the access is to an index buffer and 302e5c31af7Sopenharmony_ci <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled, 303e5c31af7Sopenharmony_ci zero values must: be returned. 304e5c31af7Sopenharmony_ci *** If the access is to a uniform texel buffer or storage texel buffer and 305e5c31af7Sopenharmony_ci <<features-robustBufferAccess2,pname:robustBufferAccess2>> is enabled, 306e5c31af7Sopenharmony_ci zero values must: be returned, and then 307e5c31af7Sopenharmony_ci <<textures-conversion-to-rgba,Conversion to RGBA>> is applied based on 308e5c31af7Sopenharmony_ci the buffer view's format. 309e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 310e5c31af7Sopenharmony_ci *** Values from anywhere within the memory range(s) bound to the buffer 311e5c31af7Sopenharmony_ci (possibly including bytes of memory past the end of the buffer, up to 312e5c31af7Sopenharmony_ci the end of the bound range). 313e5c31af7Sopenharmony_ci *** Zero values, or [eq]#(0,0,0,x)# vectors for vector reads where x is a 314e5c31af7Sopenharmony_ci valid value represented in the type of the vector components and may: 315e5c31af7Sopenharmony_ci be any of: 316e5c31af7Sopenharmony_ci **** 0, 1, or the maximum representable positive integer value, for signed 317e5c31af7Sopenharmony_ci or unsigned integer components 318e5c31af7Sopenharmony_ci **** 0.0 or 1.0, for floating-point components 319e5c31af7Sopenharmony_ci ** Out-of-bounds writes may: modify values within the memory range(s) 320e5c31af7Sopenharmony_ci bound to the buffer, but must: not modify any other memory. 321e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 322e5c31af7Sopenharmony_ci *** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is 323e5c31af7Sopenharmony_ci enabled, out of bounds writes must: not modify any memory. 324e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 325e5c31af7Sopenharmony_ci ** Out-of-bounds atomics may: modify values within the memory range(s) 326e5c31af7Sopenharmony_ci bound to the buffer, but must: not modify any other memory, and return 327e5c31af7Sopenharmony_ci an undefined: value. 328e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 329e5c31af7Sopenharmony_ci *** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is 330e5c31af7Sopenharmony_ci enabled, out of bounds atomics must: not modify any memory, and return 331e5c31af7Sopenharmony_ci an undefined: value. 332e5c31af7Sopenharmony_ci ** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is 333e5c31af7Sopenharmony_ci disabled, vertex 334e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 335e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[] 336e5c31af7Sopenharmony_ci ** Vertex 337e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 338e5c31af7Sopenharmony_ci input attributes are considered out of bounds if the offset of the 339e5c31af7Sopenharmony_ci attribute in the bound vertex buffer range plus the size of the 340e5c31af7Sopenharmony_ci attribute is greater than either: 341e5c31af7Sopenharmony_ci+ 342e5c31af7Sopenharmony_ci *** code:vertexBufferRangeSize, if [eq]#code:bindingStride == 0#; or 343e5c31af7Sopenharmony_ci *** [eq]#(code:vertexBufferRangeSize - (code:vertexBufferRangeSize % 344e5c31af7Sopenharmony_ci code:bindingStride))# 345e5c31af7Sopenharmony_ci+ 346e5c31af7Sopenharmony_ciwhere code:vertexBufferRangeSize is the byte size of the memory range bound 347e5c31af7Sopenharmony_cito the vertex buffer binding and code:bindingStride is the byte stride of 348e5c31af7Sopenharmony_cithe corresponding vertex input binding. 349e5c31af7Sopenharmony_ciFurther, if any vertex input attribute using a specific vertex input binding 350e5c31af7Sopenharmony_ciis out of bounds, then all vertex input attributes using that vertex input 351e5c31af7Sopenharmony_cibinding for that vertex shader invocation are considered out of bounds. 352e5c31af7Sopenharmony_ci *** If a vertex input attribute is out of bounds, it will be assigned one 353e5c31af7Sopenharmony_ci of the following values: 354e5c31af7Sopenharmony_ci **** Values from anywhere within the memory range(s) bound to the buffer, 355e5c31af7Sopenharmony_ci converted according to the format of the attribute. 356e5c31af7Sopenharmony_ci **** Zero values, format converted according to the format of the 357e5c31af7Sopenharmony_ci attribute. 358e5c31af7Sopenharmony_ci **** Zero values, or [eq]#(0,0,0,x)# vectors, as described above. 359e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 360e5c31af7Sopenharmony_ci ** If <<features-robustBufferAccess2,pname:robustBufferAccess2>> is 361e5c31af7Sopenharmony_ci enabled, vertex input attributes are considered out of bounds if the 362e5c31af7Sopenharmony_ci offset of the attribute in the bound vertex buffer range plus the size 363e5c31af7Sopenharmony_ci of the attribute is greater than the byte size of the memory range 364e5c31af7Sopenharmony_ci bound to the vertex buffer binding. 365e5c31af7Sopenharmony_ci *** If a vertex input attribute is out of bounds, the 366e5c31af7Sopenharmony_ci <<fxvertex-input-extraction,raw data>> extracted are zero values, and 367e5c31af7Sopenharmony_ci missing G, B, or A components are <<fxvertex-input-extraction,filled 368e5c31af7Sopenharmony_ci with [eq]#(0,0,1)#>>. 369e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 370e5c31af7Sopenharmony_ci ** If pname:robustBufferAccess is not enabled, applications must: not 371e5c31af7Sopenharmony_ci perform out of bounds accesses. 372e5c31af7Sopenharmony_ci * [[features-fullDrawIndexUint32]] pname:fullDrawIndexUint32 specifies the 373e5c31af7Sopenharmony_ci full 32-bit range of indices is supported for indexed draw calls when 374e5c31af7Sopenharmony_ci using a elink:VkIndexType of ename:VK_INDEX_TYPE_UINT32. 375e5c31af7Sopenharmony_ci pname:maxDrawIndexedIndexValue is the maximum index value that may: be 376e5c31af7Sopenharmony_ci used (aside from the primitive restart index, which is always 2^32^-1 377e5c31af7Sopenharmony_ci when the elink:VkIndexType is ename:VK_INDEX_TYPE_UINT32). 378e5c31af7Sopenharmony_ci If this feature is supported, pname:maxDrawIndexedIndexValue must: be 379e5c31af7Sopenharmony_ci 2^32^-1; otherwise it must: be no smaller than 2^24^-1. 380e5c31af7Sopenharmony_ci See <<limits-maxDrawIndexedIndexValue,maxDrawIndexedIndexValue>>. 381e5c31af7Sopenharmony_ci * [[features-imageCubeArray]] pname:imageCubeArray specifies whether image 382e5c31af7Sopenharmony_ci views with a elink:VkImageViewType of 383e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY can: be created, and that the 384e5c31af7Sopenharmony_ci corresponding code:SampledCubeArray and code:ImageCubeArray SPIR-V 385e5c31af7Sopenharmony_ci capabilities can: be used in shader code. 386e5c31af7Sopenharmony_ci * [[features-independentBlend]] pname:independentBlend specifies whether 387e5c31af7Sopenharmony_ci the sname:VkPipelineColorBlendAttachmentState settings are controlled 388e5c31af7Sopenharmony_ci independently per-attachment. 389e5c31af7Sopenharmony_ci If this feature is not enabled, the 390e5c31af7Sopenharmony_ci sname:VkPipelineColorBlendAttachmentState settings for all color 391e5c31af7Sopenharmony_ci attachments must: be identical. 392e5c31af7Sopenharmony_ci Otherwise, a different sname:VkPipelineColorBlendAttachmentState can: be 393e5c31af7Sopenharmony_ci provided for each bound color attachment. 394e5c31af7Sopenharmony_ci * [[features-geometryShader]] pname:geometryShader specifies whether 395e5c31af7Sopenharmony_ci geometry shaders are supported. 396e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_SHADER_STAGE_GEOMETRY_BIT 397e5c31af7Sopenharmony_ci and ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must: not be 398e5c31af7Sopenharmony_ci used. 399e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 400e5c31af7Sopenharmony_ci code:Geometry capability. 401e5c31af7Sopenharmony_ci * [[features-tessellationShader]] pname:tessellationShader specifies 402e5c31af7Sopenharmony_ci whether tessellation control and evaluation shaders are supported. 403e5c31af7Sopenharmony_ci If this feature is not enabled, the 404e5c31af7Sopenharmony_ci ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, 405e5c31af7Sopenharmony_ci ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, 406e5c31af7Sopenharmony_ci ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, 407e5c31af7Sopenharmony_ci ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and 408e5c31af7Sopenharmony_ci ename:VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum 409e5c31af7Sopenharmony_ci values must: not be used. 410e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 411e5c31af7Sopenharmony_ci code:Tessellation capability. 412e5c31af7Sopenharmony_ci * [[features-sampleRateShading]] pname:sampleRateShading specifies whether 413e5c31af7Sopenharmony_ci <<primsrast-sampleshading,Sample Shading>> and multisample interpolation 414e5c31af7Sopenharmony_ci are supported. 415e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:sampleShadingEnable member of 416e5c31af7Sopenharmony_ci the slink:VkPipelineMultisampleStateCreateInfo structure must: be set to 417e5c31af7Sopenharmony_ci ename:VK_FALSE and the pname:minSampleShading member is ignored. 418e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 419e5c31af7Sopenharmony_ci code:SampleRateShading capability. 420e5c31af7Sopenharmony_ci * [[features-dualSrcBlend]] pname:dualSrcBlend specifies whether blend 421e5c31af7Sopenharmony_ci operations which take two sources are supported. 422e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_BLEND_FACTOR_SRC1_COLOR, 423e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, 424e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_SRC1_ALPHA, and 425e5c31af7Sopenharmony_ci ename:VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must: not be used 426e5c31af7Sopenharmony_ci as source or destination blending factors. 427e5c31af7Sopenharmony_ci See <<framebuffer-dsb>>. 428e5c31af7Sopenharmony_ci * [[features-logicOp]] pname:logicOp specifies whether logic operations 429e5c31af7Sopenharmony_ci are supported. 430e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:logicOpEnable member of the 431e5c31af7Sopenharmony_ci slink:VkPipelineColorBlendStateCreateInfo structure must: be set to 432e5c31af7Sopenharmony_ci ename:VK_FALSE, and the pname:logicOp member is ignored. 433e5c31af7Sopenharmony_ci * [[features-multiDrawIndirect]] pname:multiDrawIndirect specifies whether 434e5c31af7Sopenharmony_ci multiple draw indirect is supported. 435e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:drawCount parameter to the 436e5c31af7Sopenharmony_ci fname:vkCmdDrawIndirect and fname:vkCmdDrawIndexedIndirect commands 437e5c31af7Sopenharmony_ci must: be 0 or 1. 438e5c31af7Sopenharmony_ci The pname:maxDrawIndirectCount member of the 439e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceLimits structure must: also be 1 if this feature 440e5c31af7Sopenharmony_ci is not supported. 441e5c31af7Sopenharmony_ci See <<limits-maxDrawIndirectCount,maxDrawIndirectCount>>. 442e5c31af7Sopenharmony_ci * [[features-drawIndirectFirstInstance]] pname:drawIndirectFirstInstance 443e5c31af7Sopenharmony_ci specifies whether indirect drawing calls support the pname:firstInstance 444e5c31af7Sopenharmony_ci parameter. 445e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:firstInstance member of all 446e5c31af7Sopenharmony_ci sname:VkDrawIndirectCommand and sname:VkDrawIndexedIndirectCommand 447e5c31af7Sopenharmony_ci structures that are provided to the fname:vkCmdDrawIndirect and 448e5c31af7Sopenharmony_ci fname:vkCmdDrawIndexedIndirect commands must: be 0. 449e5c31af7Sopenharmony_ci * [[features-depthClamp]] pname:depthClamp specifies whether depth 450e5c31af7Sopenharmony_ci clamping is supported. 451e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthClampEnable member of the 452e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 453e5c31af7Sopenharmony_ci ename:VK_FALSE. 454e5c31af7Sopenharmony_ci Otherwise, setting pname:depthClampEnable to ename:VK_TRUE will enable 455e5c31af7Sopenharmony_ci depth clamping. 456e5c31af7Sopenharmony_ci * [[features-depthBiasClamp]] pname:depthBiasClamp specifies whether depth 457e5c31af7Sopenharmony_ci bias clamping is supported. 458e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthBiasClamp member of the 459e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 460e5c31af7Sopenharmony_ci 0.0 unless the ename:VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state is 461e5c31af7Sopenharmony_ci enabled, and the pname:depthBiasClamp parameter to 462e5c31af7Sopenharmony_ci fname:vkCmdSetDepthBias must: be set to 0.0. 463e5c31af7Sopenharmony_ci * [[features-fillModeNonSolid]] pname:fillModeNonSolid specifies whether 464e5c31af7Sopenharmony_ci point and wireframe fill modes are supported. 465e5c31af7Sopenharmony_ci If this feature is not enabled, the ename:VK_POLYGON_MODE_POINT and 466e5c31af7Sopenharmony_ci ename:VK_POLYGON_MODE_LINE enum values must: not be used. 467e5c31af7Sopenharmony_ci * [[features-depthBounds]] pname:depthBounds specifies whether depth 468e5c31af7Sopenharmony_ci bounds tests are supported. 469e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:depthBoundsTestEnable member 470e5c31af7Sopenharmony_ci of the slink:VkPipelineDepthStencilStateCreateInfo structure must: be 471e5c31af7Sopenharmony_ci set to ename:VK_FALSE. 472e5c31af7Sopenharmony_ci When pname:depthBoundsTestEnable is set to ename:VK_FALSE, the 473e5c31af7Sopenharmony_ci pname:minDepthBounds and pname:maxDepthBounds members of the 474e5c31af7Sopenharmony_ci slink:VkPipelineDepthStencilStateCreateInfo structure are ignored. 475e5c31af7Sopenharmony_ci * [[features-wideLines]] pname:wideLines specifies whether lines with 476e5c31af7Sopenharmony_ci width other than 1.0 are supported. 477e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:lineWidth member of the 478e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo structure must: be set to 479e5c31af7Sopenharmony_ci 1.0 unless the ename:VK_DYNAMIC_STATE_LINE_WIDTH dynamic state is 480e5c31af7Sopenharmony_ci enabled, and the pname:lineWidth parameter to fname:vkCmdSetLineWidth 481e5c31af7Sopenharmony_ci must: be set to 1.0. 482e5c31af7Sopenharmony_ci When this feature is supported, the range and granularity of supported 483e5c31af7Sopenharmony_ci line widths are indicated by the pname:lineWidthRange and 484e5c31af7Sopenharmony_ci pname:lineWidthGranularity members of the sname:VkPhysicalDeviceLimits 485e5c31af7Sopenharmony_ci structure, respectively. 486e5c31af7Sopenharmony_ci * [[features-largePoints]] pname:largePoints specifies whether points with 487e5c31af7Sopenharmony_ci size greater than 1.0 are supported. 488e5c31af7Sopenharmony_ci If this feature is not enabled, only a point size of 1.0 written by a 489e5c31af7Sopenharmony_ci shader is supported. 490e5c31af7Sopenharmony_ci The range and granularity of supported point sizes are indicated by the 491e5c31af7Sopenharmony_ci pname:pointSizeRange and pname:pointSizeGranularity members of the 492e5c31af7Sopenharmony_ci sname:VkPhysicalDeviceLimits structure, respectively. 493e5c31af7Sopenharmony_ci * [[features-alphaToOne]] pname:alphaToOne specifies whether the 494e5c31af7Sopenharmony_ci implementation is able to replace the alpha value of the fragment shader 495e5c31af7Sopenharmony_ci color output in the <<fragops-covg, Multisample Coverage>> fragment 496e5c31af7Sopenharmony_ci operation. 497e5c31af7Sopenharmony_ci If this feature is not enabled, then the pname:alphaToOneEnable member 498e5c31af7Sopenharmony_ci of the slink:VkPipelineMultisampleStateCreateInfo structure must: be set 499e5c31af7Sopenharmony_ci to ename:VK_FALSE. 500e5c31af7Sopenharmony_ci Otherwise setting pname:alphaToOneEnable to ename:VK_TRUE will enable 501e5c31af7Sopenharmony_ci alpha-to-one behavior. 502e5c31af7Sopenharmony_ci * [[features-multiViewport]] pname:multiViewport specifies whether more 503e5c31af7Sopenharmony_ci than one viewport is supported. 504e5c31af7Sopenharmony_ci If this feature is not enabled: 505e5c31af7Sopenharmony_ci ** The pname:viewportCount and pname:scissorCount members of the 506e5c31af7Sopenharmony_ci slink:VkPipelineViewportStateCreateInfo structure must: be set to 1. 507e5c31af7Sopenharmony_ci ** The pname:firstViewport and pname:viewportCount parameters to the 508e5c31af7Sopenharmony_ci fname:vkCmdSetViewport command must: be set to 0 and 1, respectively. 509e5c31af7Sopenharmony_ci ** The pname:firstScissor and pname:scissorCount parameters to the 510e5c31af7Sopenharmony_ci fname:vkCmdSetScissor command must: be set to 0 and 1, respectively. 511e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[] 512e5c31af7Sopenharmony_ci ** The pname:exclusiveScissorCount member of the 513e5c31af7Sopenharmony_ci slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV structure 514e5c31af7Sopenharmony_ci must: be set to 0 or 1. 515e5c31af7Sopenharmony_ci ** The pname:firstExclusiveScissor and pname:exclusiveScissorCount 516e5c31af7Sopenharmony_ci parameters to the fname:vkCmdSetExclusiveScissorNV command must: be set 517e5c31af7Sopenharmony_ci to 0 and 1, respectively. 518e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[] 519e5c31af7Sopenharmony_ci * [[features-samplerAnisotropy]] pname:samplerAnisotropy specifies whether 520e5c31af7Sopenharmony_ci anisotropic filtering is supported. 521e5c31af7Sopenharmony_ci If this feature is not enabled, the pname:anisotropyEnable member of the 522e5c31af7Sopenharmony_ci slink:VkSamplerCreateInfo structure must: be ename:VK_FALSE. 523e5c31af7Sopenharmony_ci * [[features-textureCompressionETC2]] pname:textureCompressionETC2 524e5c31af7Sopenharmony_ci specifies whether all of the ETC2 and EAC compressed texture formats are 525e5c31af7Sopenharmony_ci supported. 526e5c31af7Sopenharmony_ci If this feature is enabled, then the 527e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 528e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 529e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 530e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 531e5c31af7Sopenharmony_ci+ 532e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK 533e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK 534e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK 535e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK 536e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK 537e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK 538e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11_UNORM_BLOCK 539e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11_SNORM_BLOCK 540e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK 541e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK 542e5c31af7Sopenharmony_ci+ 543e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 544e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 545e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 546e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 547e5c31af7Sopenharmony_ci 548e5c31af7Sopenharmony_ci * [[features-textureCompressionASTC_LDR]] pname:textureCompressionASTC_LDR 549e5c31af7Sopenharmony_ci specifies whether all of the ASTC LDR compressed texture formats are 550e5c31af7Sopenharmony_ci supported. 551e5c31af7Sopenharmony_ci If this feature is enabled, then the 552e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 553e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 554e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 555e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 556e5c31af7Sopenharmony_ci+ 557e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK 558e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK 559e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK 560e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK 561e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK 562e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK 563e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK 564e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK 565e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK 566e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK 567e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK 568e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK 569e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK 570e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK 571e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK 572e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK 573e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK 574e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK 575e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK 576e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK 577e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK 578e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK 579e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK 580e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK 581e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK 582e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK 583e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK 584e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK 585e5c31af7Sopenharmony_ci+ 586e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 587e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 588e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 589e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 590e5c31af7Sopenharmony_ci 591e5c31af7Sopenharmony_ci * [[features-textureCompressionBC]] pname:textureCompressionBC specifies 592e5c31af7Sopenharmony_ci whether all of the BC compressed texture formats are supported. 593e5c31af7Sopenharmony_ci If this feature is enabled, then the 594e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 595e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 596e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 597e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 598e5c31af7Sopenharmony_ci+ 599e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK 600e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK 601e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK 602e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK 603e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC2_UNORM_BLOCK 604e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC2_SRGB_BLOCK 605e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC3_UNORM_BLOCK 606e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC3_SRGB_BLOCK 607e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC4_UNORM_BLOCK 608e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC4_SNORM_BLOCK 609e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC5_UNORM_BLOCK 610e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC5_SNORM_BLOCK 611e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC6H_UFLOAT_BLOCK 612e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC6H_SFLOAT_BLOCK 613e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC7_UNORM_BLOCK 614e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_BC7_SRGB_BLOCK 615e5c31af7Sopenharmony_ci+ 616e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 617e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 618e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 619e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 620e5c31af7Sopenharmony_ci 621e5c31af7Sopenharmony_ci * [[features-occlusionQueryPrecise]] pname:occlusionQueryPrecise specifies 622e5c31af7Sopenharmony_ci whether occlusion queries returning actual sample counts are supported. 623e5c31af7Sopenharmony_ci Occlusion queries are created in a sname:VkQueryPool by specifying the 624e5c31af7Sopenharmony_ci pname:queryType of ename:VK_QUERY_TYPE_OCCLUSION in the 625e5c31af7Sopenharmony_ci slink:VkQueryPoolCreateInfo structure which is passed to 626e5c31af7Sopenharmony_ci fname:vkCreateQueryPool. 627e5c31af7Sopenharmony_ci If this feature is enabled, queries of this type can: enable 628e5c31af7Sopenharmony_ci ename:VK_QUERY_CONTROL_PRECISE_BIT in the pname:flags parameter to 629e5c31af7Sopenharmony_ci fname:vkCmdBeginQuery. 630e5c31af7Sopenharmony_ci If this feature is not supported, the implementation supports only 631e5c31af7Sopenharmony_ci boolean occlusion queries. 632e5c31af7Sopenharmony_ci When any samples are passed, boolean queries will return a non-zero 633e5c31af7Sopenharmony_ci result value, otherwise a result value of zero is returned. 634e5c31af7Sopenharmony_ci When this feature is enabled and ename:VK_QUERY_CONTROL_PRECISE_BIT is 635e5c31af7Sopenharmony_ci set, occlusion queries will report the actual number of samples passed. 636e5c31af7Sopenharmony_ci * [[features-pipelineStatisticsQuery]] pname:pipelineStatisticsQuery 637e5c31af7Sopenharmony_ci specifies whether the pipeline statistics queries are supported. 638e5c31af7Sopenharmony_ci If this feature is not enabled, queries of type 639e5c31af7Sopenharmony_ci ename:VK_QUERY_TYPE_PIPELINE_STATISTICS cannot: be created, and none of 640e5c31af7Sopenharmony_ci the elink:VkQueryPipelineStatisticFlagBits bits can: be set in the 641e5c31af7Sopenharmony_ci pname:pipelineStatistics member of the slink:VkQueryPoolCreateInfo 642e5c31af7Sopenharmony_ci structure. 643e5c31af7Sopenharmony_ci * [[features-vertexPipelineStoresAndAtomics]] 644e5c31af7Sopenharmony_ci pname:vertexPipelineStoresAndAtomics specifies whether storage buffers 645e5c31af7Sopenharmony_ci and images support stores and atomic operations in the vertex, 646e5c31af7Sopenharmony_ci tessellation, and geometry shader stages. 647e5c31af7Sopenharmony_ci If this feature is not enabled, all storage image, storage texel buffer, 648e5c31af7Sopenharmony_ci and storage buffer variables used by these stages in shader modules 649e5c31af7Sopenharmony_ci must: be decorated with the code:NonWritable decoration (or the 650e5c31af7Sopenharmony_ci code:readonly memory qualifier in GLSL). 651e5c31af7Sopenharmony_ci * [[features-fragmentStoresAndAtomics]] pname:fragmentStoresAndAtomics 652e5c31af7Sopenharmony_ci specifies whether storage buffers and images support stores and atomic 653e5c31af7Sopenharmony_ci operations in the fragment shader stage. 654e5c31af7Sopenharmony_ci If this feature is not enabled, all storage image, storage texel buffer, 655e5c31af7Sopenharmony_ci and storage buffer variables used by the fragment stage in shader 656e5c31af7Sopenharmony_ci modules must: be decorated with the code:NonWritable decoration (or the 657e5c31af7Sopenharmony_ci code:readonly memory qualifier in GLSL). 658e5c31af7Sopenharmony_ci * [[features-shaderTessellationAndGeometryPointSize]] 659e5c31af7Sopenharmony_ci pname:shaderTessellationAndGeometryPointSize specifies whether the 660e5c31af7Sopenharmony_ci code:PointSize built-in decoration is available in the tessellation 661e5c31af7Sopenharmony_ci control, tessellation evaluation, and geometry shader stages. 662e5c31af7Sopenharmony_ci If this feature is not enabled, members decorated with the 663e5c31af7Sopenharmony_ci code:PointSize built-in decoration must: not be read from or written to 664e5c31af7Sopenharmony_ci and all points written from a tessellation or geometry shader will have 665e5c31af7Sopenharmony_ci a size of 1.0. 666e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 667e5c31af7Sopenharmony_ci code:TessellationPointSize capability for tessellation control and 668e5c31af7Sopenharmony_ci evaluation shaders, or if the shader modules can: declare the 669e5c31af7Sopenharmony_ci code:GeometryPointSize capability for geometry shaders. 670e5c31af7Sopenharmony_ci An implementation supporting this feature must: also support one or both 671e5c31af7Sopenharmony_ci of the <<features-tessellationShader,pname:tessellationShader>> or 672e5c31af7Sopenharmony_ci <<features-geometryShader,pname:geometryShader>> features. 673e5c31af7Sopenharmony_ci * [[features-shaderImageGatherExtended]] pname:shaderImageGatherExtended 674e5c31af7Sopenharmony_ci specifies whether the extended set of image gather instructions are 675e5c31af7Sopenharmony_ci available in shader code. 676e5c31af7Sopenharmony_ci If this feature is not enabled, the code:OpImage*Gather instructions do 677e5c31af7Sopenharmony_ci not support the code:Offset and code:ConstOffsets operands. 678e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 679e5c31af7Sopenharmony_ci code:ImageGatherExtended capability. 680e5c31af7Sopenharmony_ci * [[features-shaderStorageImageExtendedFormats]] 681e5c31af7Sopenharmony_ci pname:shaderStorageImageExtendedFormats specifies whether all the 682e5c31af7Sopenharmony_ci "`storage image extended formats`" below are supported; if this feature 683e5c31af7Sopenharmony_ci is supported, then the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT must: 684e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 685e5c31af7Sopenharmony_ci+ 686e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SFLOAT 687e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_B10G11R11_UFLOAT_PACK32 688e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SFLOAT 689e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16B16A16_UNORM 690e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_A2B10G10R10_UNORM_PACK32 691e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_UNORM 692e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_UNORM 693e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_UNORM 694e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_UNORM 695e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16B16A16_SNORM 696e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SNORM 697e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_SNORM 698e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SNORM 699e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_SNORM 700e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_SINT 701e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_SINT 702e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_SINT 703e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_SINT 704e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_A2B10G10R10_UINT_PACK32 705e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16G16_UINT 706e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8G8_UINT 707e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R16_UINT 708e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_R8_UINT 709e5c31af7Sopenharmony_ci+ 710e5c31af7Sopenharmony_ci[NOTE] 711e5c31af7Sopenharmony_ci.Note 712e5c31af7Sopenharmony_ci==== 713e5c31af7Sopenharmony_cipname:shaderStorageImageExtendedFormats feature only adds a guarantee of 714e5c31af7Sopenharmony_ciformat support, which is specified for the whole physical device. 715e5c31af7Sopenharmony_ciTherefore enabling or disabling the feature via flink:vkCreateDevice has no 716e5c31af7Sopenharmony_cipractical effect. 717e5c31af7Sopenharmony_ci 718e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not supported, 719e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 720e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 721e5c31af7Sopenharmony_cisupported properties of individual formats, as usual rules allow. 722e5c31af7Sopenharmony_ci 723e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_UINT, ename:VK_FORMAT_R32G32_SINT, and 724e5c31af7Sopenharmony_ciename:VK_FORMAT_R32G32_SFLOAT from code:StorageImageExtendedFormats SPIR-V 725e5c31af7Sopenharmony_cicapability, are already covered by core Vulkan 726e5c31af7Sopenharmony_ci<<formats-mandatory-features-32bit,mandatory format support>>. 727e5c31af7Sopenharmony_ci==== 728e5c31af7Sopenharmony_ci 729e5c31af7Sopenharmony_ci * [[features-shaderStorageImageMultisample]] 730e5c31af7Sopenharmony_ci pname:shaderStorageImageMultisample specifies whether multisampled 731e5c31af7Sopenharmony_ci storage images are supported. 732e5c31af7Sopenharmony_ci If this feature is not enabled, images that are created with a 733e5c31af7Sopenharmony_ci pname:usage that includes ename:VK_IMAGE_USAGE_STORAGE_BIT must: be 734e5c31af7Sopenharmony_ci created with pname:samples equal to ename:VK_SAMPLE_COUNT_1_BIT. 735e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 736e5c31af7Sopenharmony_ci code:StorageImageMultisample and code:ImageMSArray capabilities. 737e5c31af7Sopenharmony_ci * [[features-shaderStorageImageReadWithoutFormat]] 738e5c31af7Sopenharmony_ci pname:shaderStorageImageReadWithoutFormat specifies whether storage 739e5c31af7Sopenharmony_ci images require a format qualifier to be specified when reading. 740e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[] 741e5c31af7Sopenharmony_ci pname:shaderStorageImageReadWithoutFormat applies only to formats listed 742e5c31af7Sopenharmony_ci in the <<formats-without-shader-storage-format,storage without format>> 743e5c31af7Sopenharmony_ci list. 744e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[] 745e5c31af7Sopenharmony_ci * [[features-shaderStorageImageWriteWithoutFormat]] 746e5c31af7Sopenharmony_ci pname:shaderStorageImageWriteWithoutFormat specifies whether storage 747e5c31af7Sopenharmony_ci images require a format qualifier to be specified when writing. 748e5c31af7Sopenharmony_ciifdef::VK_KHR_format_feature_flags2[] 749e5c31af7Sopenharmony_ci pname:shaderStorageImageWriteWithoutFormat applies only to formats 750e5c31af7Sopenharmony_ci listed in the <<formats-without-shader-storage-format,storage without 751e5c31af7Sopenharmony_ci format>> list. 752e5c31af7Sopenharmony_ciendif::VK_KHR_format_feature_flags2[] 753e5c31af7Sopenharmony_ci * [[features-shaderUniformBufferArrayDynamicIndexing]] 754e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayDynamicIndexing specifies whether arrays 755e5c31af7Sopenharmony_ci of uniform buffers can: be indexed by _dynamically uniform_ integer 756e5c31af7Sopenharmony_ci expressions in shader code. 757e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 758e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or 759e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: be indexed only by 760e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 761e5c31af7Sopenharmony_ci code. 762e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 763e5c31af7Sopenharmony_ci code:UniformBufferArrayDynamicIndexing capability. 764e5c31af7Sopenharmony_ci * [[features-shaderSampledImageArrayDynamicIndexing]] 765e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayDynamicIndexing specifies whether arrays of 766e5c31af7Sopenharmony_ci samplers or sampled images can: be indexed by dynamically uniform 767e5c31af7Sopenharmony_ci integer expressions in shader code. 768e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 769e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 770e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 771e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: be indexed only by constant 772e5c31af7Sopenharmony_ci integral expressions when aggregated into arrays in shader code. 773e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 774e5c31af7Sopenharmony_ci code:SampledImageArrayDynamicIndexing capability. 775e5c31af7Sopenharmony_ci * [[features-shaderStorageBufferArrayDynamicIndexing]] 776e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayDynamicIndexing specifies whether arrays 777e5c31af7Sopenharmony_ci of storage buffers can: be indexed by dynamically uniform integer 778e5c31af7Sopenharmony_ci expressions in shader code. 779e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 780e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or 781e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: be indexed only by 782e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 783e5c31af7Sopenharmony_ci code. 784e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 785e5c31af7Sopenharmony_ci code:StorageBufferArrayDynamicIndexing capability. 786e5c31af7Sopenharmony_ci * [[features-shaderStorageImageArrayDynamicIndexing]] 787e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayDynamicIndexing specifies whether arrays of 788e5c31af7Sopenharmony_ci storage images can: be indexed by dynamically uniform integer 789e5c31af7Sopenharmony_ci expressions in shader code. 790e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 791e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_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:StorageImageArrayDynamicIndexing capability. 795e5c31af7Sopenharmony_ci * [[features-shaderClipDistance]] pname:shaderClipDistance specifies 796e5c31af7Sopenharmony_ci whether clip distances are supported in shader code. 797e5c31af7Sopenharmony_ci If this feature is not enabled, any members decorated with the 798e5c31af7Sopenharmony_ci code:ClipDistance built-in decoration must: not be read from or written 799e5c31af7Sopenharmony_ci to in shader modules. 800e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 801e5c31af7Sopenharmony_ci code:ClipDistance capability. 802e5c31af7Sopenharmony_ci * [[features-shaderCullDistance]] pname:shaderCullDistance specifies 803e5c31af7Sopenharmony_ci whether cull distances are supported in shader code. 804e5c31af7Sopenharmony_ci If this feature is not enabled, any members decorated with the 805e5c31af7Sopenharmony_ci code:CullDistance built-in decoration must: not be read from or written 806e5c31af7Sopenharmony_ci to in shader modules. 807e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 808e5c31af7Sopenharmony_ci code:CullDistance capability. 809e5c31af7Sopenharmony_ci * [[features-shaderFloat64]] pname:shaderFloat64 specifies whether 64-bit 810e5c31af7Sopenharmony_ci floats (doubles) are supported in shader code. 811e5c31af7Sopenharmony_ci If this feature is not enabled, 64-bit floating-point types must: not be 812e5c31af7Sopenharmony_ci used in shader code. 813e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Float64 814e5c31af7Sopenharmony_ci capability. 815e5c31af7Sopenharmony_ci Declaring and using 64-bit floats is enabled for all storage classes 816e5c31af7Sopenharmony_ci that SPIR-V allows with the code:Float64 capability. 817e5c31af7Sopenharmony_ci * [[features-shaderInt64]] pname:shaderInt64 specifies whether 64-bit 818e5c31af7Sopenharmony_ci integers (signed and unsigned) are supported in shader code. 819e5c31af7Sopenharmony_ci If this feature is not enabled, 64-bit integer types must: not be used 820e5c31af7Sopenharmony_ci in shader code. 821e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Int64 822e5c31af7Sopenharmony_ci capability. 823e5c31af7Sopenharmony_ci Declaring and using 64-bit integers is enabled for all storage classes 824e5c31af7Sopenharmony_ci that SPIR-V allows with the code:Int64 capability. 825e5c31af7Sopenharmony_ci * [[features-shaderInt16]] pname:shaderInt16 specifies whether 16-bit 826e5c31af7Sopenharmony_ci integers (signed and unsigned) are supported in shader code. 827e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer types must: not be used 828e5c31af7Sopenharmony_ci in shader code. 829e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:Int16 830e5c31af7Sopenharmony_ci capability. 831e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 832e5c31af7Sopenharmony_ci allows for the code:Int16 SPIR-V capability: Declaring and using 16-bit 833e5c31af7Sopenharmony_ci integers in the code:Private, 834e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 835e5c31af7Sopenharmony_ci code:Workgroup, 836e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 837e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 838e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 839e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 840e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 841e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 842e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 843e5c31af7Sopenharmony_ci not enabled. 844e5c31af7Sopenharmony_ci * [[features-shaderResourceResidency]] pname:shaderResourceResidency 845e5c31af7Sopenharmony_ci specifies whether image operations that return resource residency 846e5c31af7Sopenharmony_ci information are supported in shader code. 847e5c31af7Sopenharmony_ci If this feature is not enabled, the code:OpImageSparse* instructions 848e5c31af7Sopenharmony_ci must: not be used in shader code. 849e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 850e5c31af7Sopenharmony_ci code:SparseResidency capability. 851e5c31af7Sopenharmony_ci The feature requires at least one of the ptext:sparseResidency* features 852e5c31af7Sopenharmony_ci to be supported. 853e5c31af7Sopenharmony_ci * [[features-shaderResourceMinLod]] pname:shaderResourceMinLod specifies 854e5c31af7Sopenharmony_ci whether image operations specifying the minimum resource LOD are 855e5c31af7Sopenharmony_ci supported in shader code. 856e5c31af7Sopenharmony_ci If this feature is not enabled, the code:MinLod image operand must: not 857e5c31af7Sopenharmony_ci be used in shader code. 858e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the code:MinLod 859e5c31af7Sopenharmony_ci capability. 860e5c31af7Sopenharmony_ci * [[features-sparseBinding]] pname:sparseBinding specifies whether 861e5c31af7Sopenharmony_ci resource memory can: be managed at opaque sparse block level instead of 862e5c31af7Sopenharmony_ci at the object level. 863e5c31af7Sopenharmony_ci If this feature is not enabled, resource memory must: be bound only on a 864e5c31af7Sopenharmony_ci per-object basis using the fname:vkBindBufferMemory and 865e5c31af7Sopenharmony_ci fname:vkBindImageMemory commands. 866e5c31af7Sopenharmony_ci In this case, buffers and images must: not be created with 867e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and 868e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in the pname:flags member 869e5c31af7Sopenharmony_ci of the slink:VkBufferCreateInfo and slink:VkImageCreateInfo structures, 870e5c31af7Sopenharmony_ci respectively. 871e5c31af7Sopenharmony_ci Otherwise resource memory can: be managed as described in 872e5c31af7Sopenharmony_ci <<sparsememory-sparseresourcefeatures,Sparse Resource Features>>. 873e5c31af7Sopenharmony_ci * [[features-sparseResidencyBuffer]] pname:sparseResidencyBuffer specifies 874e5c31af7Sopenharmony_ci whether the device can: access partially resident buffers. 875e5c31af7Sopenharmony_ci If this feature is not enabled, buffers must: not be created with 876e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags 877e5c31af7Sopenharmony_ci member of the slink:VkBufferCreateInfo structure. 878e5c31af7Sopenharmony_ci * [[features-sparseResidencyImage2D]] pname:sparseResidencyImage2D 879e5c31af7Sopenharmony_ci specifies whether the device can: access partially resident 2D images 880e5c31af7Sopenharmony_ci with 1 sample per pixel. 881e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 882e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 883e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_1_BIT must: not be created with 884e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 885e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 886e5c31af7Sopenharmony_ci * [[features-sparseResidencyImage3D]] pname:sparseResidencyImage3D 887e5c31af7Sopenharmony_ci specifies whether the device can: access partially resident 3D images. 888e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 889e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_3D must: not be created with 890e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 891e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 892e5c31af7Sopenharmony_ci * [[features-sparseResidency2Samples]] pname:sparseResidency2Samples 893e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 894e5c31af7Sopenharmony_ci images with 2 samples per pixel. 895e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 896e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 897e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_2_BIT must: not be created with 898e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 899e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 900e5c31af7Sopenharmony_ci * [[features-sparseResidency4Samples]] pname:sparseResidency4Samples 901e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 902e5c31af7Sopenharmony_ci images with 4 samples per pixel. 903e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 904e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 905e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_4_BIT must: not be created with 906e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 907e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 908e5c31af7Sopenharmony_ci * [[features-sparseResidency8Samples]] pname:sparseResidency8Samples 909e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 910e5c31af7Sopenharmony_ci images with 8 samples per pixel. 911e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 912e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 913e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_8_BIT 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_ci * [[features-sparseResidency16Samples]] pname:sparseResidency16Samples 917e5c31af7Sopenharmony_ci specifies whether the physical device can: access partially resident 2D 918e5c31af7Sopenharmony_ci images with 16 samples per pixel. 919e5c31af7Sopenharmony_ci If this feature is not enabled, images with an pname:imageType of 920e5c31af7Sopenharmony_ci ename:VK_IMAGE_TYPE_2D and pname:samples set to 921e5c31af7Sopenharmony_ci ename:VK_SAMPLE_COUNT_16_BIT must: not be created with 922e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the pname:flags member 923e5c31af7Sopenharmony_ci of the slink:VkImageCreateInfo structure. 924e5c31af7Sopenharmony_ci * [[features-sparseResidencyAliased]] pname:sparseResidencyAliased 925e5c31af7Sopenharmony_ci specifies whether the physical device can: correctly access data aliased 926e5c31af7Sopenharmony_ci into multiple locations. 927e5c31af7Sopenharmony_ci If this feature is not enabled, the 928e5c31af7Sopenharmony_ci ename:VK_BUFFER_CREATE_SPARSE_ALIASED_BIT and 929e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must: not be used 930e5c31af7Sopenharmony_ci in pname:flags members of the slink:VkBufferCreateInfo and 931e5c31af7Sopenharmony_ci slink:VkImageCreateInfo structures, respectively. 932e5c31af7Sopenharmony_ci * [[features-variableMultisampleRate]] pname:variableMultisampleRate 933e5c31af7Sopenharmony_ci specifies whether all pipelines that will be bound to a command buffer 934e5c31af7Sopenharmony_ci during a <<renderpass-noattachments, subpass which uses no attachments>> 935e5c31af7Sopenharmony_ci must: have the same value for 936e5c31af7Sopenharmony_ci slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples. 937e5c31af7Sopenharmony_ci If set to ename:VK_TRUE, the implementation supports variable 938e5c31af7Sopenharmony_ci multisample rates in a subpass which uses no attachments. 939e5c31af7Sopenharmony_ci If set to ename:VK_FALSE, then all pipelines bound in such a subpass 940e5c31af7Sopenharmony_ci must: have the same multisample rate. 941e5c31af7Sopenharmony_ci This has no effect in situations where a subpass uses any attachments. 942e5c31af7Sopenharmony_ci * [[features-inheritedQueries]] pname:inheritedQueries specifies whether a 943e5c31af7Sopenharmony_ci secondary command buffer may: be executed while a query is active. 944e5c31af7Sopenharmony_ci 945e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFeatures.txt[] 946e5c31af7Sopenharmony_ci-- 947e5c31af7Sopenharmony_ci 948e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 949e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan11Features',desc='Structure describing the Vulkan 1.1 features that can be supported by an implementation',type='structs'] 950e5c31af7Sopenharmony_ci-- 951e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan11Features structure is defined as: 952e5c31af7Sopenharmony_ci 953e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan11Features.txt[] 954e5c31af7Sopenharmony_ci 955e5c31af7Sopenharmony_ciThis structure describes the following features: 956e5c31af7Sopenharmony_ci 957e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 958e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 959e5c31af7Sopenharmony_ci structure. 960e5c31af7Sopenharmony_ci 961e5c31af7Sopenharmony_ci:anchor-prefix: 962e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_16bit_storage-features] 963e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_multiview-features] 964e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_variable_pointers-features] 965e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_protected_memory-features] 966e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_sampler_ycbcr_conversion-features] 967e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_draw_parameters-features] 968e5c31af7Sopenharmony_ci 969e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan11Features 970e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 971e5c31af7Sopenharmony_ci 972e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan11Features.txt[] 973e5c31af7Sopenharmony_ci-- 974e5c31af7Sopenharmony_ci 975e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkan12Features',desc='Structure describing the Vulkan 1.2 features that can be supported by an implementation',type='structs'] 976e5c31af7Sopenharmony_ci-- 977e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkan12Features structure is defined as: 978e5c31af7Sopenharmony_ci 979e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkan12Features.txt[] 980e5c31af7Sopenharmony_ci 981e5c31af7Sopenharmony_ciThis structure describes the following features: 982e5c31af7Sopenharmony_ci 983e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 984e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 985e5c31af7Sopenharmony_ci structure. 986e5c31af7Sopenharmony_ci 987e5c31af7Sopenharmony_ci:anchor-prefix: 988e5c31af7Sopenharmony_ci * [[features-samplerMirrorClampToEdge]] pname:samplerMirrorClampToEdge 989e5c31af7Sopenharmony_ci indicates whether the implementation supports the 990e5c31af7Sopenharmony_ci ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode. 991e5c31af7Sopenharmony_ci If this feature is not enabled, the 992e5c31af7Sopenharmony_ci ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE sampler address mode 993e5c31af7Sopenharmony_ci must: not be used. 994e5c31af7Sopenharmony_ci * [[features-drawIndirectCount]] pname:drawIndirectCount indicates whether 995e5c31af7Sopenharmony_ci the implementation supports the flink:vkCmdDrawIndirectCount and 996e5c31af7Sopenharmony_ci flink:vkCmdDrawIndexedIndirectCount functions. 997e5c31af7Sopenharmony_ci If this feature is not enabled, these functions must: not be used. 998e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_8bit_storage-features] 999e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_atomic_int64-features] 1000e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_float16_int8-features] 1001e5c31af7Sopenharmony_ci * [[features-descriptorIndexing]] pname:descriptorIndexing indicates 1002e5c31af7Sopenharmony_ci whether the implementation supports the minimum set of descriptor 1003e5c31af7Sopenharmony_ci indexing features as described in the <<features-requirements,Feature 1004e5c31af7Sopenharmony_ci Requirements>> section. 1005e5c31af7Sopenharmony_ci Enabling the pname:descriptorIndexing member when flink:vkCreateDevice 1006e5c31af7Sopenharmony_ci is called does not imply the other minimum descriptor indexing features 1007e5c31af7Sopenharmony_ci are also enabled. 1008e5c31af7Sopenharmony_ci Those other descriptor indexing features must: be enabled individually 1009e5c31af7Sopenharmony_ci as needed by the application. 1010e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_descriptor_indexing-features] 1011e5c31af7Sopenharmony_ci * [[features-samplerFilterMinmax]] pname:samplerFilterMinmax indicates 1012e5c31af7Sopenharmony_ci whether the implementation supports a minimum set of required formats 1013e5c31af7Sopenharmony_ci supporting min/max filtering as defined by the 1014e5c31af7Sopenharmony_ci <<limits-filterMinmaxSingleComponentFormats-minimum-requirements,pname:filterMinmaxSingleComponentFormats>> 1015e5c31af7Sopenharmony_ci property minimum requirements. 1016e5c31af7Sopenharmony_ci If this feature is not enabled, then no slink:VkSamplerCreateInfo 1017e5c31af7Sopenharmony_ci pname:pNext chain can include a slink:VkSamplerReductionModeCreateInfo 1018e5c31af7Sopenharmony_ci structure. 1019e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_scalar_block_layout-features] 1020e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_imageless_framebuffer-features] 1021e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_uniform_buffer_standard_layout-features] 1022e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_shader_subgroup_extended_types-features] 1023e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_separate_depth_stencil_layouts-features] 1024e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_host_query_reset-features] 1025e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_timeline_semaphore-features] 1026e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_EXT_buffer_device_address-features] 1027e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=VK_KHR_vulkan_memory_model-features] 1028e5c31af7Sopenharmony_ci * [[features-shaderOutputViewportIndex]] pname:shaderOutputViewportIndex 1029e5c31af7Sopenharmony_ci indicates whether the implementation supports the 1030e5c31af7Sopenharmony_ci code:ShaderViewportIndex SPIR-V capability enabling variables decorated 1031e5c31af7Sopenharmony_ci with the code:ViewportIndex built-in to be exported from vertex or 1032e5c31af7Sopenharmony_ci tessellation evaluation shaders. 1033e5c31af7Sopenharmony_ci If this feature is not enabled, the code:ViewportIndex built-in 1034e5c31af7Sopenharmony_ci decoration must: not be used on outputs in vertex or tessellation 1035e5c31af7Sopenharmony_ci evaluation shaders. 1036e5c31af7Sopenharmony_ci * [[features-shaderOutputLayer]] pname:shaderOutputLayer indicates whether 1037e5c31af7Sopenharmony_ci the implementation supports the code:ShaderLayer SPIR-V capability 1038e5c31af7Sopenharmony_ci enabling variables decorated with the code:Layer built-in to be exported 1039e5c31af7Sopenharmony_ci from vertex or tessellation evaluation shaders. 1040e5c31af7Sopenharmony_ci If this feature is not enabled, the code:Layer built-in decoration must: 1041e5c31af7Sopenharmony_ci not be used on outputs in vertex or tessellation evaluation shaders. 1042e5c31af7Sopenharmony_ci * [[features-subgroupBroadcastDynamicId]] If 1043e5c31af7Sopenharmony_ci pname:subgroupBroadcastDynamicId is ename:VK_TRUE, the "`Id`" operand of 1044e5c31af7Sopenharmony_ci code:OpGroupNonUniformBroadcast can: be dynamically uniform within a 1045e5c31af7Sopenharmony_ci subgroup, and the "`Index`" operand of 1046e5c31af7Sopenharmony_ci code:OpGroupNonUniformQuadBroadcast can: be dynamically uniform within 1047e5c31af7Sopenharmony_ci the derivative group. 1048e5c31af7Sopenharmony_ci If it is ename:VK_FALSE, these operands must: be constants. 1049e5c31af7Sopenharmony_ci 1050e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkan12Features 1051e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1052e5c31af7Sopenharmony_ci 1053e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkan12Features.txt[] 1054e5c31af7Sopenharmony_ci-- 1055e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 1056e5c31af7Sopenharmony_ci 1057e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] 1058e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVariablePointersFeatures',desc='Structure describing variable pointers features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointersFeaturesKHR VkPhysicalDeviceVariablePointerFeaturesKHR'] 1059e5c31af7Sopenharmony_ci-- 1060e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVariablePointersFeatures structure is defined as: 1061e5c31af7Sopenharmony_ci 1062e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeatures.txt[] 1063e5c31af7Sopenharmony_ci 1064e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1065e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeatures.txt[] 1066e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1067e5c31af7Sopenharmony_ci 1068e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[] 1069e5c31af7Sopenharmony_cior the equivalent 1070e5c31af7Sopenharmony_ci 1071e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointersFeaturesKHR.txt[] 1072e5c31af7Sopenharmony_ci 1073e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVariablePointerFeaturesKHR.txt[] 1074e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[] 1075e5c31af7Sopenharmony_ci 1076e5c31af7Sopenharmony_ciThis structure describes the following features: 1077e5c31af7Sopenharmony_ci 1078e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1079e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1080e5c31af7Sopenharmony_ci structure. 1081e5c31af7Sopenharmony_ci 1082e5c31af7Sopenharmony_ci// Must have preceding whitespace 1083e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1084e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1085e5c31af7Sopenharmony_ci// tag::VK_KHR_variable_pointers-features[] 1086e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-variablePointersStorageBuffer]] 1087e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer specifies whether the implementation 1088e5c31af7Sopenharmony_ci supports the SPIR-V code:VariablePointersStorageBuffer capability. 1089e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1090e5c31af7Sopenharmony_ci `SPV_KHR_variable_pointers` extension or the 1091e5c31af7Sopenharmony_ci code:VariablePointersStorageBuffer capability. 1092e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-variablePointers]] pname:variablePointers 1093e5c31af7Sopenharmony_ci specifies whether the implementation supports the SPIR-V 1094e5c31af7Sopenharmony_ci code:VariablePointers capability. 1095e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1096e5c31af7Sopenharmony_ci code:VariablePointers capability. 1097e5c31af7Sopenharmony_ci// end::VK_KHR_variable_pointers-features[] 1098e5c31af7Sopenharmony_ci 1099e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVariablePointersFeatures 1100e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1101e5c31af7Sopenharmony_ci 1102e5c31af7Sopenharmony_ci.Valid Usage 1103e5c31af7Sopenharmony_ci**** 1104e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431]] 1105e5c31af7Sopenharmony_ci If pname:variablePointers is enabled then 1106e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer must: also be enabled 1107e5c31af7Sopenharmony_ci**** 1108e5c31af7Sopenharmony_ci 1109e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVariablePointersFeatures.txt[] 1110e5c31af7Sopenharmony_ci-- 1111e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_variable_pointers[] 1112e5c31af7Sopenharmony_ci 1113e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[] 1114e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiviewFeatures',desc='Structure describing multiview features that can be supported by an implementation',type='structs'] 1115e5c31af7Sopenharmony_ci-- 1116e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiviewFeatures structure is defined as: 1117e5c31af7Sopenharmony_ci 1118e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeatures.txt[] 1119e5c31af7Sopenharmony_ci 1120e5c31af7Sopenharmony_ciifdef::VK_KHR_multiview[] 1121e5c31af7Sopenharmony_cior the equivalent 1122e5c31af7Sopenharmony_ci 1123e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiviewFeaturesKHR.txt[] 1124e5c31af7Sopenharmony_ciendif::VK_KHR_multiview[] 1125e5c31af7Sopenharmony_ci 1126e5c31af7Sopenharmony_ciThis structure describes the following features: 1127e5c31af7Sopenharmony_ci 1128e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1129e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1130e5c31af7Sopenharmony_ci structure. 1131e5c31af7Sopenharmony_ci 1132e5c31af7Sopenharmony_ci// Must have preceding whitespace 1133e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1134e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1135e5c31af7Sopenharmony_ci// tag::VK_KHR_multiview-features[] 1136e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview]] pname:multiview specifies whether 1137e5c31af7Sopenharmony_ci the implementation supports multiview rendering within a render pass. 1138e5c31af7Sopenharmony_ci If this feature is not enabled, the view mask of each subpass must: 1139e5c31af7Sopenharmony_ci always be zero. 1140e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview-gs]] pname:multiviewGeometryShader 1141e5c31af7Sopenharmony_ci specifies whether the implementation supports multiview rendering within 1142e5c31af7Sopenharmony_ci a render pass, with <<geometry,geometry shaders>>. 1143e5c31af7Sopenharmony_ci If this feature is not enabled, then a pipeline compiled against a 1144e5c31af7Sopenharmony_ci subpass with a non-zero view mask must: not include a geometry shader. 1145e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-multiview-tess]] 1146e5c31af7Sopenharmony_ci pname:multiviewTessellationShader specifies whether the implementation 1147e5c31af7Sopenharmony_ci supports multiview rendering within a render pass, with 1148e5c31af7Sopenharmony_ci <<tessellation,tessellation shaders>>. 1149e5c31af7Sopenharmony_ci If this feature is not enabled, then a pipeline compiled against a 1150e5c31af7Sopenharmony_ci subpass with a non-zero view mask must: not include any tessellation 1151e5c31af7Sopenharmony_ci shaders. 1152e5c31af7Sopenharmony_ci// end::VK_KHR_multiview-features[] 1153e5c31af7Sopenharmony_ci 1154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiviewFeatures 1155e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1156e5c31af7Sopenharmony_ci 1157e5c31af7Sopenharmony_ci.Valid Usage 1158e5c31af7Sopenharmony_ci**** 1159e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580]] 1160e5c31af7Sopenharmony_ci If pname:multiviewGeometryShader is enabled then pname:multiview must: 1161e5c31af7Sopenharmony_ci also be enabled 1162e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581]] 1163e5c31af7Sopenharmony_ci If pname:multiviewTessellationShader is enabled then pname:multiview 1164e5c31af7Sopenharmony_ci must: also be enabled 1165e5c31af7Sopenharmony_ci**** 1166e5c31af7Sopenharmony_ci 1167e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiviewFeatures.txt[] 1168e5c31af7Sopenharmony_ci-- 1169e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[] 1170e5c31af7Sopenharmony_ci 1171e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[] 1172e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloatFeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float',type='structs'] 1173e5c31af7Sopenharmony_ci-- 1174e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT structure is defined 1175e5c31af7Sopenharmony_cias: 1176e5c31af7Sopenharmony_ci 1177e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.txt[] 1178e5c31af7Sopenharmony_ci 1179e5c31af7Sopenharmony_ciThis structure describes the following features: 1180e5c31af7Sopenharmony_ci 1181e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1182e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1183e5c31af7Sopenharmony_ci structure. 1184e5c31af7Sopenharmony_ci 1185e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float-features[] 1186e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32Atomics]] pname:shaderBufferFloat32Atomics 1187e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1188e5c31af7Sopenharmony_ci and exchange atomic operations on storage buffers. 1189e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32AtomicAdd]] 1190e5c31af7Sopenharmony_ci pname:shaderBufferFloat32AtomicAdd indicates whether shaders can: 1191e5c31af7Sopenharmony_ci perform 32-bit floating-point add atomic operations on storage buffers. 1192e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64Atomics]] pname:shaderBufferFloat64Atomics 1193e5c31af7Sopenharmony_ci indicates whether shaders can: perform 64-bit floating-point load, store 1194e5c31af7Sopenharmony_ci and exchange atomic operations on storage buffers. 1195e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64AtomicAdd]] 1196e5c31af7Sopenharmony_ci pname:shaderBufferFloat64AtomicAdd indicates whether shaders can: 1197e5c31af7Sopenharmony_ci perform 64-bit floating-point add atomic operations on storage buffers. 1198e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32Atomics]] pname:shaderSharedFloat32Atomics 1199e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1200e5c31af7Sopenharmony_ci and exchange atomic operations on shared memory. 1201e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32AtomicAdd]] 1202e5c31af7Sopenharmony_ci pname:shaderSharedFloat32AtomicAdd indicates whether shaders can: 1203e5c31af7Sopenharmony_ci perform 32-bit floating-point add atomic operations on shared memory. 1204e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64Atomics]] pname:shaderSharedFloat64Atomics 1205e5c31af7Sopenharmony_ci indicates whether shaders can: perform 64-bit floating-point load, store 1206e5c31af7Sopenharmony_ci and exchange atomic operations on shared memory. 1207e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64AtomicAdd]] 1208e5c31af7Sopenharmony_ci pname:shaderSharedFloat64AtomicAdd indicates whether shaders can: 1209e5c31af7Sopenharmony_ci perform 64-bit floating-point add atomic operations on shared memory. 1210e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32Atomics]] pname:shaderImageFloat32Atomics 1211e5c31af7Sopenharmony_ci indicates whether shaders can: perform 32-bit floating-point load, store 1212e5c31af7Sopenharmony_ci and exchange atomic image operations. 1213e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32AtomicAdd]] 1214e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicAdd indicates whether shaders can: perform 1215e5c31af7Sopenharmony_ci 32-bit floating-point add atomic image operations. 1216e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32Atomics]] pname:sparseImageFloat32Atomics 1217e5c31af7Sopenharmony_ci indicates whether 32-bit floating-point load, store and exchange atomic 1218e5c31af7Sopenharmony_ci operations can: be used on sparse images. 1219e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32AtomicAdd]] 1220e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicAdd indicates whether 32-bit 1221e5c31af7Sopenharmony_ci floating-point add atomic operations can: be used on sparse images. 1222e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float-features[] 1223e5c31af7Sopenharmony_ci 1224e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloatFeaturesEXT 1225e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1226e5c31af7Sopenharmony_ci 1227e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloatFeaturesEXT.txt[] 1228e5c31af7Sopenharmony_ci-- 1229e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[] 1230e5c31af7Sopenharmony_ci 1231e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[] 1232e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_atomic_float2',type='structs'] 1233e5c31af7Sopenharmony_ci-- 1234e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT structure is defined 1235e5c31af7Sopenharmony_cias: 1236e5c31af7Sopenharmony_ci 1237e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.txt[] 1238e5c31af7Sopenharmony_ci 1239e5c31af7Sopenharmony_ciThis structure describes the following features: 1240e5c31af7Sopenharmony_ci 1241e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1242e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1243e5c31af7Sopenharmony_ci structure. 1244e5c31af7Sopenharmony_ci 1245e5c31af7Sopenharmony_ci// tag::VK_EXT_shader_atomic_float2-features[] 1246e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16Atomics]] pname:shaderBufferFloat16Atomics 1247e5c31af7Sopenharmony_ci indicates whether shaders can: perform 16-bit floating-point load, 1248e5c31af7Sopenharmony_ci store, and exchange atomic operations on storage buffers. 1249e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16AtomicAdd]] 1250e5c31af7Sopenharmony_ci pname:shaderBufferFloat16AtomicAdd indicates whether shaders can: 1251e5c31af7Sopenharmony_ci perform 16-bit floating-point add atomic operations on storage buffers. 1252e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat16AtomicMinMax]] 1253e5c31af7Sopenharmony_ci pname:shaderBufferFloat16AtomicMinMax indicates whether shaders can: 1254e5c31af7Sopenharmony_ci perform 16-bit floating-point min and max atomic operations on storage 1255e5c31af7Sopenharmony_ci buffers. 1256e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat32AtomicMinMax]] 1257e5c31af7Sopenharmony_ci pname:shaderBufferFloat32AtomicMinMax indicates whether shaders can: 1258e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic operations on storage 1259e5c31af7Sopenharmony_ci buffers. 1260e5c31af7Sopenharmony_ci * [[features-shaderBufferFloat64AtomicMinMax]] 1261e5c31af7Sopenharmony_ci pname:shaderBufferFloat64AtomicMinMax indicates whether shaders can: 1262e5c31af7Sopenharmony_ci perform 64-bit floating-point min and max atomic operations on storage 1263e5c31af7Sopenharmony_ci buffers. 1264e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16Atomics]] pname:shaderSharedFloat16Atomics 1265e5c31af7Sopenharmony_ci indicates whether shaders can: perform 16-bit floating-point load, store 1266e5c31af7Sopenharmony_ci and exchange atomic operations on shared memory. 1267e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16AtomicAdd]] 1268e5c31af7Sopenharmony_ci pname:shaderSharedFloat16AtomicAdd indicates whether shaders can: 1269e5c31af7Sopenharmony_ci perform 16-bit floating-point add atomic operations on shared memory. 1270e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat16AtomicMinMax]] 1271e5c31af7Sopenharmony_ci pname:shaderSharedFloat16AtomicMinMax indicates whether shaders can: 1272e5c31af7Sopenharmony_ci perform 16-bit floating-point min and max atomic operations on shared 1273e5c31af7Sopenharmony_ci memory. 1274e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat32AtomicMinMax]] 1275e5c31af7Sopenharmony_ci pname:shaderSharedFloat32AtomicMinMax indicates whether shaders can: 1276e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic operations on shared 1277e5c31af7Sopenharmony_ci memory. 1278e5c31af7Sopenharmony_ci * [[features-shaderSharedFloat64AtomicMinMax]] 1279e5c31af7Sopenharmony_ci pname:shaderSharedFloat64AtomicMinMax indicates whether shaders can: 1280e5c31af7Sopenharmony_ci perform 64-bit floating-point min and max atomic operations on shared 1281e5c31af7Sopenharmony_ci memory. 1282e5c31af7Sopenharmony_ci * [[features-shaderImageFloat32AtomicMinMax]] 1283e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicMinMax indicates whether shaders can: 1284e5c31af7Sopenharmony_ci perform 32-bit floating-point min and max atomic image operations. 1285e5c31af7Sopenharmony_ci * [[features-sparseImageFloat32AtomicMinMax]] 1286e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicMinMax indicates whether 32-bit 1287e5c31af7Sopenharmony_ci floating-point min and max atomic operations can: be used on sparse 1288e5c31af7Sopenharmony_ci images. 1289e5c31af7Sopenharmony_ci// end::VK_EXT_shader_atomic_float2-features[] 1290e5c31af7Sopenharmony_ci 1291e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT 1292e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1293e5c31af7Sopenharmony_ci 1294e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT.txt[] 1295e5c31af7Sopenharmony_ci-- 1296e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[] 1297e5c31af7Sopenharmony_ci 1298e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 1299e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderAtomicInt64Features',desc='Structure describing features supported by VK_KHR_shader_atomic_int64',type='structs',alias='VkPhysicalDeviceShaderAtomicInt64FeaturesKHR'] 1300e5c31af7Sopenharmony_ci-- 1301e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderAtomicInt64Features structure is defined as: 1302e5c31af7Sopenharmony_ci 1303e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64Features.txt[] 1304e5c31af7Sopenharmony_ci 1305e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[] 1306e5c31af7Sopenharmony_cior the equivalent 1307e5c31af7Sopenharmony_ci 1308e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderAtomicInt64FeaturesKHR.txt[] 1309e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[] 1310e5c31af7Sopenharmony_ci 1311e5c31af7Sopenharmony_ciThis structure describes the following features: 1312e5c31af7Sopenharmony_ci 1313e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1314e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1315e5c31af7Sopenharmony_ci structure. 1316e5c31af7Sopenharmony_ci 1317e5c31af7Sopenharmony_ci// Must have preceding whitespace 1318e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1319e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1320e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_atomic_int64-features[] 1321e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderBufferInt64Atomics]] 1322e5c31af7Sopenharmony_ci pname:shaderBufferInt64Atomics indicates whether shaders can: perform 1323e5c31af7Sopenharmony_ci 64-bit unsigned and signed integer atomic operations on buffers. 1324e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderSharedInt64Atomics]] 1325e5c31af7Sopenharmony_ci pname:shaderSharedInt64Atomics indicates whether shaders can: perform 1326e5c31af7Sopenharmony_ci 64-bit unsigned and signed integer atomic operations on shared memory. 1327e5c31af7Sopenharmony_ci// end::VK_KHR_shader_atomic_int64-features[] 1328e5c31af7Sopenharmony_ci 1329e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64Features 1330e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1331e5c31af7Sopenharmony_ci 1332e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderAtomicInt64Features.txt[] 1333e5c31af7Sopenharmony_ci-- 1334e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 1335e5c31af7Sopenharmony_ci 1336e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[] 1337e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT',desc='Structure describing features supported by VK_EXT_shader_image_atomic_int64',type='structs'] 1338e5c31af7Sopenharmony_ci-- 1339e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT structure is 1340e5c31af7Sopenharmony_cidefined as: 1341e5c31af7Sopenharmony_ci 1342e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.txt[] 1343e5c31af7Sopenharmony_ci 1344e5c31af7Sopenharmony_ciThis structure describes the following features: 1345e5c31af7Sopenharmony_ci 1346e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1347e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1348e5c31af7Sopenharmony_ci structure. 1349e5c31af7Sopenharmony_ci * [[features-shaderImageInt64Atomics]] pname:shaderImageInt64Atomics 1350e5c31af7Sopenharmony_ci indicates whether shaders can: support 64-bit unsigned and signed 1351e5c31af7Sopenharmony_ci integer atomic operations on images. 1352e5c31af7Sopenharmony_ci * [[features-sparseImageInt64Atomics]] pname:sparseImageInt64Atomics 1353e5c31af7Sopenharmony_ci indicates whether 64-bit integer atomics can: be used on sparse images. 1354e5c31af7Sopenharmony_ci 1355e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderAtomicInt64FeaturesEXT 1356e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1357e5c31af7Sopenharmony_ci 1358e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT.txt[] 1359e5c31af7Sopenharmony_ci-- 1360e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[] 1361e5c31af7Sopenharmony_ci 1362e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[] 1363e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice8BitStorageFeatures',desc='Structure describing features supported by VK_KHR_8bit_storage',type='structs',alias='VkPhysicalDevice8BitStorageFeaturesKHR'] 1364e5c31af7Sopenharmony_ci-- 1365e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice8BitStorageFeatures structure is defined as: 1366e5c31af7Sopenharmony_ci 1367e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeatures.txt[] 1368e5c31af7Sopenharmony_ci 1369e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[] 1370e5c31af7Sopenharmony_cior the equivalent 1371e5c31af7Sopenharmony_ci 1372e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice8BitStorageFeaturesKHR.txt[] 1373e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[] 1374e5c31af7Sopenharmony_ci 1375e5c31af7Sopenharmony_ciThis structure describes the following features: 1376e5c31af7Sopenharmony_ci 1377e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1378e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1379e5c31af7Sopenharmony_ci structure. 1380e5c31af7Sopenharmony_ci 1381e5c31af7Sopenharmony_ci// Must have preceding whitespace 1382e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1383e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1384e5c31af7Sopenharmony_ci// tag::VK_KHR_8bit_storage-features[] 1385e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageBuffer8BitAccess]] 1386e5c31af7Sopenharmony_ci pname:storageBuffer8BitAccess indicates whether objects in the 1387e5c31af7Sopenharmony_ci code:StorageBuffer, 1388e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,] 1389e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1390e5c31af7Sopenharmony_ci or code:PhysicalStorageBuffer 1391e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1392e5c31af7Sopenharmony_ci storage class with the code:Block decoration can: have 8-bit integer 1393e5c31af7Sopenharmony_ci members. 1394e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1395e5c31af7Sopenharmony_ci in such objects. 1396e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1397e5c31af7Sopenharmony_ci code:StorageBuffer8BitAccess capability. 1398e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformAndStorageBuffer8BitAccess]] 1399e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer8BitAccess indicates whether objects in the 1400e5c31af7Sopenharmony_ci code:Uniform storage class with the code:Block decoration can: have 1401e5c31af7Sopenharmony_ci 8-bit integer members. 1402e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1403e5c31af7Sopenharmony_ci in such objects. 1404e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1405e5c31af7Sopenharmony_ci code:UniformAndStorageBuffer8BitAccess capability. 1406e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storagePushConstant8]] 1407e5c31af7Sopenharmony_ci pname:storagePushConstant8 indicates whether objects in the 1408e5c31af7Sopenharmony_ci code:PushConstant storage class can: have 8-bit integer members. 1409e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 1410e5c31af7Sopenharmony_ci in such objects. 1411e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1412e5c31af7Sopenharmony_ci code:StoragePushConstant8 capability. 1413e5c31af7Sopenharmony_ci// end::VK_KHR_8bit_storage-features[] 1414e5c31af7Sopenharmony_ci 1415e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice8BitStorageFeatures 1416e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1417e5c31af7Sopenharmony_ci 1418e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice8BitStorageFeatures.txt[] 1419e5c31af7Sopenharmony_ci-- 1420e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[] 1421e5c31af7Sopenharmony_ci 1422e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[] 1423e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice16BitStorageFeatures',desc='Structure describing features supported by VK_KHR_16bit_storage',type='structs'] 1424e5c31af7Sopenharmony_ci-- 1425e5c31af7Sopenharmony_ciThe slink:VkPhysicalDevice16BitStorageFeatures structure is defined as: 1426e5c31af7Sopenharmony_ci 1427e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeatures.txt[] 1428e5c31af7Sopenharmony_ci 1429e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[] 1430e5c31af7Sopenharmony_cior the equivalent 1431e5c31af7Sopenharmony_ci 1432e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice16BitStorageFeaturesKHR.txt[] 1433e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[] 1434e5c31af7Sopenharmony_ci 1435e5c31af7Sopenharmony_ciThis structure describes the following features: 1436e5c31af7Sopenharmony_ci 1437e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1438e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1439e5c31af7Sopenharmony_ci structure. 1440e5c31af7Sopenharmony_ci 1441e5c31af7Sopenharmony_ci// Must have preceding whitespace 1442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1443e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1444e5c31af7Sopenharmony_ci// tag::VK_KHR_16bit_storage-features[] 1445e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageBuffer16BitAccess]] 1446e5c31af7Sopenharmony_ci pname:storageBuffer16BitAccess specifies whether objects in the 1447e5c31af7Sopenharmony_ci code:StorageBuffer, 1448e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:ShaderRecordBufferKHR,] 1449e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1450e5c31af7Sopenharmony_ci or code:PhysicalStorageBuffer 1451e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[] 1452e5c31af7Sopenharmony_ci storage class with the code:Block decoration can: have 16-bit integer 1453e5c31af7Sopenharmony_ci and 16-bit floating-point members. 1454e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1455e5c31af7Sopenharmony_ci members must: not be used in such objects. 1456e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1457e5c31af7Sopenharmony_ci code:StorageBuffer16BitAccess capability. 1458e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformAndStorageBuffer16BitAccess]] 1459e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer16BitAccess specifies whether objects in 1460e5c31af7Sopenharmony_ci the code:Uniform storage class with the code:Block decoration can: have 1461e5c31af7Sopenharmony_ci 16-bit integer and 16-bit floating-point members. 1462e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1463e5c31af7Sopenharmony_ci members must: not be used in such objects. 1464e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1465e5c31af7Sopenharmony_ci code:UniformAndStorageBuffer16BitAccess capability. 1466e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storagePushConstant16]] 1467e5c31af7Sopenharmony_ci pname:storagePushConstant16 specifies whether objects in the 1468e5c31af7Sopenharmony_ci code:PushConstant storage class can: have 16-bit integer and 16-bit 1469e5c31af7Sopenharmony_ci floating-point members. 1470e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or floating-point members 1471e5c31af7Sopenharmony_ci must: not be used in such objects. 1472e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1473e5c31af7Sopenharmony_ci code:StoragePushConstant16 capability. 1474e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-storageInputOutput16]] 1475e5c31af7Sopenharmony_ci pname:storageInputOutput16 specifies whether objects in the code:Input 1476e5c31af7Sopenharmony_ci and code:Output storage classes can: have 16-bit integer and 16-bit 1477e5c31af7Sopenharmony_ci floating-point members. 1478e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 1479e5c31af7Sopenharmony_ci members must: not be used in such objects. 1480e5c31af7Sopenharmony_ci This also specifies whether shader modules can: declare the 1481e5c31af7Sopenharmony_ci code:StorageInputOutput16 capability. 1482e5c31af7Sopenharmony_ci// end::VK_KHR_16bit_storage-features[] 1483e5c31af7Sopenharmony_ci 1484e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice16BitStorageFeatures 1485e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1486e5c31af7Sopenharmony_ci 1487e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice16BitStorageFeatures.txt[] 1488e5c31af7Sopenharmony_ci-- 1489e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[] 1490e5c31af7Sopenharmony_ci 1491e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_float16_int8[] 1492e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderFloat16Int8Features',desc='Structure describing features supported by VK_KHR_shader_float16_int8',type='structs',alias='VkPhysicalDeviceShaderFloat16Int8FeaturesKHR VkPhysicalDeviceFloat16Int8FeaturesKHR'] 1493e5c31af7Sopenharmony_ci-- 1494e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderFloat16Int8Features structure is defined as: 1495e5c31af7Sopenharmony_ci 1496e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8Features.txt[] 1497e5c31af7Sopenharmony_ci 1498e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[] 1499e5c31af7Sopenharmony_cior the equivalent 1500e5c31af7Sopenharmony_ci 1501e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderFloat16Int8FeaturesKHR.txt[] 1502e5c31af7Sopenharmony_ci 1503e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFloat16Int8FeaturesKHR.txt[] 1504e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[] 1505e5c31af7Sopenharmony_ci 1506e5c31af7Sopenharmony_ciThis structure describes the following features: 1507e5c31af7Sopenharmony_ci 1508e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1509e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1510e5c31af7Sopenharmony_ci structure. 1511e5c31af7Sopenharmony_ci 1512e5c31af7Sopenharmony_ci// Must have preceding whitespace 1513e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1514e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1515e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_float16_int8-features[] 1516e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderFloat16]] pname:shaderFloat16 indicates 1517e5c31af7Sopenharmony_ci whether 16-bit floats (halfs) are supported in shader code. 1518e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the code:Float16 1519e5c31af7Sopenharmony_ci capability. 1520e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 1521e5c31af7Sopenharmony_ci allows for the code:Float16 SPIR-V capability: Declaring and using 1522e5c31af7Sopenharmony_ci 16-bit floats in the code:Private, 1523e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 1524e5c31af7Sopenharmony_ci code:Workgroup, 1525e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1526e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 1527e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 1528e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1529e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 1530e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 1531e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 1532e5c31af7Sopenharmony_ci not enabled. 1533e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInt8]] pname:shaderInt8 indicates 1534e5c31af7Sopenharmony_ci whether 8-bit integers (signed and unsigned) are supported in shader 1535e5c31af7Sopenharmony_ci code. 1536e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the code:Int8 1537e5c31af7Sopenharmony_ci capability. 1538e5c31af7Sopenharmony_ci However, this only enables a subset of the storage classes that SPIR-V 1539e5c31af7Sopenharmony_ci allows for the code:Int8 SPIR-V capability: Declaring and using 8-bit 1540e5c31af7Sopenharmony_ci integers in the code:Private, 1541e5c31af7Sopenharmony_ciifndef::VK_KHR_workgroup_memory_explicit_layout[] 1542e5c31af7Sopenharmony_ci code:Workgroup, 1543e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1544e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 1545e5c31af7Sopenharmony_ci code:Workgroup (for non-Block variables), 1546e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 1547e5c31af7Sopenharmony_ci and code:Function storage classes is enabled, while declaring them in 1548e5c31af7Sopenharmony_ci the interface storage classes (e.g., code:UniformConstant, code:Uniform, 1549e5c31af7Sopenharmony_ci code:StorageBuffer, code:Input, code:Output, and code:PushConstant) is 1550e5c31af7Sopenharmony_ci not enabled. 1551e5c31af7Sopenharmony_ci// end::VK_KHR_shader_float16_int8-features[] 1552e5c31af7Sopenharmony_ci 1553e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderFloat16Int8Features 1554e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1555e5c31af7Sopenharmony_ci 1556e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderFloat16Int8Features.txt[] 1557e5c31af7Sopenharmony_ci-- 1558e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_float16_int8[] 1559e5c31af7Sopenharmony_ci 1560e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[] 1561e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderClockFeaturesKHR',desc='Structure describing features supported by VK_KHR_shader_clock',type='structs'] 1562e5c31af7Sopenharmony_ci-- 1563e5c31af7Sopenharmony_ciThe slink:VkPhysicalDeviceShaderClockFeaturesKHR structure is defined as: 1564e5c31af7Sopenharmony_ci 1565e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderClockFeaturesKHR.txt[] 1566e5c31af7Sopenharmony_ci 1567e5c31af7Sopenharmony_ciThis structure describes the following features: 1568e5c31af7Sopenharmony_ci 1569e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1570e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1571e5c31af7Sopenharmony_ci structure. 1572e5c31af7Sopenharmony_ci * [[features-shaderSubgroupClock]] pname:shaderSubgroupClock indicates 1573e5c31af7Sopenharmony_ci whether shaders can: perform code:Subgroup scoped clock reads. 1574e5c31af7Sopenharmony_ci * [[features-shaderDeviceClock]] pname:shaderDeviceClock indicates whether 1575e5c31af7Sopenharmony_ci shaders can: perform code:Device scoped clock reads. 1576e5c31af7Sopenharmony_ci 1577e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderClockFeaturesKHR 1578e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1579e5c31af7Sopenharmony_ci 1580e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderClockFeaturesKHR.txt[] 1581e5c31af7Sopenharmony_ci-- 1582e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[] 1583e5c31af7Sopenharmony_ci 1584e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1585e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSamplerYcbcrConversionFeatures',desc='Structure describing {YCbCr} conversion features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR'] 1586e5c31af7Sopenharmony_ci-- 1587e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSamplerYcbcrConversionFeatures structure is 1588e5c31af7Sopenharmony_cidefined as: 1589e5c31af7Sopenharmony_ci 1590e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.txt[] 1591e5c31af7Sopenharmony_ci 1592e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[] 1593e5c31af7Sopenharmony_cior the equivalent 1594e5c31af7Sopenharmony_ci 1595e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.txt[] 1596e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[] 1597e5c31af7Sopenharmony_ci 1598e5c31af7Sopenharmony_ciThis structure describes the following feature: 1599e5c31af7Sopenharmony_ci 1600e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1601e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1602e5c31af7Sopenharmony_ci structure. 1603e5c31af7Sopenharmony_ci 1604e5c31af7Sopenharmony_ci// Must have preceding whitespace 1605e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1606e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1607e5c31af7Sopenharmony_ci// tag::VK_KHR_sampler_ycbcr_conversion-features[] 1608e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-samplerYcbcrConversion]] 1609e5c31af7Sopenharmony_ci pname:samplerYcbcrConversion specifies whether the implementation 1610e5c31af7Sopenharmony_ci supports <<samplers-YCbCr-conversion,sampler {YCbCr} conversion>>. 1611e5c31af7Sopenharmony_ci If pname:samplerYcbcrConversion is ename:VK_FALSE, sampler {YCbCr} 1612e5c31af7Sopenharmony_ci conversion is not supported, and samplers using sampler {YCbCr} 1613e5c31af7Sopenharmony_ci conversion must: not be used. 1614e5c31af7Sopenharmony_ci// end::VK_KHR_sampler_ycbcr_conversion-features[] 1615e5c31af7Sopenharmony_ci 1616e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSamplerYcbcrConversionFeatures 1617e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1618e5c31af7Sopenharmony_ci 1619e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSamplerYcbcrConversionFeatures.txt[] 1620e5c31af7Sopenharmony_ci-- 1621e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] 1622e5c31af7Sopenharmony_ci 1623e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1624e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProtectedMemoryFeatures',desc='Structure describing protected memory features that can be supported by an implementation',type='structs'] 1625e5c31af7Sopenharmony_ci-- 1626e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProtectedMemoryFeatures structure is defined as: 1627e5c31af7Sopenharmony_ci 1628e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[] 1629e5c31af7Sopenharmony_ci 1630e5c31af7Sopenharmony_ciThis structure describes the following feature: 1631e5c31af7Sopenharmony_ci 1632e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1633e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1634e5c31af7Sopenharmony_ci structure. 1635e5c31af7Sopenharmony_ci 1636e5c31af7Sopenharmony_ci// Must have preceding whitespace 1637e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1638e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1639e5c31af7Sopenharmony_ci// tag::VK_KHR_protected_memory-features[] 1640e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-protectedMemory]] pname:protectedMemory 1641e5c31af7Sopenharmony_ci specifies whether protected memory is supported. 1642e5c31af7Sopenharmony_ci// end::VK_KHR_protected_memory-features[] 1643e5c31af7Sopenharmony_ci 1644e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProtectedMemoryFeatures 1645e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1646e5c31af7Sopenharmony_ci 1647e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProtectedMemoryFeatures.txt[] 1648e5c31af7Sopenharmony_ci-- 1649e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1650e5c31af7Sopenharmony_ci 1651e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[] 1652e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT',desc='Structure describing advanced blending features that can be supported by an implementation',type='structs'] 1653e5c31af7Sopenharmony_ci-- 1654e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT structure is 1655e5c31af7Sopenharmony_cidefined as: 1656e5c31af7Sopenharmony_ci 1657e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.txt[] 1658e5c31af7Sopenharmony_ci 1659e5c31af7Sopenharmony_ciThis structure describes the following feature: 1660e5c31af7Sopenharmony_ci 1661e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1662e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1663e5c31af7Sopenharmony_ci structure. 1664e5c31af7Sopenharmony_ci * [[features-advancedBlendCoherentOperations]] 1665e5c31af7Sopenharmony_ci pname:advancedBlendCoherentOperations specifies whether blending using 1666e5c31af7Sopenharmony_ci <<framebuffer-blend-advanced,advanced blend operations>> is guaranteed 1667e5c31af7Sopenharmony_ci to execute atomically and in <<drawing-primitive-order, primitive 1668e5c31af7Sopenharmony_ci order>>. 1669e5c31af7Sopenharmony_ci If this is ename:VK_TRUE, 1670e5c31af7Sopenharmony_ci ename:VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT is treated the 1671e5c31af7Sopenharmony_ci same as ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, and advanced blending 1672e5c31af7Sopenharmony_ci needs no additional synchronization over basic blending. 1673e5c31af7Sopenharmony_ci If this is ename:VK_FALSE, then memory dependencies are required to 1674e5c31af7Sopenharmony_ci guarantee order between two advanced blending operations that occur on 1675e5c31af7Sopenharmony_ci the same sample. 1676e5c31af7Sopenharmony_ci 1677e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT 1678e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1679e5c31af7Sopenharmony_ci 1680e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.txt[] 1681e5c31af7Sopenharmony_ci-- 1682e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[] 1683e5c31af7Sopenharmony_ci 1684e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[] 1685e5c31af7Sopenharmony_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'] 1686e5c31af7Sopenharmony_ci-- 1687e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceConditionalRenderingFeaturesEXT structure is 1688e5c31af7Sopenharmony_cidefined as: 1689e5c31af7Sopenharmony_ci 1690e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[] 1691e5c31af7Sopenharmony_ci 1692e5c31af7Sopenharmony_ciThis structure describes the following features: 1693e5c31af7Sopenharmony_ci 1694e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1695e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1696e5c31af7Sopenharmony_ci structure. 1697e5c31af7Sopenharmony_ci * [[features-conditionalRendering]] pname:conditionalRendering specifies 1698e5c31af7Sopenharmony_ci whether conditional rendering is supported. 1699e5c31af7Sopenharmony_ci * [[features-inheritedConditionalRendering]] 1700e5c31af7Sopenharmony_ci pname:inheritedConditionalRendering specifies whether a secondary 1701e5c31af7Sopenharmony_ci command buffer can: be executed while conditional rendering is active in 1702e5c31af7Sopenharmony_ci the primary command buffer. 1703e5c31af7Sopenharmony_ci 1704e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceConditionalRenderingFeaturesEXT 1705e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1706e5c31af7Sopenharmony_ci 1707e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceConditionalRenderingFeaturesEXT.txt[] 1708e5c31af7Sopenharmony_ci-- 1709e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[] 1710e5c31af7Sopenharmony_ci 1711e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 1712e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDrawParametersFeatures',desc='Structure describing shader draw parameter features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceShaderDrawParameterFeatures'] 1713e5c31af7Sopenharmony_ci-- 1714e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDrawParametersFeatures structure is defined 1715e5c31af7Sopenharmony_cias: 1716e5c31af7Sopenharmony_ci 1717e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParametersFeatures.txt[] 1718e5c31af7Sopenharmony_ci 1719e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDrawParameterFeatures.txt[] 1720e5c31af7Sopenharmony_ci 1721e5c31af7Sopenharmony_ciThis structure describes the following feature: 1722e5c31af7Sopenharmony_ci 1723e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1724e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1725e5c31af7Sopenharmony_ci structure. 1726e5c31af7Sopenharmony_ci 1727e5c31af7Sopenharmony_ci// Must have preceding whitespace 1728e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1729e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1730e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_draw_parameters-features[] 1731e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderDrawParameters]] 1732e5c31af7Sopenharmony_ci pname:shaderDrawParameters specifies whether the implementation supports 1733e5c31af7Sopenharmony_ci the SPIR-V code:DrawParameters capability. 1734e5c31af7Sopenharmony_ci When this feature is not enabled, shader modules must: not declare the 1735e5c31af7Sopenharmony_ci `SPV_KHR_shader_draw_parameters` extension or the code:DrawParameters 1736e5c31af7Sopenharmony_ci capability. 1737e5c31af7Sopenharmony_ci// end::VK_KHR_shader_draw_parameters-features[] 1738e5c31af7Sopenharmony_ci 1739e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDrawParametersFeatures 1740e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1741e5c31af7Sopenharmony_ci 1742e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDrawParametersFeatures.txt[] 1743e5c31af7Sopenharmony_ci-- 1744e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 1745e5c31af7Sopenharmony_ci 1746e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[] 1747e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMeshShaderFeaturesNV',desc='Structure describing mesh shading features that can be supported by an implementation',type='structs'] 1748e5c31af7Sopenharmony_ci-- 1749e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMeshShaderFeaturesNV structure is defined as: 1750e5c31af7Sopenharmony_ci 1751e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[] 1752e5c31af7Sopenharmony_ci 1753e5c31af7Sopenharmony_ciThis structure describes the following features: 1754e5c31af7Sopenharmony_ci 1755e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1756e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1757e5c31af7Sopenharmony_ci structure. 1758e5c31af7Sopenharmony_ci * [[features-taskShader]] pname:taskShader indicates whether the task 1759e5c31af7Sopenharmony_ci shader stage is supported. 1760e5c31af7Sopenharmony_ci * [[features-meshShader]] pname:meshShader indicates whether the mesh 1761e5c31af7Sopenharmony_ci shader stage is supported. 1762e5c31af7Sopenharmony_ci 1763e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMeshShaderFeaturesNV 1764e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1765e5c31af7Sopenharmony_ci 1766e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMeshShaderFeaturesNV.txt[] 1767e5c31af7Sopenharmony_ci-- 1768e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[] 1769e5c31af7Sopenharmony_ci 1770e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 1771e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDescriptorIndexingFeatures',desc='Structure describing descriptor indexing features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceDescriptorIndexingFeaturesEXT'] 1772e5c31af7Sopenharmony_ci-- 1773e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDescriptorIndexingFeatures structure is defined 1774e5c31af7Sopenharmony_cias: 1775e5c31af7Sopenharmony_ci 1776e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeatures.txt[] 1777e5c31af7Sopenharmony_ci 1778e5c31af7Sopenharmony_ciifdef::VK_EXT_descriptor_indexing[] 1779e5c31af7Sopenharmony_cior the equivalent 1780e5c31af7Sopenharmony_ci 1781e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDescriptorIndexingFeaturesEXT.txt[] 1782e5c31af7Sopenharmony_ciendif::VK_EXT_descriptor_indexing[] 1783e5c31af7Sopenharmony_ci 1784e5c31af7Sopenharmony_ciThis structure describes the following features: 1785e5c31af7Sopenharmony_ci 1786e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1787e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1788e5c31af7Sopenharmony_ci structure. 1789e5c31af7Sopenharmony_ci 1790e5c31af7Sopenharmony_ci// Must have preceding whitespace 1791e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 1792e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 1793e5c31af7Sopenharmony_ci// tag::VK_EXT_descriptor_indexing-features[] 1794e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInputAttachmentArrayDynamicIndexing]] 1795e5c31af7Sopenharmony_ci pname:shaderInputAttachmentArrayDynamicIndexing indicates whether arrays 1796e5c31af7Sopenharmony_ci of input attachments can: be indexed by dynamically uniform integer 1797e5c31af7Sopenharmony_ci expressions in shader code. 1798e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1799e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: be indexed only by 1800e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 1801e5c31af7Sopenharmony_ci code. 1802e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1803e5c31af7Sopenharmony_ci code:InputAttachmentArrayDynamicIndexing capability. 1804e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformTexelBufferArrayDynamicIndexing]] 1805e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayDynamicIndexing indicates whether 1806e5c31af7Sopenharmony_ci arrays of uniform texel buffers can: be indexed by dynamically uniform 1807e5c31af7Sopenharmony_ci integer expressions in shader code. 1808e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1809e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: be indexed only by 1810e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 1811e5c31af7Sopenharmony_ci code. 1812e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1813e5c31af7Sopenharmony_ci code:UniformTexelBufferArrayDynamicIndexing capability. 1814e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageTexelBufferArrayDynamicIndexing]] 1815e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayDynamicIndexing indicates whether 1816e5c31af7Sopenharmony_ci arrays of storage texel buffers can: be indexed by dynamically uniform 1817e5c31af7Sopenharmony_ci integer expressions in shader code. 1818e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1819e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: be indexed only by 1820e5c31af7Sopenharmony_ci constant integral expressions when aggregated into arrays in shader 1821e5c31af7Sopenharmony_ci code. 1822e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1823e5c31af7Sopenharmony_ci code:StorageTexelBufferArrayDynamicIndexing capability. 1824e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformBufferArrayNonUniformIndexing]] 1825e5c31af7Sopenharmony_ci pname:shaderUniformBufferArrayNonUniformIndexing indicates whether 1826e5c31af7Sopenharmony_ci arrays of uniform buffers can: be indexed by non-uniform integer 1827e5c31af7Sopenharmony_ci expressions in shader code. 1828e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1829e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or 1830e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must: not be indexed by 1831e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1832e5c31af7Sopenharmony_ci code. 1833e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1834e5c31af7Sopenharmony_ci code:UniformBufferArrayNonUniformIndexing capability. 1835e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderSampledImageArrayNonUniformIndexing]] 1836e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayNonUniformIndexing indicates whether arrays 1837e5c31af7Sopenharmony_ci of samplers or sampled images can: be indexed by non-uniform integer 1838e5c31af7Sopenharmony_ci expressions in shader code. 1839e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1840e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 1841e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 1842e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must: not be indexed by 1843e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1844e5c31af7Sopenharmony_ci code. 1845e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1846e5c31af7Sopenharmony_ci code:SampledImageArrayNonUniformIndexing capability. 1847e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageBufferArrayNonUniformIndexing]] 1848e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayNonUniformIndexing indicates whether 1849e5c31af7Sopenharmony_ci arrays of storage buffers can: be indexed by non-uniform integer 1850e5c31af7Sopenharmony_ci expressions in shader code. 1851e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1852e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or 1853e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must: not be indexed by 1854e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1855e5c31af7Sopenharmony_ci code. 1856e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1857e5c31af7Sopenharmony_ci code:StorageBufferArrayNonUniformIndexing capability. 1858e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageImageArrayNonUniformIndexing]] 1859e5c31af7Sopenharmony_ci pname:shaderStorageImageArrayNonUniformIndexing indicates whether arrays 1860e5c31af7Sopenharmony_ci of storage images can: be indexed by non-uniform integer expressions in 1861e5c31af7Sopenharmony_ci shader code. 1862e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1863e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must: not be indexed by 1864e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1865e5c31af7Sopenharmony_ci code. 1866e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1867e5c31af7Sopenharmony_ci code:StorageImageArrayNonUniformIndexing capability. 1868e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderInputAttachmentArrayNonUniformIndexing]] 1869e5c31af7Sopenharmony_ci pname:shaderInputAttachmentArrayNonUniformIndexing indicates whether 1870e5c31af7Sopenharmony_ci arrays of input attachments can: be indexed by non-uniform integer 1871e5c31af7Sopenharmony_ci expressions in shader code. 1872e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1873e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must: not be indexed by 1874e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1875e5c31af7Sopenharmony_ci code. 1876e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1877e5c31af7Sopenharmony_ci code:InputAttachmentArrayNonUniformIndexing capability. 1878e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderUniformTexelBufferArrayNonUniformIndexing]] 1879e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayNonUniformIndexing indicates whether 1880e5c31af7Sopenharmony_ci arrays of uniform texel buffers can: be indexed by non-uniform integer 1881e5c31af7Sopenharmony_ci expressions in shader code. 1882e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1883e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must: not be indexed by 1884e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1885e5c31af7Sopenharmony_ci code. 1886e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1887e5c31af7Sopenharmony_ci code:UniformTexelBufferArrayNonUniformIndexing capability. 1888e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-shaderStorageTexelBufferArrayNonUniformIndexing]] 1889e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayNonUniformIndexing indicates whether 1890e5c31af7Sopenharmony_ci arrays of storage texel buffers can: be indexed by non-uniform integer 1891e5c31af7Sopenharmony_ci expressions in shader code. 1892e5c31af7Sopenharmony_ci If this feature is not enabled, resources with a descriptor type of 1893e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must: not be indexed by 1894e5c31af7Sopenharmony_ci non-uniform integer expressions when aggregated into arrays in shader 1895e5c31af7Sopenharmony_ci code. 1896e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 1897e5c31af7Sopenharmony_ci code:StorageTexelBufferArrayNonUniformIndexing capability. 1898e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUniformBufferUpdateAfterBind]] 1899e5c31af7Sopenharmony_ci pname:descriptorBindingUniformBufferUpdateAfterBind indicates whether 1900e5c31af7Sopenharmony_ci the implementation supports updating uniform buffer descriptors after a 1901e5c31af7Sopenharmony_ci set is bound. 1902e5c31af7Sopenharmony_ci If this feature is not enabled, 1903e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1904e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER. 1905e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingSampledImageUpdateAfterBind]] 1906e5c31af7Sopenharmony_ci pname:descriptorBindingSampledImageUpdateAfterBind indicates whether the 1907e5c31af7Sopenharmony_ci implementation supports updating sampled image descriptors after a set 1908e5c31af7Sopenharmony_ci is bound. 1909e5c31af7Sopenharmony_ci If this feature is not enabled, 1910e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1911e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLER, 1912e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or 1913e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE. 1914e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageImageUpdateAfterBind]] 1915e5c31af7Sopenharmony_ci pname:descriptorBindingStorageImageUpdateAfterBind indicates whether the 1916e5c31af7Sopenharmony_ci implementation supports updating storage image descriptors after a set 1917e5c31af7Sopenharmony_ci is bound. 1918e5c31af7Sopenharmony_ci If this feature is not enabled, 1919e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1920e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE. 1921e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageBufferUpdateAfterBind]] 1922e5c31af7Sopenharmony_ci pname:descriptorBindingStorageBufferUpdateAfterBind indicates whether 1923e5c31af7Sopenharmony_ci the implementation supports updating storage buffer descriptors after a 1924e5c31af7Sopenharmony_ci set is bound. 1925e5c31af7Sopenharmony_ci If this feature is not enabled, 1926e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1927e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER. 1928e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUniformTexelBufferUpdateAfterBind]] 1929e5c31af7Sopenharmony_ci pname:descriptorBindingUniformTexelBufferUpdateAfterBind indicates 1930e5c31af7Sopenharmony_ci whether the implementation supports updating uniform texel buffer 1931e5c31af7Sopenharmony_ci descriptors after a set is bound. 1932e5c31af7Sopenharmony_ci If this feature is not enabled, 1933e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1934e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER. 1935e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingStorageTexelBufferUpdateAfterBind]] 1936e5c31af7Sopenharmony_ci pname:descriptorBindingStorageTexelBufferUpdateAfterBind indicates 1937e5c31af7Sopenharmony_ci whether the implementation supports updating storage texel buffer 1938e5c31af7Sopenharmony_ci descriptors after a set is bound. 1939e5c31af7Sopenharmony_ci If this feature is not enabled, 1940e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 1941e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER. 1942e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingUpdateUnusedWhilePending]] 1943e5c31af7Sopenharmony_ci pname:descriptorBindingUpdateUnusedWhilePending indicates whether the 1944e5c31af7Sopenharmony_ci implementation supports updating descriptors while the set is in use. 1945e5c31af7Sopenharmony_ci If this feature is not enabled, 1946e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT must: not be 1947e5c31af7Sopenharmony_ci used. 1948e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingPartiallyBound]] 1949e5c31af7Sopenharmony_ci pname:descriptorBindingPartiallyBound indicates whether the 1950e5c31af7Sopenharmony_ci implementation supports statically using a descriptor set binding in 1951e5c31af7Sopenharmony_ci which some descriptors are not valid. 1952e5c31af7Sopenharmony_ci If this feature is not enabled, 1953e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT must: not be used. 1954e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-descriptorBindingVariableDescriptorCount]] 1955e5c31af7Sopenharmony_ci pname:descriptorBindingVariableDescriptorCount indicates whether the 1956e5c31af7Sopenharmony_ci implementation supports descriptor sets with a variable-sized last 1957e5c31af7Sopenharmony_ci binding. 1958e5c31af7Sopenharmony_ci If this feature is not enabled, 1959e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT must: not be 1960e5c31af7Sopenharmony_ci used. 1961e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-runtimeDescriptorArray]] 1962e5c31af7Sopenharmony_ci pname:runtimeDescriptorArray indicates whether the implementation 1963e5c31af7Sopenharmony_ci supports the SPIR-V code:RuntimeDescriptorArray capability. 1964e5c31af7Sopenharmony_ci If this feature is not enabled, descriptors must: not be declared in 1965e5c31af7Sopenharmony_ci runtime arrays. 1966e5c31af7Sopenharmony_ci// end::VK_EXT_descriptor_indexing-features[] 1967e5c31af7Sopenharmony_ci 1968e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDescriptorIndexingFeatures 1969e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1970e5c31af7Sopenharmony_ci 1971e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDescriptorIndexingFeatures.txt[] 1972e5c31af7Sopenharmony_ci-- 1973e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 1974e5c31af7Sopenharmony_ci 1975e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[] 1976e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT',desc='Structure describing if fetching of vertex attribute may be repeated for instanced rendering',type='structs'] 1977e5c31af7Sopenharmony_ci-- 1978e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT structure is 1979e5c31af7Sopenharmony_cidefined as: 1980e5c31af7Sopenharmony_ci 1981e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[] 1982e5c31af7Sopenharmony_ci 1983e5c31af7Sopenharmony_ciThis structure describes the following features: 1984e5c31af7Sopenharmony_ci 1985e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 1986e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 1987e5c31af7Sopenharmony_ci structure. 1988e5c31af7Sopenharmony_ci * [[features-vertexAttributeInstanceRateDivisor]] 1989e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateDivisor specifies whether vertex 1990e5c31af7Sopenharmony_ci attribute fetching may be repeated in case of instanced rendering. 1991e5c31af7Sopenharmony_ci * [[features-vertexAttributeInstanceRateZeroDivisor]] 1992e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateZeroDivisor specifies whether a zero 1993e5c31af7Sopenharmony_ci value for sname:VkVertexInputBindingDivisorDescriptionEXT::pname:divisor 1994e5c31af7Sopenharmony_ci is supported. 1995e5c31af7Sopenharmony_ci 1996e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT 1997e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 1998e5c31af7Sopenharmony_ci 1999e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT.txt[] 2000e5c31af7Sopenharmony_ci-- 2001e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[] 2002e5c31af7Sopenharmony_ci 2003e5c31af7Sopenharmony_ciifdef::VK_EXT_astc_decode_mode[] 2004e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceASTCDecodeFeaturesEXT',desc='Structure describing ASTC decode mode features',type='structs'] 2005e5c31af7Sopenharmony_ci-- 2006e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceASTCDecodeFeaturesEXT structure is defined as: 2007e5c31af7Sopenharmony_ci 2008e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.txt[] 2009e5c31af7Sopenharmony_ci 2010e5c31af7Sopenharmony_ciThis structure describes the following feature: 2011e5c31af7Sopenharmony_ci 2012e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2013e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2014e5c31af7Sopenharmony_ci structure. 2015e5c31af7Sopenharmony_ci * [[features-astc-decodeModeSharedExponent]] 2016e5c31af7Sopenharmony_ci pname:decodeModeSharedExponent indicates whether the implementation 2017e5c31af7Sopenharmony_ci supports decoding ASTC compressed formats to 2018e5c31af7Sopenharmony_ci ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 internal precision. 2019e5c31af7Sopenharmony_ci 2020e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceASTCDecodeFeaturesEXT 2021e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2022e5c31af7Sopenharmony_ci 2023e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceASTCDecodeFeaturesEXT.txt[] 2024e5c31af7Sopenharmony_ci-- 2025e5c31af7Sopenharmony_ciendif::VK_EXT_astc_decode_mode[] 2026e5c31af7Sopenharmony_ci 2027e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 2028e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTransformFeedbackFeaturesEXT',desc='Structure describing transform feedback features that can be supported by an implementation',type='structs'] 2029e5c31af7Sopenharmony_ci-- 2030e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTransformFeedbackFeaturesEXT structure is defined 2031e5c31af7Sopenharmony_cias: 2032e5c31af7Sopenharmony_ci 2033e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.txt[] 2034e5c31af7Sopenharmony_ci 2035e5c31af7Sopenharmony_ciThis structure describes the following features: 2036e5c31af7Sopenharmony_ci 2037e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2038e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2039e5c31af7Sopenharmony_ci structure. 2040e5c31af7Sopenharmony_ci * [[features-transformFeedback]] pname:transformFeedback indicates whether 2041e5c31af7Sopenharmony_ci the implementation supports transform feedback and shader modules can: 2042e5c31af7Sopenharmony_ci declare the code:TransformFeedback capability. 2043e5c31af7Sopenharmony_ci * [[features-geometryStreams]] pname:geometryStreams indicates whether the 2044e5c31af7Sopenharmony_ci implementation supports the code:GeometryStreams SPIR-V capability. 2045e5c31af7Sopenharmony_ci 2046e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTransformFeedbackFeaturesEXT 2047e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2048e5c31af7Sopenharmony_ci 2049e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTransformFeedbackFeaturesEXT.txt[] 2050e5c31af7Sopenharmony_ci-- 2051e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 2052e5c31af7Sopenharmony_ci 2053e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] 2054e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVulkanMemoryModelFeatures',desc='Structure describing features supported by the memory model',type='structs'] 2055e5c31af7Sopenharmony_ci-- 2056e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVulkanMemoryModelFeatures structure is defined as: 2057e5c31af7Sopenharmony_ci 2058e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.txt[] 2059e5c31af7Sopenharmony_ci 2060e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[] 2061e5c31af7Sopenharmony_cior the equivalent 2062e5c31af7Sopenharmony_ci 2063e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVulkanMemoryModelFeaturesKHR.txt[] 2064e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[] 2065e5c31af7Sopenharmony_ci 2066e5c31af7Sopenharmony_ciThis structure describes the following features: 2067e5c31af7Sopenharmony_ci 2068e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2069e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2070e5c31af7Sopenharmony_ci structure. 2071e5c31af7Sopenharmony_ci 2072e5c31af7Sopenharmony_ci// Must have preceding whitespace 2073e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2074e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2075e5c31af7Sopenharmony_ci// tag::VK_KHR_vulkan_memory_model-features[] 2076e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModel]] pname:vulkanMemoryModel 2077e5c31af7Sopenharmony_ci indicates whether the Vulkan Memory Model is supported, as defined in 2078e5c31af7Sopenharmony_ci <<memory-model,Vulkan Memory Model>>. 2079e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2080e5c31af7Sopenharmony_ci code:VulkanMemoryModel capability. 2081e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModelDeviceScope]] 2082e5c31af7Sopenharmony_ci pname:vulkanMemoryModelDeviceScope indicates whether the Vulkan Memory 2083e5c31af7Sopenharmony_ci Model can use code:Device scope synchronization. 2084e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 2085e5c31af7Sopenharmony_ci code:VulkanMemoryModelDeviceScope capability. 2086e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-vulkanMemoryModelAvailabilityVisibilityChains]] 2087e5c31af7Sopenharmony_ci pname:vulkanMemoryModelAvailabilityVisibilityChains indicates whether 2088e5c31af7Sopenharmony_ci the Vulkan Memory Model can use <<memory-model-availability-visibility, 2089e5c31af7Sopenharmony_ci availability and visibility chains>> with more than one element. 2090e5c31af7Sopenharmony_ci// end::VK_KHR_vulkan_memory_model-features[] 2091e5c31af7Sopenharmony_ci 2092e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVulkanMemoryModelFeaturesKHR 2093e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2094e5c31af7Sopenharmony_ci 2095e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVulkanMemoryModelFeatures.txt[] 2096e5c31af7Sopenharmony_ci-- 2097e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_vulkan_memory_model[] 2098e5c31af7Sopenharmony_ci 2099e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[] 2100e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInlineUniformBlockFeaturesEXT',desc='Structure describing inline uniform block features that can be supported by an implementation',type='structs'] 2101e5c31af7Sopenharmony_ci-- 2102e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInlineUniformBlockFeaturesEXT structure is defined 2103e5c31af7Sopenharmony_cias: 2104e5c31af7Sopenharmony_ci 2105e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.txt[] 2106e5c31af7Sopenharmony_ci 2107e5c31af7Sopenharmony_ciThis structure describes the following features: 2108e5c31af7Sopenharmony_ci 2109e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2110e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2111e5c31af7Sopenharmony_ci structure. 2112e5c31af7Sopenharmony_ci * [[features-inlineUniformBlock]] pname:inlineUniformBlock indicates 2113e5c31af7Sopenharmony_ci whether the implementation supports inline uniform block descriptors. 2114e5c31af7Sopenharmony_ci If this feature is not enabled, 2115e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must: not be used. 2116e5c31af7Sopenharmony_ci * [[features-descriptorBindingInlineUniformBlockUpdateAfterBind]] 2117e5c31af7Sopenharmony_ci pname:descriptorBindingInlineUniformBlockUpdateAfterBind 2118e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2119e5c31af7Sopenharmony_ci is ename:VK_FALSE and reserved for future use. 2120e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2121e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2122e5c31af7Sopenharmony_ci indicates whether the implementation supports updating inline uniform 2123e5c31af7Sopenharmony_ci block descriptors after a set is bound. 2124e5c31af7Sopenharmony_ci If this feature is not enabled, 2125e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 2126e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT. 2127e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 2128e5c31af7Sopenharmony_ci 2129e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInlineUniformBlockFeaturesEXT 2130e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2131e5c31af7Sopenharmony_ci 2132e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInlineUniformBlockFeaturesEXT.txt[] 2133e5c31af7Sopenharmony_ci-- 2134e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[] 2135e5c31af7Sopenharmony_ci 2136e5c31af7Sopenharmony_ciifdef::VK_NV_representative_fragment_test[] 2137e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV',desc='Structure describing the representative fragment test features that can be supported by an implementation',type='structs'] 2138e5c31af7Sopenharmony_ci-- 2139e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV structure is 2140e5c31af7Sopenharmony_cidefined as: 2141e5c31af7Sopenharmony_ci 2142e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.txt[] 2143e5c31af7Sopenharmony_ci 2144e5c31af7Sopenharmony_ciThis structure describes the following feature: 2145e5c31af7Sopenharmony_ci 2146e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2147e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2148e5c31af7Sopenharmony_ci structure. 2149e5c31af7Sopenharmony_ci * [[features-representativeFragmentTest]] pname:representativeFragmentTest 2150e5c31af7Sopenharmony_ci indicates whether the implementation supports the representative 2151e5c31af7Sopenharmony_ci fragment test. 2152e5c31af7Sopenharmony_ci See <<fragops-rep-frag-test, Representative Fragment Test>>. 2153e5c31af7Sopenharmony_ci 2154e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV 2155e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2156e5c31af7Sopenharmony_ci 2157e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV.txt[] 2158e5c31af7Sopenharmony_ci-- 2159e5c31af7Sopenharmony_ciendif::VK_NV_representative_fragment_test[] 2160e5c31af7Sopenharmony_ci 2161e5c31af7Sopenharmony_ciifdef::VK_NV_scissor_exclusive[] 2162e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExclusiveScissorFeaturesNV',desc='Structure describing exclusive scissor features that can be supported by an implementation',type='structs'] 2163e5c31af7Sopenharmony_ci-- 2164e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExclusiveScissorFeaturesNV structure is defined 2165e5c31af7Sopenharmony_cias: 2166e5c31af7Sopenharmony_ci 2167e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.txt[] 2168e5c31af7Sopenharmony_ci 2169e5c31af7Sopenharmony_ciThis structure describes the following feature: 2170e5c31af7Sopenharmony_ci 2171e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2172e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2173e5c31af7Sopenharmony_ci structure. 2174e5c31af7Sopenharmony_ci * [[features-exclusiveScissor]] pname:exclusiveScissor indicates that the 2175e5c31af7Sopenharmony_ci implementation supports the exclusive scissor test. 2176e5c31af7Sopenharmony_ci 2177e5c31af7Sopenharmony_ciSee <<fragops-exclusive-scissor,Exclusive Scissor Test>> for more 2178e5c31af7Sopenharmony_ciinformation. 2179e5c31af7Sopenharmony_ci 2180e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExclusiveScissorFeaturesNV 2181e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2182e5c31af7Sopenharmony_ci 2183e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExclusiveScissorFeaturesNV.txt[] 2184e5c31af7Sopenharmony_ci-- 2185e5c31af7Sopenharmony_ciendif::VK_NV_scissor_exclusive[] 2186e5c31af7Sopenharmony_ci 2187e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[] 2188e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCornerSampledImageFeaturesNV',desc='Structure describing corner sampled image features that can be supported by an implementation',type='structs'] 2189e5c31af7Sopenharmony_ci-- 2190e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCornerSampledImageFeaturesNV structure is defined 2191e5c31af7Sopenharmony_cias: 2192e5c31af7Sopenharmony_ci 2193e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.txt[] 2194e5c31af7Sopenharmony_ci 2195e5c31af7Sopenharmony_ciThis structure describes the following feature: 2196e5c31af7Sopenharmony_ci 2197e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2198e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2199e5c31af7Sopenharmony_ci structure. 2200e5c31af7Sopenharmony_ci * [[features-cornersampledimage]] pname:cornerSampledImage specifies 2201e5c31af7Sopenharmony_ci whether images can be created with a 2202e5c31af7Sopenharmony_ci slink:VkImageCreateInfo::pname:flags containing 2203e5c31af7Sopenharmony_ci ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV. 2204e5c31af7Sopenharmony_ci See <<resources-images-corner-sampled,Corner-Sampled Images>>. 2205e5c31af7Sopenharmony_ci 2206e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCornerSampledImageFeaturesNV 2207e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2208e5c31af7Sopenharmony_ci 2209e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCornerSampledImageFeaturesNV.txt[] 2210e5c31af7Sopenharmony_ci-- 2211e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[] 2212e5c31af7Sopenharmony_ci 2213e5c31af7Sopenharmony_ciifdef::VK_NV_compute_shader_derivatives[] 2214e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceComputeShaderDerivativesFeaturesNV',desc='Structure describing compute shader derivative features that can be supported by an implementation',type='structs'] 2215e5c31af7Sopenharmony_ci-- 2216e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceComputeShaderDerivativesFeaturesNV structure is 2217e5c31af7Sopenharmony_cidefined as: 2218e5c31af7Sopenharmony_ci 2219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.txt[] 2220e5c31af7Sopenharmony_ci 2221e5c31af7Sopenharmony_ciThis structure describes the following features: 2222e5c31af7Sopenharmony_ci 2223e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2224e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2225e5c31af7Sopenharmony_ci structure. 2226e5c31af7Sopenharmony_ci * [[features-computeDerivativeGroupQuads]] 2227e5c31af7Sopenharmony_ci pname:computeDerivativeGroupQuads indicates that the implementation 2228e5c31af7Sopenharmony_ci supports the code:ComputeDerivativeGroupQuadsNV SPIR-V capability. 2229e5c31af7Sopenharmony_ci * [[features-computeDerivativeGroupLinear]] 2230e5c31af7Sopenharmony_ci pname:computeDerivativeGroupLinear indicates that the implementation 2231e5c31af7Sopenharmony_ci supports the code:ComputeDerivativeGroupLinearNV SPIR-V capability. 2232e5c31af7Sopenharmony_ci 2233e5c31af7Sopenharmony_ciSee <<shaders-scope-quad, Quad shader scope>> for more information. 2234e5c31af7Sopenharmony_ci 2235e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures. 2236e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2237e5c31af7Sopenharmony_ci 2238e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.txt[] 2239e5c31af7Sopenharmony_ci-- 2240e5c31af7Sopenharmony_ciendif::VK_NV_compute_shader_derivatives[] 2241e5c31af7Sopenharmony_ci 2242e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shader_barycentric[] 2243e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV',desc='Structure describing barycentric support in fragment shaders that can be supported by an implementation',type='structs'] 2244e5c31af7Sopenharmony_ci-- 2245e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV structure is 2246e5c31af7Sopenharmony_cidefined as: 2247e5c31af7Sopenharmony_ci 2248e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.txt[] 2249e5c31af7Sopenharmony_ci 2250e5c31af7Sopenharmony_ciThis structure describes the following feature: 2251e5c31af7Sopenharmony_ci 2252e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2253e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2254e5c31af7Sopenharmony_ci structure. 2255e5c31af7Sopenharmony_ci * [[features-fragmentShaderBarycentric]] pname:fragmentShaderBarycentric 2256e5c31af7Sopenharmony_ci indicates that the implementation supports the code:BaryCoordNV and 2257e5c31af7Sopenharmony_ci code:BaryCoordNoPerspNV SPIR-V fragment shader built-ins and supports 2258e5c31af7Sopenharmony_ci the code:PerVertexNV SPIR-V decoration on fragment shader input 2259e5c31af7Sopenharmony_ci variables. 2260e5c31af7Sopenharmony_ci 2261e5c31af7Sopenharmony_ciSee <<primsrast-barycentric,Barycentric Interpolation>> for more 2262e5c31af7Sopenharmony_ciinformation. 2263e5c31af7Sopenharmony_ci 2264e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV 2265e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2266e5c31af7Sopenharmony_ci 2267e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV.txt[] 2268e5c31af7Sopenharmony_ci-- 2269e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shader_barycentric[] 2270e5c31af7Sopenharmony_ci 2271e5c31af7Sopenharmony_ciifdef::VK_NV_shader_image_footprint[] 2272e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderImageFootprintFeaturesNV',desc='Structure describing shader image footprint features that can be supported by an implementation',type='structs'] 2273e5c31af7Sopenharmony_ci-- 2274e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderImageFootprintFeaturesNV structure is 2275e5c31af7Sopenharmony_cidefined as: 2276e5c31af7Sopenharmony_ci 2277e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.txt[] 2278e5c31af7Sopenharmony_ci 2279e5c31af7Sopenharmony_ciThis structure describes the following feature: 2280e5c31af7Sopenharmony_ci 2281e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2282e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2283e5c31af7Sopenharmony_ci structure. 2284e5c31af7Sopenharmony_ci * [[features-imageFootprint]] pname:imageFootprint specifies whether the 2285e5c31af7Sopenharmony_ci implementation supports the code:ImageFootprintNV SPIR-V capability. 2286e5c31af7Sopenharmony_ci 2287e5c31af7Sopenharmony_ciSee <<textures-footprint,Texel Footprint Evaluation>> for more information. 2288e5c31af7Sopenharmony_ci 2289e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderImageFootprintFeaturesNV 2290e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2291e5c31af7Sopenharmony_ci 2292e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderImageFootprintFeaturesNV.txt[] 2293e5c31af7Sopenharmony_ci-- 2294e5c31af7Sopenharmony_ciendif::VK_NV_shader_image_footprint[] 2295e5c31af7Sopenharmony_ci 2296e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[] 2297e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShadingRateImageFeaturesNV',desc='Structure describing shading rate image features that can be supported by an implementation',type='structs'] 2298e5c31af7Sopenharmony_ci-- 2299e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShadingRateImageFeaturesNV structure is defined 2300e5c31af7Sopenharmony_cias: 2301e5c31af7Sopenharmony_ci 2302e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.txt[] 2303e5c31af7Sopenharmony_ci 2304e5c31af7Sopenharmony_ciThis structure describes the following features: 2305e5c31af7Sopenharmony_ci 2306e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2307e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2308e5c31af7Sopenharmony_ci structure. 2309e5c31af7Sopenharmony_ci * [[features-shadingRateImage]] pname:shadingRateImage indicates that the 2310e5c31af7Sopenharmony_ci implementation supports the use of a shading rate image to derive an 2311e5c31af7Sopenharmony_ci effective shading rate for fragment processing. 2312e5c31af7Sopenharmony_ci It also indicates that the implementation supports the 2313e5c31af7Sopenharmony_ci code:ShadingRateNV SPIR-V execution mode. 2314e5c31af7Sopenharmony_ci * [[features-shadingRateCoarseSampleOrder]] 2315e5c31af7Sopenharmony_ci pname:shadingRateCoarseSampleOrder indicates that the implementation 2316e5c31af7Sopenharmony_ci supports a user-configurable ordering of coverage samples in fragments 2317e5c31af7Sopenharmony_ci larger than one pixel. 2318e5c31af7Sopenharmony_ci 2319e5c31af7Sopenharmony_ciSee <<primsrast-shading-rate-image, Shading Rate Image>> for more 2320e5c31af7Sopenharmony_ciinformation. 2321e5c31af7Sopenharmony_ci 2322e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShadingRateImageFeaturesNV 2323e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2324e5c31af7Sopenharmony_ci 2325e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShadingRateImageFeaturesNV.txt[] 2326e5c31af7Sopenharmony_ci-- 2327e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[] 2328e5c31af7Sopenharmony_ci 2329e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 2330e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMapFeaturesEXT',desc='Structure describing fragment density map features that can be supported by an implementation',type='structs'] 2331e5c31af7Sopenharmony_ci-- 2332e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMapFeaturesEXT structure is defined 2333e5c31af7Sopenharmony_cias: 2334e5c31af7Sopenharmony_ci 2335e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.txt[] 2336e5c31af7Sopenharmony_ci 2337e5c31af7Sopenharmony_ciThis structure describes the following features: 2338e5c31af7Sopenharmony_ci 2339e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2340e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2341e5c31af7Sopenharmony_ci structure. 2342e5c31af7Sopenharmony_ci * [[features-fragmentDensityMap]] pname:fragmentDensityMap specifies 2343e5c31af7Sopenharmony_ci whether the implementation supports render passes with a fragment 2344e5c31af7Sopenharmony_ci density map attachment. 2345e5c31af7Sopenharmony_ci If this feature is not enabled and the pname:pNext chain of 2346e5c31af7Sopenharmony_ci slink:VkRenderPassCreateInfo includes a 2347e5c31af7Sopenharmony_ci slink:VkRenderPassFragmentDensityMapCreateInfoEXT structure, 2348e5c31af7Sopenharmony_ci pname:fragmentDensityMapAttachment must: be ename:VK_ATTACHMENT_UNUSED. 2349e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapDynamic]] pname:fragmentDensityMapDynamic 2350e5c31af7Sopenharmony_ci specifies whether the implementation supports dynamic fragment density 2351e5c31af7Sopenharmony_ci map image views. 2352e5c31af7Sopenharmony_ci If this feature is not enabled, 2353e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT must: 2354e5c31af7Sopenharmony_ci not be included in slink:VkImageViewCreateInfo::pname:flags. 2355e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapNonSubsampledImages]] 2356e5c31af7Sopenharmony_ci pname:fragmentDensityMapNonSubsampledImages specifies whether the 2357e5c31af7Sopenharmony_ci implementation supports regular non-subsampled image attachments with 2358e5c31af7Sopenharmony_ci fragment density map render passes. 2359e5c31af7Sopenharmony_ci If this feature is not enabled, render passes with a 2360e5c31af7Sopenharmony_ci <<renderpass-fragmentdensitymapattachment,fragment density map 2361e5c31af7Sopenharmony_ci attachment>> must: only have <<samplers-subsamplesampler,subsampled 2362e5c31af7Sopenharmony_ci attachments>> bound. 2363e5c31af7Sopenharmony_ci 2364e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMapFeaturesEXT 2365e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2366e5c31af7Sopenharmony_ci 2367e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMapFeaturesEXT.txt[] 2368e5c31af7Sopenharmony_ci-- 2369e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 2370e5c31af7Sopenharmony_ci 2371e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map2[] 2372e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentDensityMap2FeaturesEXT',desc='Structure describing additional fragment density map features that can be supported by an implementation',type='structs'] 2373e5c31af7Sopenharmony_ci-- 2374e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentDensityMap2FeaturesEXT structure is 2375e5c31af7Sopenharmony_cidefined as: 2376e5c31af7Sopenharmony_ci 2377e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.txt[] 2378e5c31af7Sopenharmony_ci 2379e5c31af7Sopenharmony_ciThis structure describes the following features: 2380e5c31af7Sopenharmony_ci 2381e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2382e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2383e5c31af7Sopenharmony_ci structure. 2384e5c31af7Sopenharmony_ci * [[features-fragmentDensityMapDeferred]] pname:fragmentDensityMapDeferred 2385e5c31af7Sopenharmony_ci specifies whether the implementation supports deferred reads of fragment 2386e5c31af7Sopenharmony_ci density map image views. 2387e5c31af7Sopenharmony_ci If this feature is not enabled, 2388e5c31af7Sopenharmony_ci ename:VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT must: 2389e5c31af7Sopenharmony_ci not be included in sname:VkImageViewCreateInfo::pname:flags. 2390e5c31af7Sopenharmony_ci 2391e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentDensityMap2FeaturesEXT 2392e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2393e5c31af7Sopenharmony_ci 2394e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentDensityMap2FeaturesEXT.txt[] 2395e5c31af7Sopenharmony_ci-- 2396e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map2[] 2397e5c31af7Sopenharmony_ci 2398e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_invocation_mask[] 2399e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInvocationMaskFeaturesHUAWEI',desc='Structure describing invocation mask features that can be supported by an implementation',type='structs'] 2400e5c31af7Sopenharmony_ci-- 2401e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInvocationMaskFeaturesHUAWEI structure is defined 2402e5c31af7Sopenharmony_cias: 2403e5c31af7Sopenharmony_ci 2404e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.txt[] 2405e5c31af7Sopenharmony_ci 2406e5c31af7Sopenharmony_ciThis structure describes the following features: 2407e5c31af7Sopenharmony_ci 2408e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2409e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2410e5c31af7Sopenharmony_ci structure. 2411e5c31af7Sopenharmony_ci * [[features-invocationMask]] pname:invocationMask indicates that the 2412e5c31af7Sopenharmony_ci implementation supports the use of an invocation mask image to optimize 2413e5c31af7Sopenharmony_ci the ray dispatch. 2414e5c31af7Sopenharmony_ci 2415e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInvocationMaskFeaturesHUAWEI 2416e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2417e5c31af7Sopenharmony_ci 2418e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInvocationMaskFeaturesHUAWEI.txt[] 2419e5c31af7Sopenharmony_ci-- 2420e5c31af7Sopenharmony_ciendif::VK_HUAWEI_invocation_mask[] 2421e5c31af7Sopenharmony_ci 2422e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_scalar_block_layout[] 2423e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceScalarBlockLayoutFeatures',desc='Structure indicating support for scalar block layouts',type='structs',alias='VkPhysicalDeviceScalarBlockLayoutFeaturesEXT'] 2424e5c31af7Sopenharmony_ci-- 2425e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceScalarBlockLayoutFeatures structure is defined as: 2426e5c31af7Sopenharmony_ci 2427e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.txt[] 2428e5c31af7Sopenharmony_ci 2429e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[] 2430e5c31af7Sopenharmony_cior the equivalent 2431e5c31af7Sopenharmony_ci 2432e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceScalarBlockLayoutFeaturesEXT.txt[] 2433e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[] 2434e5c31af7Sopenharmony_ci 2435e5c31af7Sopenharmony_ciThis structure describes the following feature: 2436e5c31af7Sopenharmony_ci 2437e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2438e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2439e5c31af7Sopenharmony_ci structure. 2440e5c31af7Sopenharmony_ci 2441e5c31af7Sopenharmony_ci// Must have preceding whitespace 2442e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2443e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2444e5c31af7Sopenharmony_ci// tag::VK_EXT_scalar_block_layout-features[] 2445e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-scalarBlockLayout]] pname:scalarBlockLayout 2446e5c31af7Sopenharmony_ci indicates that the implementation supports the layout of resource blocks 2447e5c31af7Sopenharmony_ci in shaders using <<interfaces-alignment-requirements, scalar 2448e5c31af7Sopenharmony_ci alignment>>. 2449e5c31af7Sopenharmony_ci// end::VK_EXT_scalar_block_layout-features[] 2450e5c31af7Sopenharmony_ci 2451e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceScalarBlockLayoutFeatures 2452e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2453e5c31af7Sopenharmony_ci 2454e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceScalarBlockLayoutFeatures.txt[] 2455e5c31af7Sopenharmony_ci-- 2456e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_scalar_block_layout[] 2457e5c31af7Sopenharmony_ci 2458e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 2459e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceUniformBufferStandardLayoutFeatures',desc='Structure indicating support for std430-like packing in uniform buffers',type='structs',alias='VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR'] 2460e5c31af7Sopenharmony_ci-- 2461e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceUniformBufferStandardLayoutFeatures structure is 2462e5c31af7Sopenharmony_cidefined as: 2463e5c31af7Sopenharmony_ci 2464e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.txt[] 2465e5c31af7Sopenharmony_ci 2466e5c31af7Sopenharmony_ciifdef::VK_KHR_uniform_buffer_standard_layout[] 2467e5c31af7Sopenharmony_cior the equivalent 2468e5c31af7Sopenharmony_ci 2469e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR.txt[] 2470e5c31af7Sopenharmony_ciendif::VK_KHR_uniform_buffer_standard_layout[] 2471e5c31af7Sopenharmony_ci 2472e5c31af7Sopenharmony_ciThis structure describes the following feature: 2473e5c31af7Sopenharmony_ci 2474e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2475e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2476e5c31af7Sopenharmony_ci structure. 2477e5c31af7Sopenharmony_ci 2478e5c31af7Sopenharmony_ci// Must have preceding whitespace 2479e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2480e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2481e5c31af7Sopenharmony_ci// tag::VK_KHR_uniform_buffer_standard_layout-features[] 2482e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-uniformBufferStandardLayout]] 2483e5c31af7Sopenharmony_ci pname:uniformBufferStandardLayout indicates that the implementation 2484e5c31af7Sopenharmony_ci supports the same layouts for uniform buffers as for storage and other 2485e5c31af7Sopenharmony_ci kinds of buffers. 2486e5c31af7Sopenharmony_ci See <<interfaces-resources-standard-layout,Standard Buffer Layout>>. 2487e5c31af7Sopenharmony_ci// end::VK_KHR_uniform_buffer_standard_layout-features[] 2488e5c31af7Sopenharmony_ci 2489e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceUniformBufferStandardLayoutFeatures 2490e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2491e5c31af7Sopenharmony_ci 2492e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.txt[] 2493e5c31af7Sopenharmony_ci-- 2494e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 2495e5c31af7Sopenharmony_ci 2496e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[] 2497e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipEnableFeaturesEXT',desc='Structure indicating support for explicit enable of depth clip',type='structs'] 2498e5c31af7Sopenharmony_ci-- 2499e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipEnableFeaturesEXT structure is defined 2500e5c31af7Sopenharmony_cias: 2501e5c31af7Sopenharmony_ci 2502e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.txt[] 2503e5c31af7Sopenharmony_ci 2504e5c31af7Sopenharmony_ciThis structure describes the following feature: 2505e5c31af7Sopenharmony_ci 2506e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2507e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2508e5c31af7Sopenharmony_ci structure. 2509e5c31af7Sopenharmony_ci * [[features-depthClipEnable]] pname:depthClipEnable indicates that the 2510e5c31af7Sopenharmony_ci implementation supports setting the depth clipping operation explicitly 2511e5c31af7Sopenharmony_ci via the slink:VkPipelineRasterizationDepthClipStateCreateInfoEXT 2512e5c31af7Sopenharmony_ci pipeline state. 2513e5c31af7Sopenharmony_ci Otherwise depth clipping is only enabled when 2514e5c31af7Sopenharmony_ci slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable is 2515e5c31af7Sopenharmony_ci set to ename:VK_FALSE. 2516e5c31af7Sopenharmony_ci 2517e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipEnableFeaturesEXT 2518e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2519e5c31af7Sopenharmony_ci 2520e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipEnableFeaturesEXT.txt[] 2521e5c31af7Sopenharmony_ci-- 2522e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[] 2523e5c31af7Sopenharmony_ci 2524e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[] 2525e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMemoryPriorityFeaturesEXT',desc='Structure describing memory priority features that can be supported by an implementation',type='structs'] 2526e5c31af7Sopenharmony_ci-- 2527e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMemoryPriorityFeaturesEXT structure is defined as: 2528e5c31af7Sopenharmony_ci 2529e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[] 2530e5c31af7Sopenharmony_ci 2531e5c31af7Sopenharmony_ciThis structure describes the following feature: 2532e5c31af7Sopenharmony_ci 2533e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2534e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2535e5c31af7Sopenharmony_ci structure. 2536e5c31af7Sopenharmony_ci * [[features-memoryPriority]] pname:memoryPriority indicates that the 2537e5c31af7Sopenharmony_ci implementation supports memory priorities specified at memory allocation 2538e5c31af7Sopenharmony_ci time via slink:VkMemoryPriorityAllocateInfoEXT. 2539e5c31af7Sopenharmony_ci 2540e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMemoryPriorityFeaturesEXT 2541e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2542e5c31af7Sopenharmony_ci 2543e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMemoryPriorityFeaturesEXT.txt[] 2544e5c31af7Sopenharmony_ci-- 2545e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[] 2546e5c31af7Sopenharmony_ci 2547e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2548e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeatures',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferDeviceAddressFeaturesKHR'] 2549e5c31af7Sopenharmony_ci-- 2550e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeatures structure is defined 2551e5c31af7Sopenharmony_cias: 2552e5c31af7Sopenharmony_ci 2553e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.txt[] 2554e5c31af7Sopenharmony_ci 2555e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[] 2556e5c31af7Sopenharmony_cior the equivalent 2557e5c31af7Sopenharmony_ci 2558e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesKHR.txt[] 2559e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[] 2560e5c31af7Sopenharmony_ci 2561e5c31af7Sopenharmony_ciThis structure describes the following features: 2562e5c31af7Sopenharmony_ci 2563e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2564e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2565e5c31af7Sopenharmony_ci structure. 2566e5c31af7Sopenharmony_ci 2567e5c31af7Sopenharmony_ci// Must have preceding whitespace 2568e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2569e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2570e5c31af7Sopenharmony_ci// tag::VK_EXT_buffer_device_address-features[] 2571e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddress]] 2572e5c31af7Sopenharmony_ci pname:bufferDeviceAddress indicates that the implementation supports 2573e5c31af7Sopenharmony_ci accessing buffer memory in shaders as storage buffers via an address 2574e5c31af7Sopenharmony_ci queried from flink:vkGetBufferDeviceAddress. 2575e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddressCaptureReplay]] 2576e5c31af7Sopenharmony_ci pname:bufferDeviceAddressCaptureReplay indicates that the implementation 2577e5c31af7Sopenharmony_ci supports saving and reusing buffer and device addresses, e.g. for trace 2578e5c31af7Sopenharmony_ci capture and replay. 2579e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-bufferDeviceAddressMultiDevice]] 2580e5c31af7Sopenharmony_ci pname:bufferDeviceAddressMultiDevice indicates that the implementation 2581e5c31af7Sopenharmony_ci supports the pname:bufferDeviceAddress 2582e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline+VK_KHR_ray_query[feature] 2583e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 2584e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_query[] 2585e5c31af7Sopenharmony_ci and pname:rayTracingPipeline features 2586e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2587e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 2588e5c31af7Sopenharmony_ci , pname:rayTracingPipeline and pname:rayQuery features 2589e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2590e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 2591e5c31af7Sopenharmony_ciifndef::VK_KHR_ray_tracing_pipeline[] 2592e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 2593e5c31af7Sopenharmony_ci and pname:rayQuery features 2594e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 2595e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 2596e5c31af7Sopenharmony_ci for logical devices created with multiple physical devices. 2597e5c31af7Sopenharmony_ci If this feature is not supported, buffer 2598e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 2599e5c31af7Sopenharmony_ci and acceleration structure 2600e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 2601e5c31af7Sopenharmony_ci addresses must: not be queried on a logical device created with more 2602e5c31af7Sopenharmony_ci than one physical device. 2603e5c31af7Sopenharmony_ci// end::VK_EXT_buffer_device_address-features[] 2604e5c31af7Sopenharmony_ci 2605e5c31af7Sopenharmony_ci[NOTE] 2606e5c31af7Sopenharmony_ci.Note 2607e5c31af7Sopenharmony_ci==== 2608e5c31af7Sopenharmony_cipname:bufferDeviceAddressMultiDevice exists to allow certain legacy 2609e5c31af7Sopenharmony_ciplatforms to be able to support pname:bufferDeviceAddress without needing to 2610e5c31af7Sopenharmony_cisupport shared GPU virtual addresses for multi-device configurations. 2611e5c31af7Sopenharmony_ci==== 2612e5c31af7Sopenharmony_ci 2613e5c31af7Sopenharmony_ciSee flink:vkGetBufferDeviceAddress for more information. 2614e5c31af7Sopenharmony_ci 2615e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeatures 2616e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2617e5c31af7Sopenharmony_ci 2618e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeatures.txt[] 2619e5c31af7Sopenharmony_ci-- 2620e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2621e5c31af7Sopenharmony_ci 2622e5c31af7Sopenharmony_ciifdef::VK_EXT_buffer_device_address[] 2623e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',desc='Structure describing buffer address features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceBufferAddressFeaturesEXT'] 2624e5c31af7Sopenharmony_ci-- 2625e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure is 2626e5c31af7Sopenharmony_cidefined as: 2627e5c31af7Sopenharmony_ci 2628e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.txt[] 2629e5c31af7Sopenharmony_ci 2630e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBufferAddressFeaturesEXT.txt[] 2631e5c31af7Sopenharmony_ci 2632e5c31af7Sopenharmony_ciThis structure describes the following features: 2633e5c31af7Sopenharmony_ci 2634e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2635e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2636e5c31af7Sopenharmony_ci structure. 2637e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressEXT]] pname:bufferDeviceAddress indicates 2638e5c31af7Sopenharmony_ci that the implementation supports accessing buffer memory in shaders as 2639e5c31af7Sopenharmony_ci storage buffers via an address queried from 2640e5c31af7Sopenharmony_ci flink:vkGetBufferDeviceAddressEXT. 2641e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressCaptureReplayEXT]] 2642e5c31af7Sopenharmony_ci pname:bufferDeviceAddressCaptureReplay indicates that the implementation 2643e5c31af7Sopenharmony_ci supports saving and reusing buffer addresses, e.g. for trace capture and 2644e5c31af7Sopenharmony_ci replay. 2645e5c31af7Sopenharmony_ci * [[features-bufferDeviceAddressMultiDeviceEXT]] 2646e5c31af7Sopenharmony_ci pname:bufferDeviceAddressMultiDevice indicates that the implementation 2647e5c31af7Sopenharmony_ci supports the pname:bufferDeviceAddress feature for logical devices 2648e5c31af7Sopenharmony_ci created with multiple physical devices. 2649e5c31af7Sopenharmony_ci If this feature is not supported, buffer addresses must: not be queried 2650e5c31af7Sopenharmony_ci on a logical device created with more than one physical device. 2651e5c31af7Sopenharmony_ci 2652e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBufferDeviceAddressFeaturesEXT 2653e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2654e5c31af7Sopenharmony_ci 2655e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2656e5c31af7Sopenharmony_ci[NOTE] 2657e5c31af7Sopenharmony_ci.Note 2658e5c31af7Sopenharmony_ci==== 2659e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT structure has the 2660e5c31af7Sopenharmony_cisame members as the sname:VkPhysicalDeviceBufferDeviceAddressFeatures 2661e5c31af7Sopenharmony_cistructure, but the functionality indicated by the members is expressed 2662e5c31af7Sopenharmony_cidifferently. 2663e5c31af7Sopenharmony_ciThe features indicated by the 2664e5c31af7Sopenharmony_cisname:VkPhysicalDeviceBufferDeviceAddressFeatures structure requires 2665e5c31af7Sopenharmony_ciadditional flags to be passed at memory allocation time, and the capture and 2666e5c31af7Sopenharmony_cireplay mechanism is built around opaque capture addresses for buffer and 2667e5c31af7Sopenharmony_cimemory objects. 2668e5c31af7Sopenharmony_ci==== 2669e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[] 2670e5c31af7Sopenharmony_ci 2671e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBufferDeviceAddressFeaturesEXT.txt[] 2672e5c31af7Sopenharmony_ci-- 2673e5c31af7Sopenharmony_ciendif::VK_EXT_buffer_device_address[] 2674e5c31af7Sopenharmony_ci 2675e5c31af7Sopenharmony_ciifdef::VK_NV_dedicated_allocation_image_aliasing[] 2676e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',desc='Structure describing dedicated allocation image aliasing features that can be supported by an implementation',type='structs'] 2677e5c31af7Sopenharmony_ci-- 2678e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV 2679e5c31af7Sopenharmony_cistructure is defined as: 2680e5c31af7Sopenharmony_ci 2681e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.txt[] 2682e5c31af7Sopenharmony_ci 2683e5c31af7Sopenharmony_ciThis structure describes the following feature: 2684e5c31af7Sopenharmony_ci 2685e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2686e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2687e5c31af7Sopenharmony_ci structure. 2688e5c31af7Sopenharmony_ci * [[features-dedicatedAllocationImageAliasing]] 2689e5c31af7Sopenharmony_ci pname:dedicatedAllocationImageAliasing indicates that the implementation 2690e5c31af7Sopenharmony_ci supports aliasing of compatible image objects on a dedicated allocation. 2691e5c31af7Sopenharmony_ci 2692e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV 2693e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2694e5c31af7Sopenharmony_ci 2695e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV.txt[] 2696e5c31af7Sopenharmony_ci-- 2697e5c31af7Sopenharmony_ciendif::VK_NV_dedicated_allocation_image_aliasing[] 2698e5c31af7Sopenharmony_ci 2699e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 2700e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImagelessFramebufferFeatures',desc='Structure indicating support for imageless framebuffers',type='structs',alias='VkPhysicalDeviceImagelessFramebufferFeaturesKHR'] 2701e5c31af7Sopenharmony_ci-- 2702e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImagelessFramebufferFeatures structure is defined 2703e5c31af7Sopenharmony_cias: 2704e5c31af7Sopenharmony_ci 2705e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeatures.txt[] 2706e5c31af7Sopenharmony_ci 2707e5c31af7Sopenharmony_ciifdef::VK_KHR_imageless_framebuffer[] 2708e5c31af7Sopenharmony_cior the equivalent 2709e5c31af7Sopenharmony_ci 2710e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.txt[] 2711e5c31af7Sopenharmony_ciendif::VK_KHR_imageless_framebuffer[] 2712e5c31af7Sopenharmony_ci 2713e5c31af7Sopenharmony_ciThis structure describes the following feature: 2714e5c31af7Sopenharmony_ci 2715e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2716e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2717e5c31af7Sopenharmony_ci structure. 2718e5c31af7Sopenharmony_ci 2719e5c31af7Sopenharmony_ci// Must have preceding whitespace 2720e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2721e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2722e5c31af7Sopenharmony_ci// tag::VK_KHR_imageless_framebuffer-features[] 2723e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-imagelessFramebuffer]] 2724e5c31af7Sopenharmony_ci pname:imagelessFramebuffer indicates that the implementation supports 2725e5c31af7Sopenharmony_ci specifying the image view for attachments at render pass begin time via 2726e5c31af7Sopenharmony_ci slink:VkRenderPassAttachmentBeginInfo. 2727e5c31af7Sopenharmony_ci// end::VK_KHR_imageless_framebuffer-features[] 2728e5c31af7Sopenharmony_ci 2729e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImagelessFramebufferFeatures 2730e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2731e5c31af7Sopenharmony_ci 2732e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImagelessFramebufferFeatures.txt[] 2733e5c31af7Sopenharmony_ci-- 2734e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 2735e5c31af7Sopenharmony_ci 2736e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[] 2737e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',desc='Structure describing fragment shader interlock features that can be supported by an implementation',type='structs'] 2738e5c31af7Sopenharmony_ci-- 2739e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT structure is 2740e5c31af7Sopenharmony_cidefined as: 2741e5c31af7Sopenharmony_ci 2742e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.txt[] 2743e5c31af7Sopenharmony_ci 2744e5c31af7Sopenharmony_ciThis structure describes the following features: 2745e5c31af7Sopenharmony_ci 2746e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2747e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2748e5c31af7Sopenharmony_ci structure. 2749e5c31af7Sopenharmony_ci * [[features-fragmentShaderSampleInterlock]] 2750e5c31af7Sopenharmony_ci pname:fragmentShaderSampleInterlock indicates that the implementation 2751e5c31af7Sopenharmony_ci supports the code:FragmentShaderSampleInterlockEXT SPIR-V capability. 2752e5c31af7Sopenharmony_ci * [[features-fragmentShaderPixelInterlock]] 2753e5c31af7Sopenharmony_ci pname:fragmentShaderPixelInterlock indicates that the implementation 2754e5c31af7Sopenharmony_ci supports the code:FragmentShaderPixelInterlockEXT SPIR-V capability. 2755e5c31af7Sopenharmony_ci * [[features-fragmentShaderShadingRateInterlock]] 2756e5c31af7Sopenharmony_ci pname:fragmentShaderShadingRateInterlock indicates that the 2757e5c31af7Sopenharmony_ci implementation supports the code:FragmentShaderShadingRateInterlockEXT 2758e5c31af7Sopenharmony_ci SPIR-V capability. 2759e5c31af7Sopenharmony_ci 2760e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT 2761e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2762e5c31af7Sopenharmony_ci 2763e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT.txt[] 2764e5c31af7Sopenharmony_ci-- 2765e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[] 2766e5c31af7Sopenharmony_ci 2767e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[] 2768e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCooperativeMatrixFeaturesNV',desc='Structure describing cooperative matrix features that can be supported by an implementation',type='structs'] 2769e5c31af7Sopenharmony_ci-- 2770e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCooperativeMatrixFeaturesNV structure is defined 2771e5c31af7Sopenharmony_cias: 2772e5c31af7Sopenharmony_ci 2773e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.txt[] 2774e5c31af7Sopenharmony_ci 2775e5c31af7Sopenharmony_ciThis structure describes the following features: 2776e5c31af7Sopenharmony_ci 2777e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2778e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2779e5c31af7Sopenharmony_ci structure. 2780e5c31af7Sopenharmony_ci * [[features-cooperativeMatrix]] pname:cooperativeMatrix indicates that 2781e5c31af7Sopenharmony_ci the implementation supports the code:CooperativeMatrixNV SPIR-V 2782e5c31af7Sopenharmony_ci capability. 2783e5c31af7Sopenharmony_ci * [[features-cooperativeMatrixRobustBufferAccess]] 2784e5c31af7Sopenharmony_ci pname:cooperativeMatrixRobustBufferAccess indicates that the 2785e5c31af7Sopenharmony_ci implementation supports robust buffer access for SPIR-V 2786e5c31af7Sopenharmony_ci code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV 2787e5c31af7Sopenharmony_ci instructions. 2788e5c31af7Sopenharmony_ci 2789e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCooperativeMatrixFeaturesNV 2790e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2791e5c31af7Sopenharmony_ci 2792e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCooperativeMatrixFeaturesNV.txt[] 2793e5c31af7Sopenharmony_ci-- 2794e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[] 2795e5c31af7Sopenharmony_ci 2796e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[] 2797e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcrImageArraysFeaturesEXT',desc='Structure describing extended {YCbCr} image creation features that can be supported by an implementation',type='structs'] 2798e5c31af7Sopenharmony_ci-- 2799e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcrImageArraysFeaturesEXT structure is defined 2800e5c31af7Sopenharmony_cias: 2801e5c31af7Sopenharmony_ci 2802e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.txt[] 2803e5c31af7Sopenharmony_ci 2804e5c31af7Sopenharmony_ciThis structure describes the following feature: 2805e5c31af7Sopenharmony_ci 2806e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2807e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2808e5c31af7Sopenharmony_ci structure. 2809e5c31af7Sopenharmony_ci * [[features-ycbcrImageArrays]] pname:ycbcrImageArrays indicates that the 2810e5c31af7Sopenharmony_ci implementation supports creating images with a format that requires 2811e5c31af7Sopenharmony_ci <<formats-requiring-sampler-ycbcr-conversion, {YCbCr} conversion>> and 2812e5c31af7Sopenharmony_ci has multiple array layers. 2813e5c31af7Sopenharmony_ci 2814e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcrImageArraysFeaturesEXT 2815e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2816e5c31af7Sopenharmony_ci 2817e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcrImageArraysFeaturesEXT.txt[] 2818e5c31af7Sopenharmony_ci-- 2819e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[] 2820e5c31af7Sopenharmony_ci 2821e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 2822e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 2823e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures',desc='Structure describing the extended types subgroups support feature for an implementation',type='structs',alias='VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR'] 2824e5c31af7Sopenharmony_ci-- 2825e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures structure is 2826e5c31af7Sopenharmony_cidefined as: 2827e5c31af7Sopenharmony_ci 2828e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.txt[] 2829e5c31af7Sopenharmony_ci 2830e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_extended_types[] 2831e5c31af7Sopenharmony_cior the equivalent 2832e5c31af7Sopenharmony_ci 2833e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.txt[] 2834e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_extended_types[] 2835e5c31af7Sopenharmony_ci 2836e5c31af7Sopenharmony_ciThis structure describes the following feature: 2837e5c31af7Sopenharmony_ci 2838e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2839e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2840e5c31af7Sopenharmony_ci structure. 2841e5c31af7Sopenharmony_ci 2842e5c31af7Sopenharmony_ci// Must have preceding whitespace 2843e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2844e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2845e5c31af7Sopenharmony_ci// tag::VK_KHR_shader_subgroup_extended_types-features[] 2846e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-subgroup-extended-types]] 2847e5c31af7Sopenharmony_ci pname:shaderSubgroupExtendedTypes is a boolean specifying whether 2848e5c31af7Sopenharmony_ci subgroup operations can use 8-bit integer, 16-bit integer, 64-bit 2849e5c31af7Sopenharmony_ci integer, 16-bit floating-point, and vectors of these types in 2850e5c31af7Sopenharmony_ci <<shaders-group-operations,group operations>> with 2851e5c31af7Sopenharmony_ci <<shaders-scope-subgroup, subgroup scope>>, if the implementation 2852e5c31af7Sopenharmony_ci supports the types. 2853e5c31af7Sopenharmony_ci// end::VK_KHR_shader_subgroup_extended_types-features[] 2854e5c31af7Sopenharmony_ci 2855e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures 2856e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2857e5c31af7Sopenharmony_ci 2858e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures.txt[] 2859e5c31af7Sopenharmony_ci-- 2860e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 2861e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 2862e5c31af7Sopenharmony_ci 2863e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[] 2864e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceHostQueryResetFeatures',desc='Structure describing whether queries can be reset from the host',type='structs',alias='VkPhysicalDeviceHostQueryResetFeaturesEXT'] 2865e5c31af7Sopenharmony_ci-- 2866e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceHostQueryResetFeatures structure is defined as: 2867e5c31af7Sopenharmony_ci 2868e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeatures.txt[] 2869e5c31af7Sopenharmony_ci 2870e5c31af7Sopenharmony_ciifdef::VK_EXT_host_query_reset[] 2871e5c31af7Sopenharmony_cior the equivalent 2872e5c31af7Sopenharmony_ci 2873e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.txt[] 2874e5c31af7Sopenharmony_ciendif::VK_EXT_host_query_reset[] 2875e5c31af7Sopenharmony_ci 2876e5c31af7Sopenharmony_ciThis structure describes the following feature: 2877e5c31af7Sopenharmony_ci 2878e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2879e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2880e5c31af7Sopenharmony_ci structure. 2881e5c31af7Sopenharmony_ci 2882e5c31af7Sopenharmony_ci// Must have preceding whitespace 2883e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2884e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2885e5c31af7Sopenharmony_ci// tag::VK_EXT_host_query_reset-features[] 2886e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-hostQueryReset]] pname:hostQueryReset 2887e5c31af7Sopenharmony_ci indicates that the implementation supports resetting queries from the 2888e5c31af7Sopenharmony_ci host with flink:vkResetQueryPool. 2889e5c31af7Sopenharmony_ci// end::VK_EXT_host_query_reset-features[] 2890e5c31af7Sopenharmony_ci 2891e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceHostQueryResetFeatures 2892e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2893e5c31af7Sopenharmony_ci 2894e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeatures.txt[] 2895e5c31af7Sopenharmony_ci-- 2896e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[] 2897e5c31af7Sopenharmony_ci 2898e5c31af7Sopenharmony_ciifdef::VK_INTEL_shader_integer_functions2[] 2899e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs'] 2900e5c31af7Sopenharmony_ci-- 2901e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL structure is 2902e5c31af7Sopenharmony_cidefined as: 2903e5c31af7Sopenharmony_ci 2904e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.txt[] 2905e5c31af7Sopenharmony_ci 2906e5c31af7Sopenharmony_ciThis structure describes the following feature: 2907e5c31af7Sopenharmony_ci 2908e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2909e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2910e5c31af7Sopenharmony_ci structure. 2911e5c31af7Sopenharmony_ci * [[features-shaderIntegerFunctions2]] pname:shaderIntegerFunctions2 2912e5c31af7Sopenharmony_ci indicates that the implementation supports the 2913e5c31af7Sopenharmony_ci code:IntegerFunctions2INTEL SPIR-V capability. 2914e5c31af7Sopenharmony_ci 2915e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures. 2916e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2917e5c31af7Sopenharmony_ci 2918e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL.txt[] 2919e5c31af7Sopenharmony_ci-- 2920e5c31af7Sopenharmony_ciendif::VK_INTEL_shader_integer_functions2[] 2921e5c31af7Sopenharmony_ci 2922e5c31af7Sopenharmony_ciifdef::VK_NV_coverage_reduction_mode[] 2923e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs'] 2924e5c31af7Sopenharmony_ci-- 2925e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoverageReductionModeFeaturesNV structure is 2926e5c31af7Sopenharmony_cidefined as: 2927e5c31af7Sopenharmony_ci 2928e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[] 2929e5c31af7Sopenharmony_ci 2930e5c31af7Sopenharmony_ciThis structure describes the following feature: 2931e5c31af7Sopenharmony_ci 2932e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2933e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2934e5c31af7Sopenharmony_ci structure. 2935e5c31af7Sopenharmony_ci * [[features-coverageReductionMode]] pname:coverageReductionMode indicates 2936e5c31af7Sopenharmony_ci whether the implementation supports coverage reduction modes. 2937e5c31af7Sopenharmony_ci See <<fragops-coverage-reduction, Coverage Reduction>>. 2938e5c31af7Sopenharmony_ci 2939e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoverageReductionModeFeaturesNV 2940e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2941e5c31af7Sopenharmony_ci 2942e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoverageReductionModeFeaturesNV.txt[] 2943e5c31af7Sopenharmony_ci-- 2944e5c31af7Sopenharmony_ciendif::VK_NV_coverage_reduction_mode[] 2945e5c31af7Sopenharmony_ci 2946e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 2947e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTimelineSemaphoreFeatures',desc='Structure describing timeline semaphore features that can be supported by an implementation',type='structs',alias='VkPhysicalDeviceTimelineSemaphoreFeaturesKHR'] 2948e5c31af7Sopenharmony_ci-- 2949e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTimelineSemaphoreFeatures structure is defined as: 2950e5c31af7Sopenharmony_ci 2951e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.txt[] 2952e5c31af7Sopenharmony_ci 2953e5c31af7Sopenharmony_ciifdef::VK_KHR_timeline_semaphore[] 2954e5c31af7Sopenharmony_cior the equivalent 2955e5c31af7Sopenharmony_ci 2956e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTimelineSemaphoreFeaturesKHR.txt[] 2957e5c31af7Sopenharmony_ciendif::VK_KHR_timeline_semaphore[] 2958e5c31af7Sopenharmony_ci 2959e5c31af7Sopenharmony_ciThis structure describes the following feature: 2960e5c31af7Sopenharmony_ci 2961e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2962e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2963e5c31af7Sopenharmony_ci structure. 2964e5c31af7Sopenharmony_ci 2965e5c31af7Sopenharmony_ci// Must have preceding whitespace 2966e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 2967e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 2968e5c31af7Sopenharmony_ci// tag::VK_KHR_timeline_semaphore-features[] 2969e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-timelineSemaphore]] pname:timelineSemaphore 2970e5c31af7Sopenharmony_ci indicates whether semaphores created with a elink:VkSemaphoreType of 2971e5c31af7Sopenharmony_ci ename:VK_SEMAPHORE_TYPE_TIMELINE are supported. 2972e5c31af7Sopenharmony_ci// end::VK_KHR_timeline_semaphore-features[] 2973e5c31af7Sopenharmony_ci 2974e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTimelineSemaphoreFeatures 2975e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2976e5c31af7Sopenharmony_ci 2977e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTimelineSemaphoreFeatures.txt[] 2978e5c31af7Sopenharmony_ci-- 2979e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 2980e5c31af7Sopenharmony_ci 2981e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[] 2982e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceIndexTypeUint8FeaturesEXT',desc='Structure describing whether uint8 index type can be used',type='structs'] 2983e5c31af7Sopenharmony_ci-- 2984e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceIndexTypeUint8FeaturesEXT structure is defined as: 2985e5c31af7Sopenharmony_ci 2986e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[] 2987e5c31af7Sopenharmony_ci 2988e5c31af7Sopenharmony_ciThis structure describes the following feature: 2989e5c31af7Sopenharmony_ci 2990e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 2991e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 2992e5c31af7Sopenharmony_ci structure. 2993e5c31af7Sopenharmony_ci * [[features-indexTypeUint8]] pname:indexTypeUint8 indicates that 2994e5c31af7Sopenharmony_ci ename:VK_INDEX_TYPE_UINT8_EXT can be used with 2995e5c31af7Sopenharmony_ci flink:vkCmdBindIndexBuffer. 2996e5c31af7Sopenharmony_ci 2997e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceIndexTypeUint8FeaturesEXT 2998e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 2999e5c31af7Sopenharmony_ci 3000e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceIndexTypeUint8FeaturesEXT.txt[] 3001e5c31af7Sopenharmony_ci-- 3002e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[] 3003e5c31af7Sopenharmony_ci 3004e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[] 3005e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',desc='Structure describing whether list type primitives can support primitive restart',type='structs'] 3006e5c31af7Sopenharmony_ci-- 3007e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure 3008e5c31af7Sopenharmony_ciis defined as: 3009e5c31af7Sopenharmony_ci 3010e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.txt[] 3011e5c31af7Sopenharmony_ci 3012e5c31af7Sopenharmony_ciThe members of the 3013e5c31af7Sopenharmony_cisname:VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT structure 3014e5c31af7Sopenharmony_cidescribe the following features: 3015e5c31af7Sopenharmony_ci 3016e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3017e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3018e5c31af7Sopenharmony_ci structure. 3019e5c31af7Sopenharmony_ci * [[features-primitiveTopologyListRestart]] 3020e5c31af7Sopenharmony_ci pname:primitiveTopologyListRestart indicates that list type primitives, 3021e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 3022e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, 3023e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 3024e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY and 3025e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, can: use the 3026e5c31af7Sopenharmony_ci primitive restart index value in index buffers. 3027e5c31af7Sopenharmony_ci * [[features-primitiveTopologyPatchListRestart]] 3028e5c31af7Sopenharmony_ci pname:primitiveTopologyPatchListRestart indicates that the 3029e5c31af7Sopenharmony_ci ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology can: use the primitive 3030e5c31af7Sopenharmony_ci restart index value in index buffers. 3031e5c31af7Sopenharmony_ci 3032e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT 3033e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3034e5c31af7Sopenharmony_ci 3035e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.txt[] 3036e5c31af7Sopenharmony_ci-- 3037e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[] 3038e5c31af7Sopenharmony_ci 3039e5c31af7Sopenharmony_ciifdef::VK_NV_shader_sm_builtins[] 3040e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSMBuiltinsFeaturesNV',desc='Structure describing the shader SM Builtins features that can be supported by an implementation',type='structs'] 3041e5c31af7Sopenharmony_ci-- 3042e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSMBuiltinsFeaturesNV structure is defined 3043e5c31af7Sopenharmony_cias: 3044e5c31af7Sopenharmony_ci 3045e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.txt[] 3046e5c31af7Sopenharmony_ci 3047e5c31af7Sopenharmony_ciThis structure describes the following feature: 3048e5c31af7Sopenharmony_ci 3049e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3050e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3051e5c31af7Sopenharmony_ci structure. 3052e5c31af7Sopenharmony_ci * [[features-shaderSMBuiltins]] pname:shaderSMBuiltins indicates whether 3053e5c31af7Sopenharmony_ci the implementation supports the SPIR-V code:ShaderSMBuiltinsNV 3054e5c31af7Sopenharmony_ci capability. 3055e5c31af7Sopenharmony_ci 3056e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderSMBuiltinsFeaturesNV 3057e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3058e5c31af7Sopenharmony_ci 3059e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSMBuiltinsFeaturesNV.txt[] 3060e5c31af7Sopenharmony_ci-- 3061e5c31af7Sopenharmony_ciendif::VK_NV_shader_sm_builtins[] 3062e5c31af7Sopenharmony_ci 3063e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 3064e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures',desc='Structure describing whether the implementation can do depth and stencil image barriers separately',type='structs',alias='VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR'] 3065e5c31af7Sopenharmony_ci-- 3066e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures structure is 3067e5c31af7Sopenharmony_cidefined as: 3068e5c31af7Sopenharmony_ci 3069e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.txt[] 3070e5c31af7Sopenharmony_ci 3071e5c31af7Sopenharmony_ciifdef::VK_KHR_separate_depth_stencil_layouts[] 3072e5c31af7Sopenharmony_cior the equivalent 3073e5c31af7Sopenharmony_ci 3074e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.txt[] 3075e5c31af7Sopenharmony_ciendif::VK_KHR_separate_depth_stencil_layouts[] 3076e5c31af7Sopenharmony_ci 3077e5c31af7Sopenharmony_ciThis structure describes the following feature: 3078e5c31af7Sopenharmony_ci 3079e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3080e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3081e5c31af7Sopenharmony_ci structure. 3082e5c31af7Sopenharmony_ci 3083e5c31af7Sopenharmony_ci// Must have preceding whitespace 3084e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[:anchor-prefix: extension-] 3085e5c31af7Sopenharmony_ciifndef::VK_VERSION_1_2[:anchor-prefix:] 3086e5c31af7Sopenharmony_ci// tag::VK_KHR_separate_depth_stencil_layouts-features[] 3087e5c31af7Sopenharmony_ci * [[{anchor-prefix}features-separateDepthStencilLayouts]] 3088e5c31af7Sopenharmony_ci pname:separateDepthStencilLayouts indicates whether the implementation 3089e5c31af7Sopenharmony_ci supports a sname:VkImageMemoryBarrier for a depth/stencil image with 3090e5c31af7Sopenharmony_ci only one of ename:VK_IMAGE_ASPECT_DEPTH_BIT or 3091e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_STENCIL_BIT set, and whether 3092e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, 3093e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, 3094e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or 3095e5c31af7Sopenharmony_ci ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL can be used. 3096e5c31af7Sopenharmony_ci// end::VK_KHR_separate_depth_stencil_layouts-features[] 3097e5c31af7Sopenharmony_ci 3098e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures 3099e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3100e5c31af7Sopenharmony_ci 3101e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures.txt[] 3102e5c31af7Sopenharmony_ci-- 3103e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 3104e5c31af7Sopenharmony_ci 3105e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[] 3106e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR',desc='Structure describing whether pipeline executable properties are available',type='structs'] 3107e5c31af7Sopenharmony_ci-- 3108e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR structure 3109e5c31af7Sopenharmony_ciis defined as: 3110e5c31af7Sopenharmony_ci 3111e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.txt[] 3112e5c31af7Sopenharmony_ci 3113e5c31af7Sopenharmony_ciThis structure describes the following feature: 3114e5c31af7Sopenharmony_ci 3115e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3116e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3117e5c31af7Sopenharmony_ci structure. 3118e5c31af7Sopenharmony_ci * [[features-pipelineExecutableInfo]] pname:pipelineExecutableInfo 3119e5c31af7Sopenharmony_ci indicates that the implementation supports reporting properties and 3120e5c31af7Sopenharmony_ci statistics about the pipeline executables associated with a compiled 3121e5c31af7Sopenharmony_ci pipeline. 3122e5c31af7Sopenharmony_ci 3123e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR 3124e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3125e5c31af7Sopenharmony_ci 3126e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR.txt[] 3127e5c31af7Sopenharmony_ci-- 3128e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[] 3129e5c31af7Sopenharmony_ci 3130e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[] 3131e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',desc='Structure describing the shader demote to helper invocations features that can be supported by an implementation',type='structs'] 3132e5c31af7Sopenharmony_ci-- 3133e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT 3134e5c31af7Sopenharmony_cistructure is defined as: 3135e5c31af7Sopenharmony_ci 3136e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.txt[] 3137e5c31af7Sopenharmony_ci 3138e5c31af7Sopenharmony_ciThis structure describes the following feature: 3139e5c31af7Sopenharmony_ci 3140e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3141e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3142e5c31af7Sopenharmony_ci structure. 3143e5c31af7Sopenharmony_ci * [[features-shaderDemoteToHelperInvocation]] 3144e5c31af7Sopenharmony_ci pname:shaderDemoteToHelperInvocation indicates whether the 3145e5c31af7Sopenharmony_ci implementation supports the SPIR-V code:DemoteToHelperInvocationEXT 3146e5c31af7Sopenharmony_ci capability. 3147e5c31af7Sopenharmony_ci 3148e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT 3149e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3150e5c31af7Sopenharmony_ci 3151e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.txt[] 3152e5c31af7Sopenharmony_ci-- 3153e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[] 3154e5c31af7Sopenharmony_ci 3155e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[] 3156e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT',desc='Structure describing the texel buffer alignment features that can be supported by an implementation',type='structs'] 3157e5c31af7Sopenharmony_ci-- 3158e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT structure is 3159e5c31af7Sopenharmony_cidefined as: 3160e5c31af7Sopenharmony_ci 3161e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.txt[] 3162e5c31af7Sopenharmony_ci 3163e5c31af7Sopenharmony_ciThis structure describes the following feature: 3164e5c31af7Sopenharmony_ci 3165e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3166e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3167e5c31af7Sopenharmony_ci structure. 3168e5c31af7Sopenharmony_ci * [[features-texelBufferAlignment]] pname:texelBufferAlignment indicates 3169e5c31af7Sopenharmony_ci whether the implementation uses more specific alignment requirements 3170e5c31af7Sopenharmony_ci advertised in slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT 3171e5c31af7Sopenharmony_ci rather than 3172e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceLimits::pname:minTexelBufferOffsetAlignment. 3173e5c31af7Sopenharmony_ci 3174e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT 3175e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3176e5c31af7Sopenharmony_ci 3177e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.txt[] 3178e5c31af7Sopenharmony_ci-- 3179e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[] 3180e5c31af7Sopenharmony_ci 3181e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[] 3182e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT',desc='Structure describing ASTC HDR features that can be supported by an implementation',type='structs'] 3183e5c31af7Sopenharmony_ci-- 3184e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT structure is 3185e5c31af7Sopenharmony_cidefined as: 3186e5c31af7Sopenharmony_ci 3187e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[] 3188e5c31af7Sopenharmony_ci 3189e5c31af7Sopenharmony_ciThis structure describes the following feature: 3190e5c31af7Sopenharmony_ci 3191e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3192e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3193e5c31af7Sopenharmony_ci structure. 3194e5c31af7Sopenharmony_ci * [[features-textureCompressionASTC_HDR]] pname:textureCompressionASTC_HDR 3195e5c31af7Sopenharmony_ci indicates whether all of the ASTC HDR compressed texture formats are 3196e5c31af7Sopenharmony_ci supported. 3197e5c31af7Sopenharmony_ci If this feature is enabled, then the 3198e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, 3199e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT and 3200e5c31af7Sopenharmony_ci ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must: 3201e5c31af7Sopenharmony_ci be supported in pname:optimalTilingFeatures for the following formats: 3202e5c31af7Sopenharmony_ci+ 3203e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT 3204e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT 3205e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT 3206e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT 3207e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT 3208e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT 3209e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT 3210e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT 3211e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT 3212e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT 3213e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT 3214e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT 3215e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT 3216e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT 3217e5c31af7Sopenharmony_ci+ 3218e5c31af7Sopenharmony_ciTo query for additional properties, or if the feature is not enabled, 3219e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceFormatProperties and 3220e5c31af7Sopenharmony_ciflink:vkGetPhysicalDeviceImageFormatProperties can: be used to check for 3221e5c31af7Sopenharmony_cisupported properties of individual formats as normal. 3222e5c31af7Sopenharmony_ci 3223e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT 3224e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3225e5c31af7Sopenharmony_ci 3226e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT.txt[] 3227e5c31af7Sopenharmony_ci-- 3228e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[] 3229e5c31af7Sopenharmony_ci 3230e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[] 3231e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceLineRasterizationFeaturesEXT',desc='Structure describing the line rasterization features that can be supported by an implementation',type='structs'] 3232e5c31af7Sopenharmony_ci-- 3233e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceLineRasterizationFeaturesEXT structure is defined 3234e5c31af7Sopenharmony_cias: 3235e5c31af7Sopenharmony_ci 3236e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[] 3237e5c31af7Sopenharmony_ci 3238e5c31af7Sopenharmony_ciThis structure describes the following features: 3239e5c31af7Sopenharmony_ci 3240e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3241e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3242e5c31af7Sopenharmony_ci structure. 3243e5c31af7Sopenharmony_ci * [[features-rectangularLines]] pname:rectangularLines indicates whether 3244e5c31af7Sopenharmony_ci the implementation supports <<primsrast-lines,rectangular line 3245e5c31af7Sopenharmony_ci rasterization>>. 3246e5c31af7Sopenharmony_ci * [[features-bresenhamLines]] pname:bresenhamLines indicates whether the 3247e5c31af7Sopenharmony_ci implementation supports <<primsrast-lines-bresenham,Bresenham-style line 3248e5c31af7Sopenharmony_ci rasterization>>. 3249e5c31af7Sopenharmony_ci * [[features-smoothLines]] pname:smoothLines indicates whether the 3250e5c31af7Sopenharmony_ci implementation supports <<primsrast-lines-smooth,smooth line 3251e5c31af7Sopenharmony_ci rasterization>>. 3252e5c31af7Sopenharmony_ci * [[features-stippledRectangularLines]] pname:stippledRectangularLines 3253e5c31af7Sopenharmony_ci indicates whether the implementation supports 3254e5c31af7Sopenharmony_ci <<primsrast-lines-stipple,stippled line rasterization>> with 3255e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT lines, or with 3256e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT lines if 3257e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceLimits::pname:strictLines is ename:VK_TRUE. 3258e5c31af7Sopenharmony_ci * [[features-stippledBresenhamLines]] pname:stippledBresenhamLines 3259e5c31af7Sopenharmony_ci indicates whether the implementation supports 3260e5c31af7Sopenharmony_ci <<primsrast-lines-stipple,stippled line rasterization>> with 3261e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT lines. 3262e5c31af7Sopenharmony_ci * [[features-stippledSmoothLines]] pname:stippledSmoothLines indicates 3263e5c31af7Sopenharmony_ci whether the implementation supports <<primsrast-lines-stipple,stippled 3264e5c31af7Sopenharmony_ci line rasterization>> with 3265e5c31af7Sopenharmony_ci ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT lines. 3266e5c31af7Sopenharmony_ci 3267e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceLineRasterizationFeaturesEXT 3268e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3269e5c31af7Sopenharmony_ci 3270e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceLineRasterizationFeaturesEXT.txt[] 3271e5c31af7Sopenharmony_ci-- 3272e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[] 3273e5c31af7Sopenharmony_ci 3274e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[] 3275e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubgroupSizeControlFeaturesEXT',desc='Structure describing the subgroup size control features that can be supported by an implementation',type='structs'] 3276e5c31af7Sopenharmony_ci-- 3277e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure is 3278e5c31af7Sopenharmony_cidefined as: 3279e5c31af7Sopenharmony_ci 3280e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.txt[] 3281e5c31af7Sopenharmony_ci 3282e5c31af7Sopenharmony_ciThis structure describes the following features: 3283e5c31af7Sopenharmony_ci 3284e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3285e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3286e5c31af7Sopenharmony_ci structure. 3287e5c31af7Sopenharmony_ci * [[features-subgroupSizeControl]] pname:subgroupSizeControl indicates 3288e5c31af7Sopenharmony_ci whether the implementation supports controlling shader subgroup sizes 3289e5c31af7Sopenharmony_ci via the 3290e5c31af7Sopenharmony_ci ename:VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT 3291e5c31af7Sopenharmony_ci flag and the 3292e5c31af7Sopenharmony_ci slink:VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure. 3293e5c31af7Sopenharmony_ci * [[features-computeFullSubgroups]] pname:computeFullSubgroups indicates 3294e5c31af7Sopenharmony_ci whether the implementation supports requiring full subgroups in compute 3295e5c31af7Sopenharmony_ci shaders via the 3296e5c31af7Sopenharmony_ci ename:VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT 3297e5c31af7Sopenharmony_ci flag. 3298e5c31af7Sopenharmony_ci 3299e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubgroupSizeControlFeaturesEXT 3300e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3301e5c31af7Sopenharmony_ci 3302e5c31af7Sopenharmony_ci[NOTE] 3303e5c31af7Sopenharmony_ci.Note 3304e5c31af7Sopenharmony_ci==== 3305e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure was added 3306e5c31af7Sopenharmony_ciin version 2 of the `apiext:VK_EXT_subgroup_size_control` extension. 3307e5c31af7Sopenharmony_ciVersion 1 implementations of this extension will not fill out the features 3308e5c31af7Sopenharmony_cistructure but applications may assume that both pname:subgroupSizeControl 3309e5c31af7Sopenharmony_ciand pname:computeFullSubgroups are supported if the extension is supported. 3310e5c31af7Sopenharmony_ci(See also the <<features-requirements, Feature Requirements>> section.) 3311e5c31af7Sopenharmony_ciApplications are advised to add a 3312e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure to the 3313e5c31af7Sopenharmony_cipname:pNext chain of slink:VkDeviceCreateInfo to enable the features 3314e5c31af7Sopenharmony_ciregardless of the version of the extension supported by the implementation. 3315e5c31af7Sopenharmony_ciIf the implementation only supports version 1, it will safely ignore the 3316e5c31af7Sopenharmony_cisname:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure. 3317e5c31af7Sopenharmony_ci==== 3318e5c31af7Sopenharmony_ci 3319e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubgroupSizeControlFeaturesEXT.txt[] 3320e5c31af7Sopenharmony_ci-- 3321e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[] 3322e5c31af7Sopenharmony_ci 3323e5c31af7Sopenharmony_ciifdef::VK_AMD_device_coherent_memory[] 3324e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCoherentMemoryFeaturesAMD',desc='Structure describing whether device coherent memory can be supported by an implementation',type='structs'] 3325e5c31af7Sopenharmony_ci-- 3326e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCoherentMemoryFeaturesAMD structure is defined as: 3327e5c31af7Sopenharmony_ci 3328e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.txt[] 3329e5c31af7Sopenharmony_ci 3330e5c31af7Sopenharmony_ciThis structure describes the following feature: 3331e5c31af7Sopenharmony_ci 3332e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3333e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3334e5c31af7Sopenharmony_ci structure. 3335e5c31af7Sopenharmony_ci * [[features-deviceCoherentMemory]] pname:deviceCoherentMemory indicates 3336e5c31af7Sopenharmony_ci that the implementation supports <<VkMemoryPropertyFlagBits,device 3337e5c31af7Sopenharmony_ci coherent memory>>. 3338e5c31af7Sopenharmony_ci 3339e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCoherentMemoryFeaturesAMD 3340e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3341e5c31af7Sopenharmony_ci 3342e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCoherentMemoryFeaturesAMD.txt[] 3343e5c31af7Sopenharmony_ci-- 3344e5c31af7Sopenharmony_ciendif::VK_AMD_device_coherent_memory[] 3345e5c31af7Sopenharmony_ci 3346e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 3347e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceAccelerationStructureFeaturesKHR',desc='Structure describing the acceleration structure features that can be supported by an implementation',type='structs'] 3348e5c31af7Sopenharmony_ci-- 3349e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceAccelerationStructureFeaturesKHR structure is 3350e5c31af7Sopenharmony_cidefined as: 3351e5c31af7Sopenharmony_ci 3352e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.txt[] 3353e5c31af7Sopenharmony_ci 3354e5c31af7Sopenharmony_ciThis structure describes the following features: 3355e5c31af7Sopenharmony_ci 3356e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3357e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3358e5c31af7Sopenharmony_ci structure. 3359e5c31af7Sopenharmony_ci * [[features-accelerationStructure]] pname:accelerationStructure indicates 3360e5c31af7Sopenharmony_ci whether the implementation supports the acceleration structure 3361e5c31af7Sopenharmony_ci functionality. 3362e5c31af7Sopenharmony_ci See <<acceleration-structure,Acceleration Structures>>. 3363e5c31af7Sopenharmony_ci * [[features-accelerationStructureCaptureReplay]] 3364e5c31af7Sopenharmony_ci pname:accelerationStructureCaptureReplay indicates whether the 3365e5c31af7Sopenharmony_ci implementation supports saving and reusing acceleration structure device 3366e5c31af7Sopenharmony_ci addresses, e.g. for trace capture and replay. 3367e5c31af7Sopenharmony_ci * [[features-accelerationStructureIndirectBuild]] 3368e5c31af7Sopenharmony_ci pname:accelerationStructureIndirectBuild indicates whether the 3369e5c31af7Sopenharmony_ci implementation supports indirect acceleration structure build commands, 3370e5c31af7Sopenharmony_ci e.g. flink:vkCmdBuildAccelerationStructuresIndirectKHR. 3371e5c31af7Sopenharmony_ci * [[features-accelerationStructureHostCommands]] 3372e5c31af7Sopenharmony_ci pname:accelerationStructureHostCommands indicates whether the 3373e5c31af7Sopenharmony_ci implementation supports host side acceleration structure commands, e.g. 3374e5c31af7Sopenharmony_ci flink:vkBuildAccelerationStructuresKHR, 3375e5c31af7Sopenharmony_ci flink:vkCopyAccelerationStructureKHR, 3376e5c31af7Sopenharmony_ci flink:vkCopyAccelerationStructureToMemoryKHR, 3377e5c31af7Sopenharmony_ci flink:vkCopyMemoryToAccelerationStructureKHR, 3378e5c31af7Sopenharmony_ci flink:vkWriteAccelerationStructuresPropertiesKHR. 3379e5c31af7Sopenharmony_ci * [[features-descriptorBindingAccelerationStructureUpdateAfterBind]] 3380e5c31af7Sopenharmony_ci pname:descriptorBindingAccelerationStructureUpdateAfterBind indicates 3381e5c31af7Sopenharmony_ci whether the implementation supports updating acceleration structure 3382e5c31af7Sopenharmony_ci descriptors after a set is bound. 3383e5c31af7Sopenharmony_ci If this feature is not enabled, 3384e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT must: not be used with 3385e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR. 3386e5c31af7Sopenharmony_ci 3387e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceAccelerationStructureFeaturesKHR 3388e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3389e5c31af7Sopenharmony_ci 3390e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceAccelerationStructureFeaturesKHR.txt[] 3391e5c31af7Sopenharmony_ci-- 3392e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 3393e5c31af7Sopenharmony_ci 3394e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 3395e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingPipelineFeaturesKHR',desc='Structure describing the ray tracing features that can be supported by an implementation',type='structs'] 3396e5c31af7Sopenharmony_ci-- 3397e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingPipelineFeaturesKHR structure is defined 3398e5c31af7Sopenharmony_cias: 3399e5c31af7Sopenharmony_ci 3400e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.txt[] 3401e5c31af7Sopenharmony_ci 3402e5c31af7Sopenharmony_ciThis structure describes the following features: 3403e5c31af7Sopenharmony_ci 3404e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3405e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3406e5c31af7Sopenharmony_ci structure. 3407e5c31af7Sopenharmony_ci * [[features-rayTracingPipeline]] pname:rayTracingPipeline indicates 3408e5c31af7Sopenharmony_ci whether the implementation supports the ray tracing pipeline 3409e5c31af7Sopenharmony_ci functionality. 3410e5c31af7Sopenharmony_ci See <<ray-tracing,Ray Tracing>>. 3411e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineShaderGroupHandleCaptureReplay]] 3412e5c31af7Sopenharmony_ci pname:rayTracingPipelineShaderGroupHandleCaptureReplay indicates whether 3413e5c31af7Sopenharmony_ci the implementation supports saving and reusing shader group handles, 3414e5c31af7Sopenharmony_ci e.g. for trace capture and replay. 3415e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineShaderGroupHandleCaptureReplayMixed]] 3416e5c31af7Sopenharmony_ci pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed indicates 3417e5c31af7Sopenharmony_ci whether the implementation supports reuse of shader group handles being 3418e5c31af7Sopenharmony_ci arbitrarily mixed with creation of non-reused shader group handles. 3419e5c31af7Sopenharmony_ci If this is ename:VK_FALSE, all reused shader group handles must: be 3420e5c31af7Sopenharmony_ci specified before any non-reused handles may: be created. 3421e5c31af7Sopenharmony_ci * [[features-rayTracingPipelineTraceRaysIndirect]] 3422e5c31af7Sopenharmony_ci pname:rayTracingPipelineTraceRaysIndirect indicates whether the 3423e5c31af7Sopenharmony_ci implementation supports indirect ray tracing commands, e.g. 3424e5c31af7Sopenharmony_ci flink:vkCmdTraceRaysIndirectKHR. 3425e5c31af7Sopenharmony_ci * [[features-rayTraversalPrimitiveCulling]] 3426e5c31af7Sopenharmony_ci pname:rayTraversalPrimitiveCulling indicates whether the implementation 3427e5c31af7Sopenharmony_ci supports <<ray-traversal-culling-primitive, primitive culling during ray 3428e5c31af7Sopenharmony_ci traversal>>. 3429e5c31af7Sopenharmony_ci 3430e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingPipelineFeaturesKHR 3431e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3432e5c31af7Sopenharmony_ci 3433e5c31af7Sopenharmony_ci.Valid Usage 3434e5c31af7Sopenharmony_ci**** 3435e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575]] 3436e5c31af7Sopenharmony_ci If pname:rayTracingPipelineShaderGroupHandleCaptureReplayMixed is 3437e5c31af7Sopenharmony_ci ename:VK_TRUE, pname:rayTracingPipelineShaderGroupHandleCaptureReplay 3438e5c31af7Sopenharmony_ci must: also be ename:VK_TRUE 3439e5c31af7Sopenharmony_ci**** 3440e5c31af7Sopenharmony_ci 3441e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingPipelineFeaturesKHR.txt[] 3442e5c31af7Sopenharmony_ci-- 3443e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 3444e5c31af7Sopenharmony_ci 3445e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 3446e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayQueryFeaturesKHR',desc='Structure describing the ray query features that can be supported by an implementation',type='structs'] 3447e5c31af7Sopenharmony_ci-- 3448e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayQueryFeaturesKHR structure is defined as: 3449e5c31af7Sopenharmony_ci 3450e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayQueryFeaturesKHR.txt[] 3451e5c31af7Sopenharmony_ci 3452e5c31af7Sopenharmony_ciThis structure describes the following feature: 3453e5c31af7Sopenharmony_ci 3454e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3455e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3456e5c31af7Sopenharmony_ci structure. 3457e5c31af7Sopenharmony_ci * [[features-rayQuery]] pname:rayQuery indicates whether the 3458e5c31af7Sopenharmony_ci implementation supports ray query (code:OpRayQueryProceedKHR) 3459e5c31af7Sopenharmony_ci functionality. 3460e5c31af7Sopenharmony_ci 3461e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayQueryFeaturesKHR 3462e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3463e5c31af7Sopenharmony_ci 3464e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayQueryFeaturesKHR.txt[] 3465e5c31af7Sopenharmony_ci-- 3466e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 3467e5c31af7Sopenharmony_ci 3468e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[] 3469e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicStateFeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs'] 3470e5c31af7Sopenharmony_ci-- 3471e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicStateFeaturesEXT structure is 3472e5c31af7Sopenharmony_cidefined as: 3473e5c31af7Sopenharmony_ci 3474e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.txt[] 3475e5c31af7Sopenharmony_ci 3476e5c31af7Sopenharmony_ciThis structure describes the following feature: 3477e5c31af7Sopenharmony_ci 3478e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3479e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3480e5c31af7Sopenharmony_ci structure. 3481e5c31af7Sopenharmony_ci * [[features-extendedDynamicState]] pname:extendedDynamicState indicates 3482e5c31af7Sopenharmony_ci that the implementation supports the following dynamic states: 3483e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_CULL_MODE_EXT 3484e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_FRONT_FACE_EXT 3485e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT 3486e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT 3487e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT 3488e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT 3489e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT 3490e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT 3491e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT 3492e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT 3493e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT 3494e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_STENCIL_OP_EXT 3495e5c31af7Sopenharmony_ci 3496e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicStateFeaturesEXT 3497e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3498e5c31af7Sopenharmony_ci 3499e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicStateFeaturesEXT.txt[] 3500e5c31af7Sopenharmony_ci-- 3501e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[] 3502e5c31af7Sopenharmony_ci 3503e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state2[] 3504e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExtendedDynamicState2FeaturesEXT',desc='Structure describing what extended dynamic state can be used',type='structs'] 3505e5c31af7Sopenharmony_ci-- 3506e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExtendedDynamicState2FeaturesEXT structure is 3507e5c31af7Sopenharmony_cidefined as: 3508e5c31af7Sopenharmony_ci 3509e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.txt[] 3510e5c31af7Sopenharmony_ci 3511e5c31af7Sopenharmony_ciThis structure describes the following features: 3512e5c31af7Sopenharmony_ci 3513e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3514e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3515e5c31af7Sopenharmony_ci structure. 3516e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2]] pname:extendedDynamicState2 indicates 3517e5c31af7Sopenharmony_ci that the implementation supports the following dynamic states: 3518e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT 3519e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT 3520e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT 3521e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2LogicOp]] 3522e5c31af7Sopenharmony_ci pname:extendedDynamicState2LogicOp indicates that the implementation 3523e5c31af7Sopenharmony_ci supports the following dynamic state: 3524e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT 3525e5c31af7Sopenharmony_ci * [[features-extendedDynamicState2PatchControlPoints]] 3526e5c31af7Sopenharmony_ci pname:extendedDynamicState2PatchControlPoints indicates that the 3527e5c31af7Sopenharmony_ci implementation supports the following dynamic state: 3528e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT 3529e5c31af7Sopenharmony_ci 3530e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExtendedDynamicState2FeaturesEXT 3531e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3532e5c31af7Sopenharmony_ci 3533e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExtendedDynamicState2FeaturesEXT.txt[] 3534e5c31af7Sopenharmony_ci-- 3535e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state2[] 3536e5c31af7Sopenharmony_ci 3537e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[] 3538e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV',desc='Structure describing the device-generated commands features that can be supported by an implementation',type='structs'] 3539e5c31af7Sopenharmony_ci-- 3540e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV structure is 3541e5c31af7Sopenharmony_cidefined as: 3542e5c31af7Sopenharmony_ci 3543e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.txt[] 3544e5c31af7Sopenharmony_ci 3545e5c31af7Sopenharmony_ciThis structure describes the following feature: 3546e5c31af7Sopenharmony_ci 3547e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3548e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3549e5c31af7Sopenharmony_ci structure. 3550e5c31af7Sopenharmony_ci * [[features-deviceGeneratedCommands]] pname:deviceGeneratedCommands 3551e5c31af7Sopenharmony_ci indicates whether the implementation supports functionality to generate 3552e5c31af7Sopenharmony_ci commands on the device. 3553e5c31af7Sopenharmony_ci See <<device-generated-commands,Device-Generated Commands>>. 3554e5c31af7Sopenharmony_ci 3555e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV 3556e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3557e5c31af7Sopenharmony_ci 3558e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV.txt[] 3559e5c31af7Sopenharmony_ci-- 3560e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[] 3561e5c31af7Sopenharmony_ci 3562e5c31af7Sopenharmony_ciifdef::VK_NV_device_diagnostics_config[] 3563e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDiagnosticsConfigFeaturesNV',desc='Structure describing the device-generated diagnostic configuration features that can be supported by an implementation',type='structs'] 3564e5c31af7Sopenharmony_ci-- 3565e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDiagnosticsConfigFeaturesNV structure is defined 3566e5c31af7Sopenharmony_cias: 3567e5c31af7Sopenharmony_ci 3568e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.txt[] 3569e5c31af7Sopenharmony_ci 3570e5c31af7Sopenharmony_ciThis structure describes the following feature: 3571e5c31af7Sopenharmony_ci 3572e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3573e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3574e5c31af7Sopenharmony_ci structure. 3575e5c31af7Sopenharmony_ci * [[features-diagnosticsConfig]] pname:diagnosticsConfig indicates whether 3576e5c31af7Sopenharmony_ci the implementation supports the ability to configure diagnostic tools. 3577e5c31af7Sopenharmony_ci 3578e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDiagnosticsConfigFeaturesNV 3579e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3580e5c31af7Sopenharmony_ci 3581e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDiagnosticsConfigFeaturesNV.txt[] 3582e5c31af7Sopenharmony_ci-- 3583e5c31af7Sopenharmony_ciendif::VK_NV_device_diagnostics_config[] 3584e5c31af7Sopenharmony_ci 3585e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[] 3586e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDeviceMemoryReportFeaturesEXT',desc='Structure describing whether device memory report callback can be supported by an implementation',type='structs'] 3587e5c31af7Sopenharmony_ci-- 3588e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDeviceMemoryReportFeaturesEXT structure is defined 3589e5c31af7Sopenharmony_cias: 3590e5c31af7Sopenharmony_ci 3591e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.txt[] 3592e5c31af7Sopenharmony_ci 3593e5c31af7Sopenharmony_ciThis structure describes the following feature: 3594e5c31af7Sopenharmony_ci 3595e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3596e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3597e5c31af7Sopenharmony_ci structure. 3598e5c31af7Sopenharmony_ci * [[features-deviceMemoryReport]] pname:deviceMemoryReport indicates 3599e5c31af7Sopenharmony_ci whether the implementation supports the ability to register device 3600e5c31af7Sopenharmony_ci memory report callbacks. 3601e5c31af7Sopenharmony_ci 3602e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDeviceMemoryReportFeaturesEXT 3603e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3604e5c31af7Sopenharmony_ci 3605e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDeviceMemoryReportFeaturesEXT.txt[] 3606e5c31af7Sopenharmony_ci-- 3607e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[] 3608e5c31af7Sopenharmony_ci 3609e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[] 3610e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT',desc='Structure describing whether global priority query can be supported by an implementation',type='structs'] 3611e5c31af7Sopenharmony_ci-- 3612e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT structure is 3613e5c31af7Sopenharmony_cidefined as: 3614e5c31af7Sopenharmony_ci 3615e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.txt[] 3616e5c31af7Sopenharmony_ci 3617e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT 3618e5c31af7Sopenharmony_cistructure describe the following features: 3619e5c31af7Sopenharmony_ci 3620e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3621e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3622e5c31af7Sopenharmony_ci structure. 3623e5c31af7Sopenharmony_ci * [[features-globalPriorityQuery]] pname:globalPriorityQuery indicates 3624e5c31af7Sopenharmony_ci whether the implementation supports the ability to query global queue 3625e5c31af7Sopenharmony_ci priorities. 3626e5c31af7Sopenharmony_ci 3627e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT 3628e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3629e5c31af7Sopenharmony_ci 3630e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT.txt[] 3631e5c31af7Sopenharmony_ci-- 3632e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[] 3633e5c31af7Sopenharmony_ci 3634e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[] 3635e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT',desc='Structure describing whether pipeline cache control can be supported by an implementation',type='structs'] 3636e5c31af7Sopenharmony_ci-- 3637e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT structure 3638e5c31af7Sopenharmony_ciis defined as: 3639e5c31af7Sopenharmony_ci 3640e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.txt[] 3641e5c31af7Sopenharmony_ci 3642e5c31af7Sopenharmony_ciThis structure describes the following feature: 3643e5c31af7Sopenharmony_ci 3644e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3645e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3646e5c31af7Sopenharmony_ci structure. 3647e5c31af7Sopenharmony_ci * [[features-pipelineCreationCacheControl]] 3648e5c31af7Sopenharmony_ci pname:pipelineCreationCacheControl indicates that the implementation 3649e5c31af7Sopenharmony_ci supports: 3650e5c31af7Sopenharmony_ci ** The following can: be used in stext:Vk*PipelineCreateInfo::pname:flags: 3651e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT 3652e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT 3653e5c31af7Sopenharmony_ci ** The following can: be used in 3654e5c31af7Sopenharmony_ci slink:VkPipelineCacheCreateInfo::pname:flags: 3655e5c31af7Sopenharmony_ci *** ename:VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT 3656e5c31af7Sopenharmony_ci 3657e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT 3658e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3659e5c31af7Sopenharmony_ci 3660e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT.txt[] 3661e5c31af7Sopenharmony_ci-- 3662e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[] 3663e5c31af7Sopenharmony_ci 3664e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[] 3665e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR',desc='Structure describing support for zero initialization of workgroup memory by an implementation',type='structs'] 3666e5c31af7Sopenharmony_ci-- 3667e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR structure 3668e5c31af7Sopenharmony_ciis defined as: 3669e5c31af7Sopenharmony_ci 3670e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.txt[] 3671e5c31af7Sopenharmony_ci 3672e5c31af7Sopenharmony_ciThis structure describes the following feature: 3673e5c31af7Sopenharmony_ci 3674e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3675e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3676e5c31af7Sopenharmony_ci structure. 3677e5c31af7Sopenharmony_ci * [[features-shaderZeroInitializeWorkgroupMemory]] 3678e5c31af7Sopenharmony_ci pname:shaderZeroInitializeWorkgroupMemory specifies whether the 3679e5c31af7Sopenharmony_ci implementation supports initializing a variable in Workgroup storage 3680e5c31af7Sopenharmony_ci class. 3681e5c31af7Sopenharmony_ci 3682e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR 3683e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3684e5c31af7Sopenharmony_ci 3685e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR.txt[] 3686e5c31af7Sopenharmony_ci-- 3687e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[] 3688e5c31af7Sopenharmony_ci 3689e5c31af7Sopenharmony_ciifdef::VK_EXT_private_data[] 3690e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePrivateDataFeaturesEXT',desc='Structure specifying physical device support',type='structs'] 3691e5c31af7Sopenharmony_ci-- 3692e5c31af7Sopenharmony_ci 3693e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePrivateDataFeaturesEXT structure is defined as: 3694e5c31af7Sopenharmony_ci 3695e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePrivateDataFeaturesEXT.txt[] 3696e5c31af7Sopenharmony_ci 3697e5c31af7Sopenharmony_ciThis structure describes the following feature: 3698e5c31af7Sopenharmony_ci 3699e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3700e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3701e5c31af7Sopenharmony_ci structure. 3702e5c31af7Sopenharmony_ci * [[features-privateData]] pname:privateData indicates whether the 3703e5c31af7Sopenharmony_ci implementation supports private data. 3704e5c31af7Sopenharmony_ci See <<private-data, Private Data>>. 3705e5c31af7Sopenharmony_ci 3706e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeaturesEXT 3707e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3708e5c31af7Sopenharmony_ci 3709e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePrivateDataFeaturesEXT.txt[] 3710e5c31af7Sopenharmony_ci-- 3711e5c31af7Sopenharmony_ciendif::VK_EXT_private_data[] 3712e5c31af7Sopenharmony_ci 3713e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[] 3714e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR',desc='Structure describing support for shader subgroup uniform control flow by an implementation',type='structs'] 3715e5c31af7Sopenharmony_ci-- 3716e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 3717e5c31af7Sopenharmony_cistructure is defined as: 3718e5c31af7Sopenharmony_ci 3719e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.txt[] 3720e5c31af7Sopenharmony_ci 3721e5c31af7Sopenharmony_ciThis structure describes the following feature: 3722e5c31af7Sopenharmony_ci 3723e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3724e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3725e5c31af7Sopenharmony_ci structure. 3726e5c31af7Sopenharmony_ci * [[features-shaderSubgroupUniformControlFlow]] 3727e5c31af7Sopenharmony_ci pname:shaderSubgroupUniformControlFlow specifies whether the 3728e5c31af7Sopenharmony_ci implementation supports the shader execution mode 3729e5c31af7Sopenharmony_ci code:SubgroupUniformControlFlowKHR 3730e5c31af7Sopenharmony_ci 3731e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePrivateDataFeaturesEXT 3732e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3733e5c31af7Sopenharmony_ci 3734e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.txt[] 3735e5c31af7Sopenharmony_ci-- 3736e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[] 3737e5c31af7Sopenharmony_ci 3738e5c31af7Sopenharmony_ciifdef::VK_EXT_robustness2[] 3739e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRobustness2FeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs'] 3740e5c31af7Sopenharmony_ci-- 3741e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRobustness2FeaturesEXT structure is defined as: 3742e5c31af7Sopenharmony_ci 3743e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRobustness2FeaturesEXT.txt[] 3744e5c31af7Sopenharmony_ci 3745e5c31af7Sopenharmony_ciThis structure describes the following features: 3746e5c31af7Sopenharmony_ci 3747e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3748e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3749e5c31af7Sopenharmony_ci structure. 3750e5c31af7Sopenharmony_ci * [[features-robustBufferAccess2]] pname:robustBufferAccess2 indicates 3751e5c31af7Sopenharmony_ci whether buffer accesses are tightly bounds-checked against the range of 3752e5c31af7Sopenharmony_ci the descriptor. 3753e5c31af7Sopenharmony_ci Uniform buffers must: be bounds-checked to the range of the descriptor, 3754e5c31af7Sopenharmony_ci where the range is rounded up to a multiple of 3755e5c31af7Sopenharmony_ci <<limits-robustUniformBufferAccessSizeAlignment,robustUniformBufferAccessSizeAlignment>>. 3756e5c31af7Sopenharmony_ci Storage buffers must: be bounds-checked to the range of the descriptor, 3757e5c31af7Sopenharmony_ci where the range is rounded up to a multiple of 3758e5c31af7Sopenharmony_ci <<limits-robustStorageBufferAccessSizeAlignment,robustStorageBufferAccessSizeAlignment>>. 3759e5c31af7Sopenharmony_ci Out of bounds buffer loads will return zero values, and formatted loads 3760e5c31af7Sopenharmony_ci will have [eq]#(0,0,1)# values inserted for missing G, B, or A 3761e5c31af7Sopenharmony_ci components based on the format. 3762e5c31af7Sopenharmony_ci * [[features-robustImageAccess2]] pname:robustImageAccess2 indicates 3763e5c31af7Sopenharmony_ci whether image accesses are tightly bounds-checked against the dimensions 3764e5c31af7Sopenharmony_ci of the image view. 3765e5c31af7Sopenharmony_ci Out of bounds image loads will return zero values, with [eq]#(0,0,1)# 3766e5c31af7Sopenharmony_ci values <<textures-conversion-to-rgba,inserted for missing G, B, or A 3767e5c31af7Sopenharmony_ci components>> based on the format. 3768e5c31af7Sopenharmony_ci * [[features-nullDescriptor]] pname:nullDescriptor indicates whether 3769e5c31af7Sopenharmony_ci descriptors can: be written with a dlink:VK_NULL_HANDLE resource or 3770e5c31af7Sopenharmony_ci view, which are considered valid to access and act as if the descriptor 3771e5c31af7Sopenharmony_ci were bound to nothing. 3772e5c31af7Sopenharmony_ci 3773e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRobustness2FeaturesEXT 3774e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3775e5c31af7Sopenharmony_ci 3776e5c31af7Sopenharmony_ci.Valid Usage 3777e5c31af7Sopenharmony_ci**** 3778e5c31af7Sopenharmony_ci * [[VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000]] 3779e5c31af7Sopenharmony_ci If pname:robustBufferAccess2 is enabled then 3780e5c31af7Sopenharmony_ci <<features-robustBufferAccess, pname:robustBufferAccess>> must: also be 3781e5c31af7Sopenharmony_ci enabled 3782e5c31af7Sopenharmony_ci**** 3783e5c31af7Sopenharmony_ci 3784e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRobustness2FeaturesEXT.txt[] 3785e5c31af7Sopenharmony_ci-- 3786e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 3787e5c31af7Sopenharmony_ci 3788e5c31af7Sopenharmony_ciifndef::VK_EXT_robustness2[] 3789e5c31af7Sopenharmony_ci[[features-nullDescriptor]] nullDescriptor support requires the 3790e5c31af7Sopenharmony_ci`apiext:VK_EXT_robustness2` extension. 3791e5c31af7Sopenharmony_ciendif::VK_EXT_robustness2[] 3792e5c31af7Sopenharmony_ci 3793e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[] 3794e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageRobustnessFeaturesEXT',desc='Structure describing the out-of-bounds behavior for an implementation',type='structs'] 3795e5c31af7Sopenharmony_ci-- 3796e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageRobustnessFeaturesEXT structure is defined 3797e5c31af7Sopenharmony_cias: 3798e5c31af7Sopenharmony_ci 3799e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.txt[] 3800e5c31af7Sopenharmony_ci 3801e5c31af7Sopenharmony_ciThis structure describes the following feature: 3802e5c31af7Sopenharmony_ci 3803e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3804e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3805e5c31af7Sopenharmony_ci structure. 3806e5c31af7Sopenharmony_ci * [[features-robustImageAccess]] pname:robustImageAccess indicates whether 3807e5c31af7Sopenharmony_ci image accesses are tightly bounds-checked against the dimensions of the 3808e5c31af7Sopenharmony_ci image view. 3809e5c31af7Sopenharmony_ci <<textures-input-validation,Invalid texels>> resulting from out of 3810e5c31af7Sopenharmony_ci bounds image loads will be replaced as described in 3811e5c31af7Sopenharmony_ci <<textures-texel-replacement,Texel Replacement>>, with either 3812e5c31af7Sopenharmony_ci [eq]#(0,0,1)# or [eq]#(0,0,0)# values inserted for missing G, B, or A 3813e5c31af7Sopenharmony_ci components based on the format. 3814e5c31af7Sopenharmony_ci 3815e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageRobustnessFeaturesEXT 3816e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3817e5c31af7Sopenharmony_ci 3818e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageRobustnessFeaturesEXT.txt[] 3819e5c31af7Sopenharmony_ci-- 3820e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[] 3821e5c31af7Sopenharmony_ci 3822e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[] 3823e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR',desc='Structure describing support for the SPIR-V code:SPV_KHR_terminate_invocation extension',type='structs'] 3824e5c31af7Sopenharmony_ci-- 3825e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR structure is 3826e5c31af7Sopenharmony_cidefined as: 3827e5c31af7Sopenharmony_ci 3828e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.txt[] 3829e5c31af7Sopenharmony_ci 3830e5c31af7Sopenharmony_ciThis structure describes the following feature: 3831e5c31af7Sopenharmony_ci 3832e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3833e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3834e5c31af7Sopenharmony_ci structure. 3835e5c31af7Sopenharmony_ci * [[features-shaderTerminateInvocation]] pname:shaderTerminateInvocation 3836e5c31af7Sopenharmony_ci specifies whether the implementation supports SPIR-V modules that use 3837e5c31af7Sopenharmony_ci the `SPV_KHR_terminate_invocation` extension. 3838e5c31af7Sopenharmony_ci 3839e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR 3840e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3841e5c31af7Sopenharmony_ci 3842e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR.txt[] 3843e5c31af7Sopenharmony_ci-- 3844e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[] 3845e5c31af7Sopenharmony_ci 3846e5c31af7Sopenharmony_ciifdef::VK_EXT_custom_border_color[] 3847e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceCustomBorderColorFeaturesEXT',desc='Structure describing whether custom border colors can be supported by an implementation',type='structs'] 3848e5c31af7Sopenharmony_ci-- 3849e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceCustomBorderColorFeaturesEXT structure is defined 3850e5c31af7Sopenharmony_cias: 3851e5c31af7Sopenharmony_ci 3852e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.txt[] 3853e5c31af7Sopenharmony_ci 3854e5c31af7Sopenharmony_ciThis structure describes the following features: 3855e5c31af7Sopenharmony_ci 3856e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3857e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3858e5c31af7Sopenharmony_ci structure. 3859e5c31af7Sopenharmony_ci * [[features-customBorderColors]] pname:customBorderColors indicates that 3860e5c31af7Sopenharmony_ci the implementation supports providing a pname:borderColor value with one 3861e5c31af7Sopenharmony_ci of the following values at sampler creation time: 3862e5c31af7Sopenharmony_ci ** ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT 3863e5c31af7Sopenharmony_ci ** ename:VK_BORDER_COLOR_INT_CUSTOM_EXT 3864e5c31af7Sopenharmony_ci * [[features-customBorderColorWithoutFormat]] 3865e5c31af7Sopenharmony_ci pname:customBorderColorWithoutFormat indicates that explicit formats are 3866e5c31af7Sopenharmony_ci not required for custom border colors and the value of the pname:format 3867e5c31af7Sopenharmony_ci member of the slink:VkSamplerCustomBorderColorCreateInfoEXT structure 3868e5c31af7Sopenharmony_ci may: be ename:VK_FORMAT_UNDEFINED. 3869e5c31af7Sopenharmony_ci If this feature bit is not set, applications must: provide the 3870e5c31af7Sopenharmony_ci elink:VkFormat of the image view(s) being sampled by this sampler in the 3871e5c31af7Sopenharmony_ci pname:format member of the slink:VkSamplerCustomBorderColorCreateInfoEXT 3872e5c31af7Sopenharmony_ci structure. 3873e5c31af7Sopenharmony_ci 3874e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceCustomBorderColorFeaturesEXT 3875e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3876e5c31af7Sopenharmony_ci 3877e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceCustomBorderColorFeaturesEXT.txt[] 3878e5c31af7Sopenharmony_ci-- 3879e5c31af7Sopenharmony_ciendif::VK_EXT_custom_border_color[] 3880e5c31af7Sopenharmony_ci 3881e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[] 3882e5c31af7Sopenharmony_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'] 3883e5c31af7Sopenharmony_ci-- 3884e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceBorderColorSwizzleFeaturesEXT structure is defined 3885e5c31af7Sopenharmony_cias: 3886e5c31af7Sopenharmony_ci 3887e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.txt[] 3888e5c31af7Sopenharmony_ci 3889e5c31af7Sopenharmony_ciThis structure describes the following features: 3890e5c31af7Sopenharmony_ci 3891e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3892e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3893e5c31af7Sopenharmony_ci structure. 3894e5c31af7Sopenharmony_ci * [[features-borderColorSwizzle]] pname:borderColorSwizzle indicates that 3895e5c31af7Sopenharmony_ci defined values are returned by sampled image operations when used with a 3896e5c31af7Sopenharmony_ci sampler that uses a ename:VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, 3897e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_INT_OPAQUE_BLACK, 3898e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, or 3899e5c31af7Sopenharmony_ci ename:VK_BORDER_COLOR_INT_CUSTOM_EXT pname:borderColor and an image view 3900e5c31af7Sopenharmony_ci that uses a non-<<resources-image-views-identity-mappings,identity 3901e5c31af7Sopenharmony_ci component mapping>>, when either pname:borderColorSwizzleFromImage is 3902e5c31af7Sopenharmony_ci enabled or the slink:VkSamplerBorderColorComponentMappingCreateInfoEXT 3903e5c31af7Sopenharmony_ci is specified. 3904e5c31af7Sopenharmony_ci * [[features-borderColorSwizzleFromImage]] 3905e5c31af7Sopenharmony_ci pname:borderColorSwizzleFromImage indicates that the implementation will 3906e5c31af7Sopenharmony_ci return the correct border color values from sampled image operations 3907e5c31af7Sopenharmony_ci under the conditions expressed above, without the application having to 3908e5c31af7Sopenharmony_ci specify the border color component mapping when creating the sampler 3909e5c31af7Sopenharmony_ci object. 3910e5c31af7Sopenharmony_ci If this feature bit is not set, applications can: chain a 3911e5c31af7Sopenharmony_ci slink:VkSamplerBorderColorComponentMappingCreateInfoEXT structure when 3912e5c31af7Sopenharmony_ci creating samplers for use with image views that do not have an 3913e5c31af7Sopenharmony_ci <<resources-image-views-identity-mappings,identity swizzle>> and, when 3914e5c31af7Sopenharmony_ci those samplers are combined with image views using the same component 3915e5c31af7Sopenharmony_ci mapping, sampled image operations that use opaque black or custom border 3916e5c31af7Sopenharmony_ci colors will return the correct border color values. 3917e5c31af7Sopenharmony_ci 3918e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceBorderColorSwizzleFeaturesEXT 3919e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 3920e5c31af7Sopenharmony_ci 3921e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceBorderColorSwizzleFeaturesEXT.txt[] 3922e5c31af7Sopenharmony_ci-- 3923e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[] 3924e5c31af7Sopenharmony_ci 3925e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[] 3926e5c31af7Sopenharmony_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'] 3927e5c31af7Sopenharmony_ci-- 3928e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePortabilitySubsetFeaturesKHR structure is defined 3929e5c31af7Sopenharmony_cias: 3930e5c31af7Sopenharmony_ci 3931e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.txt[] 3932e5c31af7Sopenharmony_ci 3933e5c31af7Sopenharmony_ciThis structure describes the following features: 3934e5c31af7Sopenharmony_ci 3935e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 3936e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 3937e5c31af7Sopenharmony_ci structure. 3938e5c31af7Sopenharmony_ci * [[features-constantAlphaColorBlendFactors]] 3939e5c31af7Sopenharmony_ci pname:constantAlphaColorBlendFactors indicates whether this 3940e5c31af7Sopenharmony_ci implementation supports constant _alpha_ <<framebuffer-blendfactors>> 3941e5c31af7Sopenharmony_ci used as source or destination _color_ <<framebuffer-blending>>. 3942e5c31af7Sopenharmony_ci * [[features-events]] pname:events indicates whether this implementation 3943e5c31af7Sopenharmony_ci supports synchronization using <<synchronization-events>>. 3944e5c31af7Sopenharmony_ci * [[features-imageViewFormatReinterpretation]] 3945e5c31af7Sopenharmony_ci pname:imageViewFormatReinterpretation indicates whether this 3946e5c31af7Sopenharmony_ci implementation supports a sname:VkImageView being created with a texel 3947e5c31af7Sopenharmony_ci format containing a different number of components, or a different 3948e5c31af7Sopenharmony_ci number of bits in each component, than the texel format of the 3949e5c31af7Sopenharmony_ci underlying sname:VkImage. 3950e5c31af7Sopenharmony_ci * [[features-imageViewFormatSwizzle]] pname:imageViewFormatSwizzle 3951e5c31af7Sopenharmony_ci indicates whether this implementation supports remapping format 3952e5c31af7Sopenharmony_ci components using slink:VkImageViewCreateInfo::pname:components. 3953e5c31af7Sopenharmony_ci * [[features-imageView2DOn3DImage]] pname:imageView2DOn3DImage indicates 3954e5c31af7Sopenharmony_ci whether this implementation supports a sname:VkImage being created with 3955e5c31af7Sopenharmony_ci the ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT flag set, permitting a 3956e5c31af7Sopenharmony_ci 2D or 2D array image view to be created on a 3D sname:VkImage. 3957e5c31af7Sopenharmony_ci * [[features-multisampleArrayImage]] pname:multisampleArrayImage indicates 3958e5c31af7Sopenharmony_ci whether this implementation supports a sname:VkImage being created as a 3959e5c31af7Sopenharmony_ci 2D array with multiple samples per texel. 3960e5c31af7Sopenharmony_ci * [[features-mutableComparisonSamplers]] pname:mutableComparisonSamplers 3961e5c31af7Sopenharmony_ci indicates whether this implementation allows descriptors with comparison 3962e5c31af7Sopenharmony_ci samplers to be <<descriptorsets-updates, updated>>. 3963e5c31af7Sopenharmony_ci * [[features-pointPolygons]] pname:pointPolygons indicates whether this 3964e5c31af7Sopenharmony_ci implementation supports <<primsrast>> using a _point_ 3965e5c31af7Sopenharmony_ci <<primsrast-polygonmode>>. 3966e5c31af7Sopenharmony_ci * [[features-samplerMipLodBias]] pname:samplerMipLodBias indicates whether 3967e5c31af7Sopenharmony_ci this implementation supports setting a <<samplers-mipLodBias, mipmap LOD 3968e5c31af7Sopenharmony_ci bias value>> when <<samplers, creating a sampler>>. 3969e5c31af7Sopenharmony_ci * [[features-separateStencilMaskRef]] pname:separateStencilMaskRef 3970e5c31af7Sopenharmony_ci indicates whether this implementation supports separate front and back 3971e5c31af7Sopenharmony_ci <<fragops-stencil>> reference values. 3972e5c31af7Sopenharmony_ci * [[features-shaderSampleRateInterpolationFunctions]] 3973e5c31af7Sopenharmony_ci pname:shaderSampleRateInterpolationFunctions indicates whether this 3974e5c31af7Sopenharmony_ci implementation supports fragment shaders which use the 3975e5c31af7Sopenharmony_ci <<spirvenv-capabilities-table-InterpolationFunction, 3976e5c31af7Sopenharmony_ci code:InterpolationFunction>> capability and the extended instructions 3977e5c31af7Sopenharmony_ci `InterpolateAtCentroid`, `InterpolateAtOffset`, and 3978e5c31af7Sopenharmony_ci `InterpolateAtSample` from the `GLSL.std.450` extended instruction set. 3979e5c31af7Sopenharmony_ci This member is only meaningful if the 3980e5c31af7Sopenharmony_ci <<features-sampleRateShading,sampleRateShading>> feature is supported. 3981e5c31af7Sopenharmony_ci * [[features-tessellationIsolines]] pname:tessellationIsolines indicates 3982e5c31af7Sopenharmony_ci whether this implementation supports 3983e5c31af7Sopenharmony_ci <<tessellation-isoline-tessellation, isoline output>> from the 3984e5c31af7Sopenharmony_ci <<tessellation>> stage of a graphics pipeline. 3985e5c31af7Sopenharmony_ci This member is only meaningful if 3986e5c31af7Sopenharmony_ci <<features-tessellationShader,tessellation shaders>> are supported. 3987e5c31af7Sopenharmony_ci * [[features-tessellationPointMode]] pname:tessellationPointMode indicates 3988e5c31af7Sopenharmony_ci whether this implementation supports <<tessellation-point-mode, point 3989e5c31af7Sopenharmony_ci output>> from the <<tessellation>> stage of a graphics pipeline. 3990e5c31af7Sopenharmony_ci This member is only meaningful if 3991e5c31af7Sopenharmony_ci <<features-tessellationShader,tessellation shaders>> are supported. 3992e5c31af7Sopenharmony_ci * [[features-triangleFans]] pname:triangleFans indicates whether this 3993e5c31af7Sopenharmony_ci implementation supports <<drawing-triangle-fans>> primitive topology. 3994e5c31af7Sopenharmony_ci * [[features-vertexAttributeAccessBeyondStride]] 3995e5c31af7Sopenharmony_ci pname:vertexAttributeAccessBeyondStride indicates whether this 3996e5c31af7Sopenharmony_ci implementation supports accessing a vertex input attribute beyond the 3997e5c31af7Sopenharmony_ci stride of the corresponding vertex input binding. 3998e5c31af7Sopenharmony_ci 3999e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePortabilitySubsetFeaturesKHR 4000e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4001e5c31af7Sopenharmony_ci 4002e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePortabilitySubsetFeaturesKHR.txt[] 4003e5c31af7Sopenharmony_ci-- 4004e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 4005e5c31af7Sopenharmony_ci 4006e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[] 4007e5c31af7Sopenharmony_ciinclude::{chapters}/VK_KHR_performance_query/features.txt[] 4008e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[] 4009e5c31af7Sopenharmony_ci 4010e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[] 4011e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevice4444FormatsFeaturesEXT',desc='Structure describing additional 4444 formats supported by an implementation',type='structs'] 4012e5c31af7Sopenharmony_ci-- 4013e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevice4444FormatsFeaturesEXT structure is defined as: 4014e5c31af7Sopenharmony_ci 4015e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevice4444FormatsFeaturesEXT.txt[] 4016e5c31af7Sopenharmony_ci 4017e5c31af7Sopenharmony_ciThis structure describes the following features: 4018e5c31af7Sopenharmony_ci 4019e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4020e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4021e5c31af7Sopenharmony_ci structure. 4022e5c31af7Sopenharmony_ci * [[features-formatA4R4G4B4]] pname:formatA4R4G4B4 indicates that the 4023e5c31af7Sopenharmony_ci implementation must: support using a elink:VkFormat of 4024e5c31af7Sopenharmony_ci ename:VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT with at least the following 4025e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits: 4026e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 4027e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT 4028e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT 4029e5c31af7Sopenharmony_ci * [[features-formatA4B4G4R4]] pname:formatA4B4G4R4 indicates that the 4030e5c31af7Sopenharmony_ci implementation must: support using a elink:VkFormat of 4031e5c31af7Sopenharmony_ci ename:VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT with at least the following 4032e5c31af7Sopenharmony_ci elink:VkFormatFeatureFlagBits: 4033e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT 4034e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT 4035e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT 4036e5c31af7Sopenharmony_ci 4037e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevice4444FormatsFeaturesEXT 4038e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4039e5c31af7Sopenharmony_ci 4040e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevice4444FormatsFeaturesEXT.txt[] 4041e5c31af7Sopenharmony_ci-- 4042e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[] 4043e5c31af7Sopenharmony_ci 4044e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[] 4045e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE',desc='Structure describing whether the mutable descriptor type is supported',type='structs'] 4046e5c31af7Sopenharmony_ci-- 4047e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE structure is 4048e5c31af7Sopenharmony_cidefined as: 4049e5c31af7Sopenharmony_ci 4050e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.txt[] 4051e5c31af7Sopenharmony_ci 4052e5c31af7Sopenharmony_ciThis structure describes the following feature: 4053e5c31af7Sopenharmony_ci 4054e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4055e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4056e5c31af7Sopenharmony_ci structure. 4057e5c31af7Sopenharmony_ci * [[features-mutableDescriptorType]] pname:mutableDescriptorType indicates 4058e5c31af7Sopenharmony_ci that the implementation must: support using the elink:VkDescriptorType 4059e5c31af7Sopenharmony_ci of ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE with at least the following 4060e5c31af7Sopenharmony_ci descriptor types, where any combination of the types must: be supported: 4061e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE 4062e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE 4063e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER 4064e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER 4065e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER 4066e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER 4067e5c31af7Sopenharmony_ci 4068e5c31af7Sopenharmony_ci * Additionally, pname:mutableDescriptorType indicates that: 4069e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4070e5c31af7Sopenharmony_ci ** Non-uniform descriptor indexing must: be supported if all descriptor 4071e5c31af7Sopenharmony_ci types in a slink:VkMutableDescriptorTypeListVALVE for 4072e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE have the corresponding 4073e5c31af7Sopenharmony_ci non-uniform indexing features enabled in 4074e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceDescriptorIndexingFeatures. 4075e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT with 4076e5c31af7Sopenharmony_ci pname:descriptorType of ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE relaxes 4077e5c31af7Sopenharmony_ci the list of required descriptor types to the descriptor types which 4078e5c31af7Sopenharmony_ci have the corresponding update-after-bind feature enabled in 4079e5c31af7Sopenharmony_ci slink:VkPhysicalDeviceDescriptorIndexingFeatures. 4080e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4081e5c31af7Sopenharmony_ci ** Dynamically uniform descriptor indexing must: be supported if all 4082e5c31af7Sopenharmony_ci descriptor types in a slink:VkMutableDescriptorTypeListVALVE for 4083e5c31af7Sopenharmony_ci ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE have the corresponding dynamic 4084e5c31af7Sopenharmony_ci indexing features enabled. 4085e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE must: be 4086e5c31af7Sopenharmony_ci supported. 4087e5c31af7Sopenharmony_ci ** ename:VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE must: be supported. 4088e5c31af7Sopenharmony_ci 4089e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE 4090e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4091e5c31af7Sopenharmony_ci 4092e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE.txt[] 4093e5c31af7Sopenharmony_ci-- 4094e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[] 4095e5c31af7Sopenharmony_ci 4096e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[] 4097e5c31af7Sopenharmony_ci 4098e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDepthClipControlFeaturesEXT',desc='Structure describing additional depth clip control supported by an implementation',type='structs'] 4099e5c31af7Sopenharmony_ci-- 4100e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDepthClipControlFeaturesEXT structure is defined 4101e5c31af7Sopenharmony_cias: 4102e5c31af7Sopenharmony_ci 4103e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.txt[] 4104e5c31af7Sopenharmony_ci 4105e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceDepthClipControlFeaturesEXT 4106e5c31af7Sopenharmony_cistructure describe the following features: 4107e5c31af7Sopenharmony_ci 4108e5c31af7Sopenharmony_ci * [[features-depthClipControl]] pname:depthClipControl indicates that the 4109e5c31af7Sopenharmony_ci implementation supports setting 4110e5c31af7Sopenharmony_ci slink:VkPipelineViewportDepthClipControlCreateInfoEXT::pname:negativeOneToOne 4111e5c31af7Sopenharmony_ci to ename:VK_TRUE. 4112e5c31af7Sopenharmony_ci 4113e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDepthClipControlFeaturesEXT 4114e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4115e5c31af7Sopenharmony_ci 4116e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDepthClipControlFeaturesEXT.txt[] 4117e5c31af7Sopenharmony_ci-- 4118e5c31af7Sopenharmony_ci 4119e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[] 4120e5c31af7Sopenharmony_ci 4121e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 4122e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',desc='Structure describing the workgroup storage explicit layout features that can be supported by an implementation',type='structs'] 4123e5c31af7Sopenharmony_ci-- 4124e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR structure 4125e5c31af7Sopenharmony_ciis defined as: 4126e5c31af7Sopenharmony_ci 4127e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.txt[] 4128e5c31af7Sopenharmony_ci 4129e5c31af7Sopenharmony_ciThis structure describes the following features: 4130e5c31af7Sopenharmony_ci 4131e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4132e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4133e5c31af7Sopenharmony_ci structure. 4134e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout]] 4135e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout indicates whether the implementation 4136e5c31af7Sopenharmony_ci supports the SPIR-V code:WorkgroupMemoryExplicitLayoutKHR capability. 4137e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayoutScalarBlockLayout]] 4138e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayoutScalarBlockLayout indicates whether 4139e5c31af7Sopenharmony_ci the implementation supports scalar alignment for laying out Workgroup 4140e5c31af7Sopenharmony_ci Blocks. 4141e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout8BitAccess]] 4142e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout8BitAccess indicates whether objects 4143e5c31af7Sopenharmony_ci in the code:Workgroup storage class with the code:Block decoration can: 4144e5c31af7Sopenharmony_ci have 8-bit integer members. 4145e5c31af7Sopenharmony_ci If this feature is not enabled, 8-bit integer members must: not be used 4146e5c31af7Sopenharmony_ci in such objects. 4147e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 4148e5c31af7Sopenharmony_ci code:WorkgroupMemoryExplicitLayout8BitAccessKHR capability. 4149e5c31af7Sopenharmony_ci * [[features-workgroupMemoryExplicitLayout16BitAccess]] 4150e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout16BitAccess indicates whether objects 4151e5c31af7Sopenharmony_ci in the code:Workgroup storage class with the code:Block decoration can: 4152e5c31af7Sopenharmony_ci have 16-bit integer and 16-bit floating-point members. 4153e5c31af7Sopenharmony_ci If this feature is not enabled, 16-bit integer or 16-bit floating-point 4154e5c31af7Sopenharmony_ci members must: not be used in such objects. 4155e5c31af7Sopenharmony_ci This also indicates whether shader modules can: declare the 4156e5c31af7Sopenharmony_ci code:WorkgroupMemoryExplicitLayout16BitAccessKHR capability. 4157e5c31af7Sopenharmony_ci 4158e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR 4159e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4160e5c31af7Sopenharmony_ci 4161e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.txt[] 4162e5c31af7Sopenharmony_ci-- 4163e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 4164e5c31af7Sopenharmony_ci 4165e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[] 4166e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSynchronization2FeaturesKHR',desc='Structure describing whether the implementation supports v2 synchronization commands',type='structs'] 4167e5c31af7Sopenharmony_ci-- 4168e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSynchronization2FeaturesKHR structure is defined 4169e5c31af7Sopenharmony_cias: 4170e5c31af7Sopenharmony_ci 4171e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.txt[] 4172e5c31af7Sopenharmony_ci 4173e5c31af7Sopenharmony_ciThis structure describes the following feature: 4174e5c31af7Sopenharmony_ci 4175e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4176e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4177e5c31af7Sopenharmony_ci structure. 4178e5c31af7Sopenharmony_ci * [[features-synchronization2]] pname:synchronization2 indicates whether 4179e5c31af7Sopenharmony_ci the implementation supports the new set of synchronization commands 4180e5c31af7Sopenharmony_ci introduced in `apiext:VK_KHR_synchronization2`. 4181e5c31af7Sopenharmony_ci 4182e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSynchronization2FeaturesKHR 4183e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4184e5c31af7Sopenharmony_ci 4185e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSynchronization2FeaturesKHR.txt[] 4186e5c31af7Sopenharmony_ci-- 4187e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[] 4188e5c31af7Sopenharmony_ci 4189e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[] 4190e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT',desc='Structure describing whether the dynamic vertex input state can be used',type='structs'] 4191e5c31af7Sopenharmony_ci-- 4192e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT structure is 4193e5c31af7Sopenharmony_cidefined as: 4194e5c31af7Sopenharmony_ci 4195e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.txt[] 4196e5c31af7Sopenharmony_ci 4197e5c31af7Sopenharmony_ciThis structure describes the following feature: 4198e5c31af7Sopenharmony_ci 4199e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4200e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4201e5c31af7Sopenharmony_ci structure. 4202e5c31af7Sopenharmony_ci * [[features-vertexInputDynamicState]] pname:vertexInputDynamicState 4203e5c31af7Sopenharmony_ci indicates that the implementation supports the following dynamic states: 4204e5c31af7Sopenharmony_ci ** ename:VK_DYNAMIC_STATE_VERTEX_INPUT_EXT 4205e5c31af7Sopenharmony_ci 4206e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT 4207e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4208e5c31af7Sopenharmony_ci 4209e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT.txt[] 4210e5c31af7Sopenharmony_ci-- 4211e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[] 4212e5c31af7Sopenharmony_ci 4213e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 4214e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateFeaturesKHR',desc='Structure indicating support for variable rate fragment shading',type='structs'] 4215e5c31af7Sopenharmony_ci-- 4216e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateFeaturesKHR structure is 4217e5c31af7Sopenharmony_cidefined as: 4218e5c31af7Sopenharmony_ci 4219e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.txt[] 4220e5c31af7Sopenharmony_ci 4221e5c31af7Sopenharmony_ciThis structure describes the following features: 4222e5c31af7Sopenharmony_ci 4223e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4224e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4225e5c31af7Sopenharmony_ci structure. 4226e5c31af7Sopenharmony_ci * [[features-pipelineFragmentShadingRate]] 4227e5c31af7Sopenharmony_ci pname:pipelineFragmentShadingRate indicates that the implementation 4228e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-pipeline, pipeline 4229e5c31af7Sopenharmony_ci fragment shading rate>>. 4230e5c31af7Sopenharmony_ci * [[features-primitiveFragmentShadingRate]] 4231e5c31af7Sopenharmony_ci pname:primitiveFragmentShadingRate indicates that the implementation 4232e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-primitive, primitive 4233e5c31af7Sopenharmony_ci fragment shading rate>>. 4234e5c31af7Sopenharmony_ci * [[features-attachmentFragmentShadingRate]] 4235e5c31af7Sopenharmony_ci pname:attachmentFragmentShadingRate indicates that the implementation 4236e5c31af7Sopenharmony_ci supports the <<primsrast-fragment-shading-rate-attachment, attachment 4237e5c31af7Sopenharmony_ci fragment shading rate>>. 4238e5c31af7Sopenharmony_ci 4239e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateFeaturesKHR 4240e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4241e5c31af7Sopenharmony_ci 4242e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateFeaturesKHR.txt[] 4243e5c31af7Sopenharmony_ci-- 4244e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 4245e5c31af7Sopenharmony_ci 4246e5c31af7Sopenharmony_ciifdef::VK_NV_fragment_shading_rate_enums[] 4247e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV',desc='Structure indicating support for fragment shading rate enums',type='structs'] 4248e5c31af7Sopenharmony_ci-- 4249e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV structure is 4250e5c31af7Sopenharmony_cidefined as: 4251e5c31af7Sopenharmony_ci 4252e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.txt[] 4253e5c31af7Sopenharmony_ci 4254e5c31af7Sopenharmony_ciThis structure describes the following features: 4255e5c31af7Sopenharmony_ci 4256e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4257e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4258e5c31af7Sopenharmony_ci structure. 4259e5c31af7Sopenharmony_ci * [[features-fragmentShadingRateEnums]] pname:fragmentShadingRateEnums 4260e5c31af7Sopenharmony_ci indicates that the implementation supports specifying fragment shading 4261e5c31af7Sopenharmony_ci rates using the ename:VkFragmentShadingRateNV enumerated type. 4262e5c31af7Sopenharmony_ci * [[features-supersampleFragmentShadingRates]] 4263e5c31af7Sopenharmony_ci pname:supersampleFragmentShadingRates indicates that the implementation 4264e5c31af7Sopenharmony_ci supports fragment shading rate enum values indicating more than one 4265e5c31af7Sopenharmony_ci invocation per fragment. 4266e5c31af7Sopenharmony_ci * [[features-noInvocationFragmentShadingRates]] 4267e5c31af7Sopenharmony_ci pname:noInvocationFragmentShadingRates indicates that the implementation 4268e5c31af7Sopenharmony_ci supports a fragment shading rate enum value indicating that no fragment 4269e5c31af7Sopenharmony_ci shaders should be invoked when that shading rate is used. 4270e5c31af7Sopenharmony_ci 4271e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV 4272e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4273e5c31af7Sopenharmony_ci 4274e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV.txt[] 4275e5c31af7Sopenharmony_ci-- 4276e5c31af7Sopenharmony_ciendif::VK_NV_fragment_shading_rate_enums[] 4277e5c31af7Sopenharmony_ci 4278e5c31af7Sopenharmony_ci 4279e5c31af7Sopenharmony_ciifdef::VK_NV_inherited_viewport_scissor[] 4280e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceInheritedViewportScissorFeaturesNV',desc='Structure describing the viewport scissor inheritance behavior for an implementation',type='structs'] 4281e5c31af7Sopenharmony_ci-- 4282e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceInheritedViewportScissorFeaturesNV structure is 4283e5c31af7Sopenharmony_cidefined as: 4284e5c31af7Sopenharmony_ci 4285e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.txt[] 4286e5c31af7Sopenharmony_ci 4287e5c31af7Sopenharmony_ciThis structure describes the following feature: 4288e5c31af7Sopenharmony_ci 4289e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4290e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4291e5c31af7Sopenharmony_ci structure. 4292e5c31af7Sopenharmony_ci * [[features-inheritedViewportScissor2D]] 4293e5c31af7Sopenharmony_ci pname:inheritedViewportScissor2D indicates whether secondary command 4294e5c31af7Sopenharmony_ci buffers can inherit most of the dynamic state affected by 4295e5c31af7Sopenharmony_ciifdef::VK_EXT_extended_dynamic_state[] 4296e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, 4297e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, 4298e5c31af7Sopenharmony_ciendif::VK_EXT_extended_dynamic_state[] 4299e5c31af7Sopenharmony_ciifdef::VK_EXT_discard_rectangles[] 4300e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, 4301e5c31af7Sopenharmony_ciendif::VK_EXT_discard_rectangles[] 4302e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_VIEWPORT or ename:VK_DYNAMIC_STATE_SCISSOR, 4303e5c31af7Sopenharmony_ci from a primary command buffer. 4304e5c31af7Sopenharmony_ci 4305e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceInheritedViewportScissorFeaturesNV 4306e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4307e5c31af7Sopenharmony_ci 4308e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceInheritedViewportScissorFeaturesNV.txt[] 4309e5c31af7Sopenharmony_ci-- 4310e5c31af7Sopenharmony_ciendif::VK_NV_inherited_viewport_scissor[] 4311e5c31af7Sopenharmony_ci 4312e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_2plane_444_formats[] 4313e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT',desc='Structure describing whether the implementation supports additional 2-plane 444 {YCbCr} formats',type='structs'] 4314e5c31af7Sopenharmony_ci-- 4315e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT structure is 4316e5c31af7Sopenharmony_cidefined as: 4317e5c31af7Sopenharmony_ci 4318e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.txt[] 4319e5c31af7Sopenharmony_ci 4320e5c31af7Sopenharmony_ciThis structure describes the following feature: 4321e5c31af7Sopenharmony_ci 4322e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4323e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4324e5c31af7Sopenharmony_ci structure. 4325e5c31af7Sopenharmony_ci * [[features-ycbcr2plane444Formats]] pname:ycbcr2plane444Formats indicates 4326e5c31af7Sopenharmony_ci that the implementation supports the following 2-plane 444 {YCbCr} 4327e5c31af7Sopenharmony_ci formats: 4328e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT 4329e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT 4330e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT 4331e5c31af7Sopenharmony_ci ** ename:VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT 4332e5c31af7Sopenharmony_ci 4333e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT 4334e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4335e5c31af7Sopenharmony_ci 4336e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT.txt[] 4337e5c31af7Sopenharmony_ci-- 4338e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_2plane_444_formats[] 4339e5c31af7Sopenharmony_ci 4340e5c31af7Sopenharmony_ciifdef::VK_EXT_color_write_enable[] 4341e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceColorWriteEnableFeaturesEXT',desc='Structure describing whether writes to color attachments can be enabled and disabled dynamically',type='structs'] 4342e5c31af7Sopenharmony_ci-- 4343e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceColorWriteEnableFeaturesEXT structure is defined 4344e5c31af7Sopenharmony_cias: 4345e5c31af7Sopenharmony_ci 4346e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.txt[] 4347e5c31af7Sopenharmony_ci 4348e5c31af7Sopenharmony_ciThis structure describes the following feature: 4349e5c31af7Sopenharmony_ci 4350e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4351e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4352e5c31af7Sopenharmony_ci structure. 4353e5c31af7Sopenharmony_ci * [[features-colorWriteEnable]] pname:colorWriteEnable indicates that the 4354e5c31af7Sopenharmony_ci implementation supports the dynamic state 4355e5c31af7Sopenharmony_ci ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT. 4356e5c31af7Sopenharmony_ci 4357e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceColorWriteEnableFeaturesEXT 4358e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4359e5c31af7Sopenharmony_ci 4360e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceColorWriteEnableFeaturesEXT.txt[] 4361e5c31af7Sopenharmony_ci-- 4362e5c31af7Sopenharmony_ciendif::VK_EXT_color_write_enable[] 4363e5c31af7Sopenharmony_ci 4364e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[] 4365e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceProvokingVertexFeaturesEXT',desc='Structure describing the provoking vertex features that can be supported by an implementation',type='structs'] 4366e5c31af7Sopenharmony_ci-- 4367e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceProvokingVertexFeaturesEXT structure is defined 4368e5c31af7Sopenharmony_cias: 4369e5c31af7Sopenharmony_ci 4370e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.txt[] 4371e5c31af7Sopenharmony_ci 4372e5c31af7Sopenharmony_ciThis structure describes the following feature: 4373e5c31af7Sopenharmony_ci 4374e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4375e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4376e5c31af7Sopenharmony_ci structure. 4377e5c31af7Sopenharmony_ci * [[features-provokingVertexLast]] pname:provokingVertexLast indicates 4378e5c31af7Sopenharmony_ci whether the implementation supports the 4379e5c31af7Sopenharmony_ci ename:VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT 4380e5c31af7Sopenharmony_ci <<VkProvokingVertexModeEXT,provoking vertex mode>> for flat shading. 4381e5c31af7Sopenharmony_ci * [[features-transformFeedbackPreservesProvokingVertex]] 4382e5c31af7Sopenharmony_ci pname:transformFeedbackPreservesProvokingVertex indicates that the order 4383e5c31af7Sopenharmony_ci of vertices within each primitive written by transform feedback will 4384e5c31af7Sopenharmony_ci preserve the provoking vertex. 4385e5c31af7Sopenharmony_ci This does not apply to triangle fan primitives when 4386e5c31af7Sopenharmony_ci <<limits-transformFeedbackPreservesTriangleFanProvokingVertex,pname:transformFeedbackPreservesTriangleFanProvokingVertex>> 4387e5c31af7Sopenharmony_ci is ename:VK_FALSE. 4388e5c31af7Sopenharmony_ci pname:transformFeedbackPreservesProvokingVertex must: be ename:VK_FALSE 4389e5c31af7Sopenharmony_ci when the apiext:VK_EXT_transform_feedback extension is not supported. 4390e5c31af7Sopenharmony_ci 4391e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceProvokingVertexFeaturesEXT 4392e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4393e5c31af7Sopenharmony_ci 4394e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 4395e5c31af7Sopenharmony_ciWhen sname:VkPhysicalDeviceProvokingVertexFeaturesEXT is in the pname:pNext 4396e5c31af7Sopenharmony_cichain of slink:VkDeviceCreateInfo but the 4397e5c31af7Sopenharmony_ci<<features-transformFeedback,transform feedback feature>> is not enabled, 4398e5c31af7Sopenharmony_cithe value of pname:transformFeedbackPreservesProvokingVertex is ignored. 4399e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 4400e5c31af7Sopenharmony_ci 4401e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceProvokingVertexFeaturesEXT.txt[] 4402e5c31af7Sopenharmony_ci-- 4403e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[] 4404e5c31af7Sopenharmony_ci 4405e5c31af7Sopenharmony_ciifdef::VK_EXT_pageable_device_local_memory[] 4406e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',desc='Structure describing whether the implementation supports pageable device-local memory',type='structs'] 4407e5c31af7Sopenharmony_ci-- 4408e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT structure is 4409e5c31af7Sopenharmony_cidefined as: 4410e5c31af7Sopenharmony_ci 4411e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.txt[] 4412e5c31af7Sopenharmony_ci 4413e5c31af7Sopenharmony_ciThis structure describes the following feature: 4414e5c31af7Sopenharmony_ci 4415e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4416e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4417e5c31af7Sopenharmony_ci structure. 4418e5c31af7Sopenharmony_ci * [[features-pageableDeviceLocalMemory]] pname:pageableDeviceLocalMemory 4419e5c31af7Sopenharmony_ci indicates that the implementation supports pageable device-local memory 4420e5c31af7Sopenharmony_ci and may: transparently move device-local memory allocations to 4421e5c31af7Sopenharmony_ci host-local memory to better share device-local memory with other 4422e5c31af7Sopenharmony_ci applications. 4423e5c31af7Sopenharmony_ci 4424e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT 4425e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4426e5c31af7Sopenharmony_ci 4427e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT.txt[] 4428e5c31af7Sopenharmony_ci-- 4429e5c31af7Sopenharmony_ciendif::VK_EXT_pageable_device_local_memory[] 4430e5c31af7Sopenharmony_ci 4431e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[] 4432e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMultiDrawFeaturesEXT',desc='Structure describing whether the implementation supports multi draw functionality',type='structs'] 4433e5c31af7Sopenharmony_ci-- 4434e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure is defined as: 4435e5c31af7Sopenharmony_ci 4436e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.txt[] 4437e5c31af7Sopenharmony_ci 4438e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceMultiDrawFeaturesEXT structure 4439e5c31af7Sopenharmony_cidescribe the following features: 4440e5c31af7Sopenharmony_ci 4441e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4442e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4443e5c31af7Sopenharmony_ci structure. 4444e5c31af7Sopenharmony_ci * [[features-multiDraw]] pname:multiDraw indicates that the implementation 4445e5c31af7Sopenharmony_ci supports flink:vkCmdDrawMultiEXT and flink:vkCmdDrawMultiIndexedEXT. 4446e5c31af7Sopenharmony_ci 4447e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMultiDrawFeaturesEXT 4448e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4449e5c31af7Sopenharmony_ci 4450e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMultiDrawFeaturesEXT.txt[] 4451e5c31af7Sopenharmony_ci-- 4452e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[] 4453e5c31af7Sopenharmony_ci 4454e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[] 4455e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRayTracingMotionBlurFeaturesNV',desc='Structure describing the ray tracing motion blur features that can be supported by an implementation',type='structs'] 4456e5c31af7Sopenharmony_ci-- 4457e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV structure is 4458e5c31af7Sopenharmony_cidefined as: 4459e5c31af7Sopenharmony_ci 4460e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.txt[] 4461e5c31af7Sopenharmony_ci 4462e5c31af7Sopenharmony_ciThis structure describes the following feature: 4463e5c31af7Sopenharmony_ci 4464e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4465e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4466e5c31af7Sopenharmony_ci structure. 4467e5c31af7Sopenharmony_ci * [[features-rayTracingMotionBlur]] pname:rayTracingMotionBlur indicates 4468e5c31af7Sopenharmony_ci whether the implementation supports the motion blur feature. 4469e5c31af7Sopenharmony_ci * [[features-rayTracingMotionBlurPipelineTraceRaysIndirect]] 4470e5c31af7Sopenharmony_ci pname:rayTracingMotionBlurPipelineTraceRaysIndirect indicates whether 4471e5c31af7Sopenharmony_ci the implementation supports indirect ray tracing commands with the 4472e5c31af7Sopenharmony_ci motion blur feature enabled. 4473e5c31af7Sopenharmony_ci 4474e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRayTracingMotionBlurFeaturesNV 4475e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4476e5c31af7Sopenharmony_ci 4477e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRayTracingMotionBlurFeaturesNV.txt[] 4478e5c31af7Sopenharmony_ci-- 4479e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_motion_blur[] 4480e5c31af7Sopenharmony_ci 4481e5c31af7Sopenharmony_ciifdef::VK_HUAWEI_subpass_shading[] 4482e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceSubpassShadingFeaturesHUAWEI',desc='Structure describing whether subpass shading is enabled',type='structs'] 4483e5c31af7Sopenharmony_ci-- 4484e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceSubpassShadingFeaturesHUAWEI structure is defined 4485e5c31af7Sopenharmony_cias: 4486e5c31af7Sopenharmony_ci 4487e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.txt[] 4488e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4489e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4490e5c31af7Sopenharmony_ci structure. 4491e5c31af7Sopenharmony_ci * [[features-subpassShading]] pname:subpassShading specifies whether 4492e5c31af7Sopenharmony_ci subpass shading is supported. 4493e5c31af7Sopenharmony_ci 4494e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceSubpassShadingFeaturesHUAWEI 4495e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4496e5c31af7Sopenharmony_ci 4497e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceSubpassShadingFeaturesHUAWEI.txt[] 4498e5c31af7Sopenharmony_ci-- 4499e5c31af7Sopenharmony_ciendif::VK_HUAWEI_subpass_shading[] 4500e5c31af7Sopenharmony_ci 4501e5c31af7Sopenharmony_ciifdef::VK_NV_external_memory_rdma[] 4502e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceExternalMemoryRDMAFeaturesNV',desc='Structure describing the external memory RDMA features supported by the implementation',type='structs'] 4503e5c31af7Sopenharmony_ci-- 4504e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceExternalMemoryRDMAFeaturesNV structure is defined 4505e5c31af7Sopenharmony_cias: 4506e5c31af7Sopenharmony_ci 4507e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.txt[] 4508e5c31af7Sopenharmony_ci 4509e5c31af7Sopenharmony_ciThis structure describes the following feature: 4510e5c31af7Sopenharmony_ci 4511e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4512e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4513e5c31af7Sopenharmony_ci structure. 4514e5c31af7Sopenharmony_ci * [[features-externalMemoryRDMA]] pname:externalMemoryRDMA indicates 4515e5c31af7Sopenharmony_ci whether the implementation has support for the 4516e5c31af7Sopenharmony_ci ename:VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV memory property and the 4517e5c31af7Sopenharmony_ci ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV external memory 4518e5c31af7Sopenharmony_ci handle type. 4519e5c31af7Sopenharmony_ci 4520e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceExternalMemoryRDMAFeaturesNV 4521e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4522e5c31af7Sopenharmony_ci 4523e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceExternalMemoryRDMAFeaturesNV.txt[] 4524e5c31af7Sopenharmony_ci-- 4525e5c31af7Sopenharmony_ciendif::VK_NV_external_memory_rdma[] 4526e5c31af7Sopenharmony_ci 4527e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[] 4528e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentIdFeaturesKHR',desc='Structure indicating support for present id',type='structs'] 4529e5c31af7Sopenharmony_ci-- 4530e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentIdFeaturesKHR structure is defined as: 4531e5c31af7Sopenharmony_ci 4532e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentIdFeaturesKHR.txt[] 4533e5c31af7Sopenharmony_ci 4534e5c31af7Sopenharmony_ciThis structure describes the following feature: 4535e5c31af7Sopenharmony_ci 4536e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4537e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4538e5c31af7Sopenharmony_ci structure. 4539e5c31af7Sopenharmony_ci * [[features-presentId]] pname:presentId indicates that the implementation 4540e5c31af7Sopenharmony_ci supports specifying present ID values in the sname:VkPresentIdKHR 4541e5c31af7Sopenharmony_ci extension to the sname:VkPresentInfoKHR struct. 4542e5c31af7Sopenharmony_ci 4543e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentIdFeaturesKHR 4544e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4545e5c31af7Sopenharmony_ci 4546e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentIdFeaturesKHR.txt[] 4547e5c31af7Sopenharmony_ci-- 4548e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[] 4549e5c31af7Sopenharmony_ci 4550e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[] 4551e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDevicePresentWaitFeaturesKHR',desc='Structure indicating support for present wait',type='structs'] 4552e5c31af7Sopenharmony_ci-- 4553e5c31af7Sopenharmony_ciThe sname:VkPhysicalDevicePresentWaitFeaturesKHR structure is defined as: 4554e5c31af7Sopenharmony_ci 4555e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDevicePresentWaitFeaturesKHR.txt[] 4556e5c31af7Sopenharmony_ci 4557e5c31af7Sopenharmony_ciThis structure describes the following feature: 4558e5c31af7Sopenharmony_ci 4559e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4560e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4561e5c31af7Sopenharmony_ci structure. 4562e5c31af7Sopenharmony_ci * [[features-presentWait]] pname:presentWait indicates that the 4563e5c31af7Sopenharmony_ci implementation supports fname:vkWaitForPresentKHR. 4564e5c31af7Sopenharmony_ci 4565e5c31af7Sopenharmony_ci:refpage: VkPhysicalDevicePresentWaitFeaturesKHR 4566e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4567e5c31af7Sopenharmony_ci 4568e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDevicePresentWaitFeaturesKHR.txt[] 4569e5c31af7Sopenharmony_ci-- 4570e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[] 4571e5c31af7Sopenharmony_ci 4572e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[] 4573e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR',desc='Structure describing integer dot product features that can be supported by an implementation',type='structs'] 4574e5c31af7Sopenharmony_ci-- 4575e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR structure is 4576e5c31af7Sopenharmony_cidefined as: 4577e5c31af7Sopenharmony_ci 4578e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.txt[] 4579e5c31af7Sopenharmony_ci 4580e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR 4581e5c31af7Sopenharmony_cistructure describe the following features: 4582e5c31af7Sopenharmony_ci 4583e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4584e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4585e5c31af7Sopenharmony_ci structure. 4586e5c31af7Sopenharmony_ci * [[features-shaderIntegerDotProduct]] pname:shaderIntegerDotProduct 4587e5c31af7Sopenharmony_ci specifies whether shader modules can: declare the 4588e5c31af7Sopenharmony_ci code:DotProductInputAllKHR, code:DotProductInput4x8BitKHR, 4589e5c31af7Sopenharmony_ci code:DotProductInput4x8BitPackedKHR and code:DotProductKHR capabilities. 4590e5c31af7Sopenharmony_ci 4591e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR 4592e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4593e5c31af7Sopenharmony_ci 4594e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR.txt[] 4595e5c31af7Sopenharmony_ci-- 4596e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[] 4597e5c31af7Sopenharmony_ci 4598e5c31af7Sopenharmony_ciifdef::VK_EXT_rgba10x6_formats[] 4599e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT',desc='Structure describing whether rendering to VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 formats can be supported by an implementation',type='structs'] 4600e5c31af7Sopenharmony_ci-- 4601e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT structure is defined 4602e5c31af7Sopenharmony_cias: 4603e5c31af7Sopenharmony_ci 4604e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.txt[] 4605e5c31af7Sopenharmony_ci 4606e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT 4607e5c31af7Sopenharmony_cistructure describe the following features: 4608e5c31af7Sopenharmony_ci 4609e5c31af7Sopenharmony_ci * pname:sType is the type of this structure. 4610e5c31af7Sopenharmony_ci * pname:pNext is `NULL` or a pointer to a structure extending this 4611e5c31af7Sopenharmony_ci structure. 4612e5c31af7Sopenharmony_ci * [[features-formatRgba10x6WithoutYCbCrSampler]] 4613e5c31af7Sopenharmony_ci pname:formatRgba10x6WithoutYCbCrSampler indicates that 4614e5c31af7Sopenharmony_ci ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 can: be used with a 4615e5c31af7Sopenharmony_ci sname:VkImageView with pname:subresourceRange.aspectMask equal to 4616e5c31af7Sopenharmony_ci ename:VK_IMAGE_ASPECT_COLOR_BIT without a <<samplers-YCbCr-conversion, 4617e5c31af7Sopenharmony_ci sampler {YCbCr} conversion>> enabled. 4618e5c31af7Sopenharmony_ci 4619e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT 4620e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4621e5c31af7Sopenharmony_ci 4622e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT.txt[] 4623e5c31af7Sopenharmony_ci-- 4624e5c31af7Sopenharmony_ciendif::VK_EXT_rgba10x6_formats[] 4625e5c31af7Sopenharmony_ci 4626e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[] 4627e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceMaintenance4FeaturesKHR',desc='Structure describing whether the implementation supports maintenance4 functionality',type='structs'] 4628e5c31af7Sopenharmony_ci-- 4629e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceMaintenance4FeaturesKHR structure is defined as: 4630e5c31af7Sopenharmony_ci 4631e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.txt[] 4632e5c31af7Sopenharmony_ci 4633e5c31af7Sopenharmony_ciThis structure describes the following features: 4634e5c31af7Sopenharmony_ci 4635e5c31af7Sopenharmony_ci * [[features-maintenance4]] pname:maintenance4 indicates that the 4636e5c31af7Sopenharmony_ci implementation supports the following: 4637e5c31af7Sopenharmony_ci ** The application may: destroy a slink:VkPipelineLayout object 4638e5c31af7Sopenharmony_ci immediately after using it to create another object. 4639e5c31af7Sopenharmony_ci ** code:LocalSizeId can: be used as an alternative to code:LocalSize to 4640e5c31af7Sopenharmony_ci specify the local workgroup size with specialization constants. 4641e5c31af7Sopenharmony_ci ** Images created with identical creation parameters will always have the 4642e5c31af7Sopenharmony_ci same alignment requirements. 4643e5c31af7Sopenharmony_ci ** The size memory requirement of a buffer or image is never greater than 4644e5c31af7Sopenharmony_ci that of another buffer or image created with a greater or equal size. 4645e5c31af7Sopenharmony_ci ** Push constants do not have to be initialized before they are 4646e5c31af7Sopenharmony_ci dynamically accessed. 4647e5c31af7Sopenharmony_ci ** The interface matching rules allow a larger output vector to match with 4648e5c31af7Sopenharmony_ci a smaller input vector, with additional values being discarded. 4649e5c31af7Sopenharmony_ci 4650e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceMaintenance4FeaturesKHR 4651e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4652e5c31af7Sopenharmony_ci 4653e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceMaintenance4FeaturesKHR.txt[] 4654e5c31af7Sopenharmony_ci-- 4655e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[] 4656e5c31af7Sopenharmony_ci 4657e5c31af7Sopenharmony_ciifdef::VK_KHR_dynamic_rendering[] 4658e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceDynamicRenderingFeaturesKHR',desc='Structure indicating support for dynamic render pass instances',type='structs'] 4659e5c31af7Sopenharmony_ci-- 4660e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceDynamicRenderingFeaturesKHR structure is defined 4661e5c31af7Sopenharmony_cias: 4662e5c31af7Sopenharmony_ci 4663e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.txt[] 4664e5c31af7Sopenharmony_ci 4665e5c31af7Sopenharmony_ciThe members of the sname:VkPhysicalDeviceDynamicRenderingFeaturesKHR 4666e5c31af7Sopenharmony_cistructure describe the following features: 4667e5c31af7Sopenharmony_ci 4668e5c31af7Sopenharmony_ci * [[features-dynamicRendering]] pname:dynamicRendering specifies that the 4669e5c31af7Sopenharmony_ci implementation supports dynamic render pass instances using the 4670e5c31af7Sopenharmony_ci flink:vkCmdBeginRenderingKHR command. 4671e5c31af7Sopenharmony_ci 4672e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceDynamicRenderingFeaturesKHR 4673e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4674e5c31af7Sopenharmony_ci 4675e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceDynamicRenderingFeaturesKHR.txt[] 4676e5c31af7Sopenharmony_ci-- 4677e5c31af7Sopenharmony_ciendif::VK_KHR_dynamic_rendering[] 4678e5c31af7Sopenharmony_ci 4679e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[] 4680e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceImageViewMinLodFeaturesEXT',desc='Structure describing whether clamping the min lod of a image view is supported by the implementation',type='structs'] 4681e5c31af7Sopenharmony_ci-- 4682e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceImageViewMinLodFeaturesEXT structure is defined 4683e5c31af7Sopenharmony_cias: 4684e5c31af7Sopenharmony_ci 4685e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.txt[] 4686e5c31af7Sopenharmony_ci 4687e5c31af7Sopenharmony_ciThis structure describes the following features: 4688e5c31af7Sopenharmony_ci 4689e5c31af7Sopenharmony_ci * [[features-minLod]] pname:minLod indicates whether the implementation 4690e5c31af7Sopenharmony_ci supports clamping the minimum LOD value during 4691e5c31af7Sopenharmony_ci <<textures-image-level-selection,Image Level(s) Selection>> and 4692e5c31af7Sopenharmony_ci <<textures-integer-coordinate-operations,Integer Texel Coordinate 4693e5c31af7Sopenharmony_ci Operations>> with a given slink:VkImageView by 4694e5c31af7Sopenharmony_ci slink:VkImageViewMinLodCreateInfoEXT::pname:minLod. 4695e5c31af7Sopenharmony_ci 4696e5c31af7Sopenharmony_ci:refpage: VkPhysicalDeviceImageViewMinLodFeaturesEXT 4697e5c31af7Sopenharmony_ciinclude::{chapters}/features.txt[tag=features] 4698e5c31af7Sopenharmony_ci 4699e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceImageViewMinLodFeaturesEXT.txt[] 4700e5c31af7Sopenharmony_ci-- 4701e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[] 4702e5c31af7Sopenharmony_ci 4703e5c31af7Sopenharmony_ciifdef::VK_ARM_rasterization_order_attachment_access[] 4704e5c31af7Sopenharmony_ci[open,refpage='VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM',desc='Structure describing whether rasterization order attachment access can be supported by an implementation',type='structs'] 4705e5c31af7Sopenharmony_ci-- 4706e5c31af7Sopenharmony_ciThe sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 4707e5c31af7Sopenharmony_cistructure is defined as: 4708e5c31af7Sopenharmony_ci 4709e5c31af7Sopenharmony_ciinclude::{generated}/api/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.txt[] 4710e5c31af7Sopenharmony_ci 4711e5c31af7Sopenharmony_ciThe members of the 4712e5c31af7Sopenharmony_cisname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 4713e5c31af7Sopenharmony_cistructure describe the following features: 4714e5c31af7Sopenharmony_ci 4715e5c31af7Sopenharmony_ci * [[features-rasterizationOrderColorAttachmentAccess]] 4716e5c31af7Sopenharmony_ci pname:rasterizationOrderColorAttachmentAccess indicates that 4717e5c31af7Sopenharmony_ci rasterization order access to color and input attachments is supported 4718e5c31af7Sopenharmony_ci by the implementation. 4719e5c31af7Sopenharmony_ci * [[features-rasterizationOrderDepthAttachmentAccess]] 4720e5c31af7Sopenharmony_ci pname:rasterizationOrderDepthAttachmentAccess indicates that 4721e5c31af7Sopenharmony_ci rasterization order access to the depth aspect of depth/stencil and 4722e5c31af7Sopenharmony_ci input attachments is supported by the implementation. 4723e5c31af7Sopenharmony_ci * [[features-rasterizationOrderStencilAttachmentAccess]] 4724e5c31af7Sopenharmony_ci pname:rasterizationOrderStencilAttachmentAccess indicates that 4725e5c31af7Sopenharmony_ci rasterization order access to the stencil aspect of depth/stencil and 4726e5c31af7Sopenharmony_ci input attachments is supported by the implementation. 4727e5c31af7Sopenharmony_ci 4728e5c31af7Sopenharmony_ciIf the sname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM 4729e5c31af7Sopenharmony_cistructure is included in the pname:pNext chain of 4730e5c31af7Sopenharmony_cislink:VkPhysicalDeviceFeatures2, it is filled with values indicating whether 4731e5c31af7Sopenharmony_cithe feature is supported. 4732e5c31af7Sopenharmony_cisname:VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM can: 4733e5c31af7Sopenharmony_cialso be used in the pname:pNext chain of slink:VkDeviceCreateInfo to enable 4734e5c31af7Sopenharmony_cifeatures. 4735e5c31af7Sopenharmony_ci 4736e5c31af7Sopenharmony_ciinclude::{generated}/validity/structs/VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM.txt[] 4737e5c31af7Sopenharmony_ci-- 4738e5c31af7Sopenharmony_ci 4739e5c31af7Sopenharmony_ciendif::VK_ARM_rasterization_order_attachment_access[] 4740e5c31af7Sopenharmony_ci 4741e5c31af7Sopenharmony_ci 4742e5c31af7Sopenharmony_ci[[features-requirements]] 4743e5c31af7Sopenharmony_ci== Feature Requirements 4744e5c31af7Sopenharmony_ci 4745e5c31af7Sopenharmony_ciAll Vulkan graphics implementations must: support the following features: 4746e5c31af7Sopenharmony_ci 4747e5c31af7Sopenharmony_ciifdef::VK_KHR_portability_subset[] 4748e5c31af7Sopenharmony_ci * <<features-robustBufferAccess, pname:robustBufferAccess>>, unless the 4749e5c31af7Sopenharmony_ci `apiext:VK_KHR_portability_subset` extension is enabled. 4750e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 4751e5c31af7Sopenharmony_ciifndef::VK_KHR_portability_subset[] 4752e5c31af7Sopenharmony_ci * <<features-robustBufferAccess, pname:robustBufferAccess>> 4753e5c31af7Sopenharmony_ciendif::VK_KHR_portability_subset[] 4754e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[] 4755e5c31af7Sopenharmony_ci * <<features-multiview, pname:multiview>>, if Vulkan 1.1 is supported. 4756e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_draw_parameters[] 4757e5c31af7Sopenharmony_ci * <<features-shaderDrawParameters,pname:shaderDrawParameters>>, if the 4758e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_draw_parameters` extension is supported. 4759e5c31af7Sopenharmony_ciendif::VK_KHR_shader_draw_parameters[] 4760e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[] 4761e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 4762e5c31af7Sopenharmony_ci * <<features-uniformBufferStandardLayout,pname:uniformBufferStandardLayout>>, 4763e5c31af7Sopenharmony_ci if Vulkan 1.2 or the `apiext:VK_KHR_uniform_buffer_standard_layout` 4764e5c31af7Sopenharmony_ci extension is supported. 4765e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout[] 4766e5c31af7Sopenharmony_ciifdef::VK_KHR_variable_pointers[] 4767e5c31af7Sopenharmony_ci * <<features-variablePointersStorageBuffer, 4768e5c31af7Sopenharmony_ci pname:variablePointersStorageBuffer>>, if the 4769e5c31af7Sopenharmony_ci `apiext:VK_KHR_variable_pointers` extension is supported. 4770e5c31af7Sopenharmony_ciendif::VK_KHR_variable_pointers[] 4771e5c31af7Sopenharmony_ciifdef::VK_KHR_8bit_storage[] 4772e5c31af7Sopenharmony_ci * <<features-storageBuffer8BitAccess, pname:storageBuffer8BitAccess>>, if 4773e5c31af7Sopenharmony_ci the `apiext:VK_KHR_8bit_storage` extension is supported. 4774e5c31af7Sopenharmony_ciendif::VK_KHR_8bit_storage[] 4775e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_8bit_storage[] 4776e5c31af7Sopenharmony_ci * <<features-storageBuffer8BitAccess, pname:StorageBuffer8BitAccess>>, if 4777e5c31af7Sopenharmony_ci <<features-uniformAndStorageBuffer8BitAccess, 4778e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer8BitAccess>> is enabled. 4779e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_8bit_storage[] 4780e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4781e5c31af7Sopenharmony_ci * If 4782e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,descriptorIndexing>> feature is supported, or if] 4783e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension is supported: 4784e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayDynamicIndexing, 4785e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayDynamicIndexing>> 4786e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayDynamicIndexing, 4787e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayDynamicIndexing>> 4788e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayDynamicIndexing, 4789e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayDynamicIndexing>> 4790e5c31af7Sopenharmony_ci ** <<features-shaderStorageTexelBufferArrayDynamicIndexing, 4791e5c31af7Sopenharmony_ci pname:shaderStorageTexelBufferArrayDynamicIndexing>> 4792e5c31af7Sopenharmony_ci ** <<features-shaderSampledImageArrayNonUniformIndexing, 4793e5c31af7Sopenharmony_ci pname:shaderSampledImageArrayNonUniformIndexing>> 4794e5c31af7Sopenharmony_ci ** <<features-shaderStorageBufferArrayNonUniformIndexing, 4795e5c31af7Sopenharmony_ci pname:shaderStorageBufferArrayNonUniformIndexing>> 4796e5c31af7Sopenharmony_ci ** <<features-shaderUniformTexelBufferArrayNonUniformIndexing, 4797e5c31af7Sopenharmony_ci pname:shaderUniformTexelBufferArrayNonUniformIndexing>> 4798e5c31af7Sopenharmony_ci ** <<features-descriptorBindingSampledImageUpdateAfterBind, 4799e5c31af7Sopenharmony_ci pname:descriptorBindingSampledImageUpdateAfterBind>> 4800e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageImageUpdateAfterBind, 4801e5c31af7Sopenharmony_ci pname:descriptorBindingStorageImageUpdateAfterBind>> 4802e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageBufferUpdateAfterBind, 4803e5c31af7Sopenharmony_ci pname:descriptorBindingStorageBufferUpdateAfterBind>> (see also 4804e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 4805e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 4806e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUniformTexelBufferUpdateAfterBind, 4807e5c31af7Sopenharmony_ci pname:descriptorBindingUniformTexelBufferUpdateAfterBind>> (see also 4808e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 4809e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 4810e5c31af7Sopenharmony_ci ** <<features-descriptorBindingStorageTexelBufferUpdateAfterBind, 4811e5c31af7Sopenharmony_ci pname:descriptorBindingStorageTexelBufferUpdateAfterBind>> (see also 4812e5c31af7Sopenharmony_ci <<limits-robustBufferAccessUpdateAfterBind, 4813e5c31af7Sopenharmony_ci pname:robustBufferAccessUpdateAfterBind>>) 4814e5c31af7Sopenharmony_ci ** <<features-descriptorBindingUpdateUnusedWhilePending, 4815e5c31af7Sopenharmony_ci pname:descriptorBindingUpdateUnusedWhilePending>> 4816e5c31af7Sopenharmony_ci ** <<features-descriptorBindingPartiallyBound, 4817e5c31af7Sopenharmony_ci pname:descriptorBindingPartiallyBound>> 4818e5c31af7Sopenharmony_ci ** <<features-runtimeDescriptorArray, pname:runtimeDescriptorArray>> 4819e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4820e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[] 4821e5c31af7Sopenharmony_ci * <<features-inlineUniformBlock,pname:inlineUniformBlock>>, if the 4822e5c31af7Sopenharmony_ci `apiext:VK_EXT_inline_uniform_block` extension is supported. 4823e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4824e5c31af7Sopenharmony_ci * <<features-descriptorBindingInlineUniformBlockUpdateAfterBind, 4825e5c31af7Sopenharmony_ci pname:descriptorBindingInlineUniformBlockUpdateAfterBind>>, if the 4826e5c31af7Sopenharmony_ci `apiext:VK_EXT_inline_uniform_block` extension is supported; and if 4827e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,pname:descriptorIndexing>> feature is supported, or] 4828e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension is supported. 4829e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_descriptor_indexing[] 4830e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[] 4831e5c31af7Sopenharmony_ciifdef::VK_EXT_scalar_block_layout[] 4832e5c31af7Sopenharmony_ci * <<features-scalarBlockLayout,pname:scalarBlockLayout>>, if the 4833e5c31af7Sopenharmony_ci `apiext:VK_EXT_scalar_block_layout` extension is supported. 4834e5c31af7Sopenharmony_ciendif::VK_EXT_scalar_block_layout[] 4835e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[] 4836e5c31af7Sopenharmony_ci * <<features-subgroupBroadcastDynamicId, 4837e5c31af7Sopenharmony_ci pname:subgroupBroadcastDynamicId>>, if Vulkan 1.2 is supported. 4838e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[] 4839e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[] 4840e5c31af7Sopenharmony_ci * <<features-samplerMirrorClampToEdge, pname:samplerMirrorClampToEdge>>, 4841e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_sampler_mirror_clamp_to_edge` extension is 4842e5c31af7Sopenharmony_ci supported. 4843e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_sampler_mirror_clamp_to_edge[] 4844e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_KHR_draw_indirect_count[] 4845e5c31af7Sopenharmony_ci * <<features-drawIndirectCount, pname:drawIndirectCount>>, if the 4846e5c31af7Sopenharmony_ci `apiext:VK_KHR_draw_indirect_count` extension is supported. 4847e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_KHR_draw_indirect_count[] 4848e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[] 4849e5c31af7Sopenharmony_ci * <<features-samplerFilterMinmax, pname:samplerFilterMinmax>>, if the 4850e5c31af7Sopenharmony_ci `apiext:VK_EXT_sampler_filter_minmax` extension is supported. 4851e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_sampler_filter_minmax[] 4852e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[] 4853e5c31af7Sopenharmony_ci * <<features-shaderOutputViewportIndex, pname:shaderOutputViewportIndex>>, 4854e5c31af7Sopenharmony_ci if the `apiext:VK_EXT_shader_viewport_index_layer` extension is 4855e5c31af7Sopenharmony_ci supported. 4856e5c31af7Sopenharmony_ci * <<features-shaderOutputLayer, pname:shaderOutputLayer>>, if the 4857e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_viewport_index_layer` extension is supported. 4858e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2+VK_EXT_shader_viewport_index_layer[] 4859e5c31af7Sopenharmony_ciifdef::VK_EXT_subgroup_size_control[] 4860e5c31af7Sopenharmony_ci * <<features-subgroupSizeControl, pname:subgroupSizeControl>>, if the 4861e5c31af7Sopenharmony_ci `apiext:VK_EXT_subgroup_size_control` extension is supported. 4862e5c31af7Sopenharmony_ci * <<features-computeFullSubgroups, pname:computeFullSubgroups>>, if the 4863e5c31af7Sopenharmony_ci `apiext:VK_EXT_subgroup_size_control` extension is supported. 4864e5c31af7Sopenharmony_ciendif::VK_EXT_subgroup_size_control[] 4865e5c31af7Sopenharmony_ciifdef::VK_EXT_device_memory_report[] 4866e5c31af7Sopenharmony_ci * <<features-deviceMemoryReport, pname:deviceMemoryReport>>, if the 4867e5c31af7Sopenharmony_ci `apiext:VK_EXT_device_memory_report` extension is supported. 4868e5c31af7Sopenharmony_ciendif::VK_EXT_device_memory_report[] 4869e5c31af7Sopenharmony_ciifdef::VK_EXT_global_priority_query[] 4870e5c31af7Sopenharmony_ci * <<features-globalPriorityQuery, pname:globalPriorityQuery>>, if the 4871e5c31af7Sopenharmony_ci `apiext:VK_EXT_global_priority_query` extension is supported. 4872e5c31af7Sopenharmony_ciendif::VK_EXT_global_priority_query[] 4873e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 4874e5c31af7Sopenharmony_ci * <<features-imagelessFramebuffer, pname:imagelessFramebuffer>>, if Vulkan 4875e5c31af7Sopenharmony_ci 1.2 or the `apiext:VK_KHR_imageless_framebuffer` extension is supported. 4876e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_imageless_framebuffer[] 4877e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 4878e5c31af7Sopenharmony_ci * <<features-separateDepthStencilLayouts, 4879e5c31af7Sopenharmony_ci pname:separateDepthStencilLayouts>>, if Vulkan 1.2 or the 4880e5c31af7Sopenharmony_ci `apiext:VK_KHR_separate_depth_stencil_layouts` extension is supported. 4881e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 4882e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_host_query_reset[] 4883e5c31af7Sopenharmony_ci * <<features-hostQueryReset, pname:hostQueryReset>>, if Vulkan 1.2 or the 4884e5c31af7Sopenharmony_ci `apiext:VK_EXT_host_query_reset` extension is supported. 4885e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_host_query_reset[] 4886e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 4887e5c31af7Sopenharmony_ci * <<features-timelineSemaphore, pname:timelineSemaphore>>, if Vulkan 1.2 4888e5c31af7Sopenharmony_ci or the `apiext:VK_KHR_timeline_semaphore` extension is supported. 4889e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[] 4890e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[] 4891e5c31af7Sopenharmony_ci * If the `apiext:VK_KHR_acceleration_structure` extension is supported: 4892e5c31af7Sopenharmony_ci ** <<features-accelerationStructure,pname:accelerationStructure>> 4893e5c31af7Sopenharmony_ci ** All the features required by 4894e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[the <<features-descriptorIndexing,descriptorIndexing>> feature if Vulkan 1.2 is supported, or] 4895e5c31af7Sopenharmony_ci the `apiext:VK_EXT_descriptor_indexing` extension. 4896e5c31af7Sopenharmony_ci ** <<features-descriptorBindingAccelerationStructureUpdateAfterBind, 4897e5c31af7Sopenharmony_ci pname:descriptorBindingAccelerationStructureUpdateAfterBind>> 4898e5c31af7Sopenharmony_ci ** <<features-bufferDeviceAddress, pname:bufferDeviceAddress>> from 4899e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[Vulkan 1.2 or] 4900e5c31af7Sopenharmony_ci the `apiext:VK_KHR_buffer_device_address` extension. 4901e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[] 4902e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[] 4903e5c31af7Sopenharmony_ci * If the `apiext:VK_KHR_ray_tracing_pipeline` extension is supported: 4904e5c31af7Sopenharmony_ci ** <<features-accelerationStructure,pname:accelerationStructure>> from 4905e5c31af7Sopenharmony_ci `apiext:VK_KHR_acceleration_structure` 4906e5c31af7Sopenharmony_ci ** <<features-rayTracingPipeline, pname:rayTracingPipeline>> 4907e5c31af7Sopenharmony_ci ** <<features-rayTracingPipelineTraceRaysIndirect, 4908e5c31af7Sopenharmony_ci pname:rayTracingPipelineTraceRaysIndirect>> 4909e5c31af7Sopenharmony_ci ** <<features-rayTraversalPrimitiveCulling, 4910e5c31af7Sopenharmony_ci pname:rayTraversalPrimitiveCulling>>, if <<features-rayQuery, 4911e5c31af7Sopenharmony_ci pname:rayQuery>> is supported from `apiext:VK_KHR_ray_query` 4912e5c31af7Sopenharmony_ci ** the `apiext:VK_KHR_pipeline_library` extension. 4913e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline[] 4914e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_query[] 4915e5c31af7Sopenharmony_ci * If the `apiext:VK_KHR_ray_query` extension is supported: 4916e5c31af7Sopenharmony_ci ** <<features-accelerationStructure,pname:accelerationStructure>> from 4917e5c31af7Sopenharmony_ci `apiext:VK_KHR_acceleration_structure` 4918e5c31af7Sopenharmony_ci ** <<features-rayQuery, pname:rayQuery>> 4919e5c31af7Sopenharmony_ciendif::VK_KHR_ray_query[] 4920e5c31af7Sopenharmony_ciifdef::VK_EXT_pipeline_creation_cache_control[] 4921e5c31af7Sopenharmony_ci * <<features-pipelineCreationCacheControl, 4922e5c31af7Sopenharmony_ci pname:pipelineCreationCacheControl>>, if the 4923e5c31af7Sopenharmony_ci `apiext:VK_EXT_pipeline_creation_cache_control` extension is supported. 4924e5c31af7Sopenharmony_ciendif::VK_EXT_pipeline_creation_cache_control[] 4925e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 4926e5c31af7Sopenharmony_ci * <<features-subgroup-extended-types, pname:shaderSubgroupExtendedTypes>>, 4927e5c31af7Sopenharmony_ci if Vulkan 1.2 or the `apiext:VK_KHR_shader_subgroup_extended_types` 4928e5c31af7Sopenharmony_ci extension is supported. 4929e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types[] 4930e5c31af7Sopenharmony_ciifdef::VK_KHR_sampler_ycbcr_conversion[] 4931e5c31af7Sopenharmony_ci * <<features-samplerYcbcrConversion, pname:samplerYcbcrConversion>>, if 4932e5c31af7Sopenharmony_ci the `apiext:VK_KHR_sampler_ycbcr_conversion` extension is supported. 4933e5c31af7Sopenharmony_ciendif::VK_KHR_sampler_ycbcr_conversion[] 4934e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_executable_properties[] 4935e5c31af7Sopenharmony_ci * <<features-pipelineExecutableInfo, pname:pipelineExecutableInfo>>, if 4936e5c31af7Sopenharmony_ci the `apiext:VK_KHR_pipeline_executable_properties` extension is 4937e5c31af7Sopenharmony_ci supported. 4938e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_executable_properties[] 4939e5c31af7Sopenharmony_ciifdef::VK_EXT_texture_compression_astc_hdr[] 4940e5c31af7Sopenharmony_ci * <<features-textureCompressionASTC_HDR, 4941e5c31af7Sopenharmony_ci pname:textureCompressionASTC_HDR>>, if the 4942e5c31af7Sopenharmony_ci `apiext:VK_EXT_texture_compression_astc_hdr` extension is supported. 4943e5c31af7Sopenharmony_ciendif::VK_EXT_texture_compression_astc_hdr[] 4944e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_enable[] 4945e5c31af7Sopenharmony_ci * <<features-depthClipEnable, pname:depthClipEnable>>, if the 4946e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_clip_enable` extension is supported. 4947e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_enable[] 4948e5c31af7Sopenharmony_ciifdef::VK_EXT_memory_priority[] 4949e5c31af7Sopenharmony_ci * <<features-memoryPriority, pname:memoryPriority>>, if the 4950e5c31af7Sopenharmony_ci `apiext:VK_EXT_memory_priority` extension is supported. 4951e5c31af7Sopenharmony_ciendif::VK_EXT_memory_priority[] 4952e5c31af7Sopenharmony_ciifdef::VK_EXT_ycbcr_image_arrays[] 4953e5c31af7Sopenharmony_ci * <<features-ycbcrImageArrays, pname:ycbcrImageArrays>>, if the 4954e5c31af7Sopenharmony_ci `apiext:VK_EXT_ycbcr_image_arrays` extension is supported. 4955e5c31af7Sopenharmony_ciendif::VK_EXT_ycbcr_image_arrays[] 4956e5c31af7Sopenharmony_ciifdef::VK_EXT_index_type_uint8[] 4957e5c31af7Sopenharmony_ci * <<features-indexTypeUint8, pname:indexTypeUint8>>, if the 4958e5c31af7Sopenharmony_ci `apiext:VK_EXT_index_type_uint8` extension is supported. 4959e5c31af7Sopenharmony_ciendif::VK_EXT_index_type_uint8[] 4960e5c31af7Sopenharmony_ciifdef::VK_EXT_primitive_topology_list_restart[] 4961e5c31af7Sopenharmony_ci * <<features-primitiveTopologyListRestart, 4962e5c31af7Sopenharmony_ci pname:primitiveTopologyListRestart>>, if the 4963e5c31af7Sopenharmony_ci `apiext:VK_EXT_primitive_topology_list_restart` extension is supported. 4964e5c31af7Sopenharmony_ciendif::VK_EXT_primitive_topology_list_restart[] 4965e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_demote_to_helper_invocation[] 4966e5c31af7Sopenharmony_ci * <<features-shaderDemoteToHelperInvocation, 4967e5c31af7Sopenharmony_ci pname:shaderDemoteToHelperInvocation>>, if the 4968e5c31af7Sopenharmony_ci `apiext:VK_EXT_shader_demote_to_helper_invocation` extension is 4969e5c31af7Sopenharmony_ci supported. 4970e5c31af7Sopenharmony_ciendif::VK_EXT_shader_demote_to_helper_invocation[] 4971e5c31af7Sopenharmony_ciifdef::VK_EXT_texel_buffer_alignment[] 4972e5c31af7Sopenharmony_ci * <<features-texelBufferAlignment, pname:texelBufferAlignment>>, if the 4973e5c31af7Sopenharmony_ci `apiext:VK_EXT_texel_buffer_alignment` extension is supported. 4974e5c31af7Sopenharmony_ciendif::VK_EXT_texel_buffer_alignment[] 4975e5c31af7Sopenharmony_ciifdef::VK_KHR_vulkan_memory_model[] 4976e5c31af7Sopenharmony_ci * <<features-vulkanMemoryModel, pname:vulkanMemoryModel>>, if the 4977e5c31af7Sopenharmony_ci `apiext:VK_KHR_vulkan_memory_model` extension is supported. 4978e5c31af7Sopenharmony_ciendif::VK_KHR_vulkan_memory_model[] 4979e5c31af7Sopenharmony_ciifdef::VK_KHR_buffer_device_address[] 4980e5c31af7Sopenharmony_ci * <<features-bufferDeviceAddress, pname:bufferDeviceAddress>>, if the 4981e5c31af7Sopenharmony_ci `apiext:VK_KHR_buffer_device_address` extension is supported. 4982e5c31af7Sopenharmony_ciendif::VK_KHR_buffer_device_address[] 4983e5c31af7Sopenharmony_ciifdef::VK_KHR_performance_query[] 4984e5c31af7Sopenharmony_ci * <<VkPhysicalDevicePerformanceQueryFeaturesKHR, 4985e5c31af7Sopenharmony_ci pname:performanceCounterQueryPools>>, if the 4986e5c31af7Sopenharmony_ci `apiext:VK_KHR_performance_query` extension is supported. 4987e5c31af7Sopenharmony_ciendif::VK_KHR_performance_query[] 4988e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[] 4989e5c31af7Sopenharmony_ci * <<features-transformFeedback, pname:transformFeedback>>, if the 4990e5c31af7Sopenharmony_ci `apiext:VK_EXT_transform_feedback` extension is supported. 4991e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[] 4992e5c31af7Sopenharmony_ciifdef::VK_EXT_conditional_rendering[] 4993e5c31af7Sopenharmony_ci * <<features-conditionalRendering, pname:conditionalRendering>>, if the 4994e5c31af7Sopenharmony_ci `apiext:VK_EXT_conditional_rendering` extension is supported. 4995e5c31af7Sopenharmony_ciendif::VK_EXT_conditional_rendering[] 4996e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_attribute_divisor[] 4997e5c31af7Sopenharmony_ci * <<features-vertexAttributeInstanceRateDivisor, 4998e5c31af7Sopenharmony_ci pname:vertexAttributeInstanceRateDivisor>>, if the 4999e5c31af7Sopenharmony_ci `apiext:VK_EXT_vertex_attribute_divisor` extension is supported. 5000e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_attribute_divisor[] 5001e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[] 5002e5c31af7Sopenharmony_ci * <<features-fragmentDensityMap, pname:fragmentDensityMap>>, if the 5003e5c31af7Sopenharmony_ci `apiext:VK_EXT_fragment_density_map` extension is supported. 5004e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[] 5005e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_clock[] 5006e5c31af7Sopenharmony_ci * <<features-shaderSubgroupClock, pname:shaderSubgroupClock>>, if the 5007e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_clock` extension is supported. 5008e5c31af7Sopenharmony_ciendif::VK_KHR_shader_clock[] 5009e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_atomic_int64[] 5010e5c31af7Sopenharmony_ci * <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>>, 5011e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_shader_atomic_int64` extension is supported. 5012e5c31af7Sopenharmony_ciendif::VK_KHR_shader_atomic_int64[] 5013e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 5014e5c31af7Sopenharmony_ci * <<features-shaderInt64, pname:shaderInt64>>, if the 5015e5c31af7Sopenharmony_ci <<features-shaderSharedInt64Atomics, pname:shaderSharedInt64Atomics>> or 5016e5c31af7Sopenharmony_ci <<features-shaderBufferInt64Atomics, pname:shaderBufferInt64Atomics>> 5017e5c31af7Sopenharmony_ci features are supported. 5018e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_shader_atomic_int64[] 5019e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_float16_int8[] 5020e5c31af7Sopenharmony_ci * <<features-shaderFloat16, pname:shaderFloat16>> or 5021e5c31af7Sopenharmony_ci <<features-shaderInt8, pname:shaderInt8>>, if the 5022e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_float16_int8` extension is supported. 5023e5c31af7Sopenharmony_ciendif::VK_KHR_shader_float16_int8[] 5024e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_shader_interlock[] 5025e5c31af7Sopenharmony_ci * <<features-fragmentShaderSampleInterlock, 5026e5c31af7Sopenharmony_ci pname:fragmentShaderSampleInterlock>> or 5027e5c31af7Sopenharmony_ci <<features-fragmentShaderPixelInterlock, 5028e5c31af7Sopenharmony_ci pname:fragmentShaderPixelInterlock>> or 5029e5c31af7Sopenharmony_ci <<features-fragmentShaderShadingRateInterlock, 5030e5c31af7Sopenharmony_ci pname:fragmentShaderShadingRateInterlock>>, if the 5031e5c31af7Sopenharmony_ci `apiext:VK_EXT_fragment_shader_interlock` extension is supported. 5032e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_shader_interlock[] 5033e5c31af7Sopenharmony_ciifdef::VK_EXT_line_rasterization[] 5034e5c31af7Sopenharmony_ci * <<features-rectangularLines, pname:rectangularLines>> or 5035e5c31af7Sopenharmony_ci <<features-bresenhamLines, pname:bresenhamLines>> or 5036e5c31af7Sopenharmony_ci <<features-smoothLines, pname:smoothLines>> or 5037e5c31af7Sopenharmony_ci <<features-stippledRectangularLines, pname:stippledRectangularLines>> or 5038e5c31af7Sopenharmony_ci <<features-stippledBresenhamLines, pname:stippledBresenhamLines>> or 5039e5c31af7Sopenharmony_ci <<features-stippledSmoothLines, pname:stippledSmoothLines>>, if the 5040e5c31af7Sopenharmony_ci `apiext:VK_EXT_line_rasterization` extension is supported. 5041e5c31af7Sopenharmony_ciendif::VK_EXT_line_rasterization[] 5042e5c31af7Sopenharmony_ciifdef::VK_KHR_16bit_storage[] 5043e5c31af7Sopenharmony_ci * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>, 5044e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_16bit_storage` extension is supported. 5045e5c31af7Sopenharmony_ciendif::VK_KHR_16bit_storage[] 5046e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_16bit_storage[] 5047e5c31af7Sopenharmony_ci * <<features-storageBuffer16BitAccess, pname:storageBuffer16BitAccess>>, 5048e5c31af7Sopenharmony_ci if <<features-uniformAndStorageBuffer16BitAccess, 5049e5c31af7Sopenharmony_ci pname:uniformAndStorageBuffer16BitAccess>> is enabled. 5050e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_16bit_storage[] 5051e5c31af7Sopenharmony_ciifdef::VK_EXT_image_robustness[] 5052e5c31af7Sopenharmony_ci * <<features-robustImageAccess, pname:robustImageAccess>>, if the 5053e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_robustness` extension is supported. 5054e5c31af7Sopenharmony_ciendif::VK_EXT_image_robustness[] 5055e5c31af7Sopenharmony_ciifdef::VK_EXT_4444_formats[] 5056e5c31af7Sopenharmony_ci * <<features-formatA4R4G4B4, pname:formatA4R4G4B4>>, if the 5057e5c31af7Sopenharmony_ci `apiext:VK_EXT_4444_formats` extension is supported. 5058e5c31af7Sopenharmony_ciendif::VK_EXT_4444_formats[] 5059e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[] 5060e5c31af7Sopenharmony_ci * <<features-mutableDescriptorType, pname:mutableDescriptorType>>, if the 5061e5c31af7Sopenharmony_ci `apiext:VK_VALVE_mutable_descriptor_type` extension is supported. 5062e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[] 5063e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_image_atomic_int64[] 5064e5c31af7Sopenharmony_ci * <<features-shaderInt64, pname:shaderInt64>> and 5065e5c31af7Sopenharmony_ci <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if 5066e5c31af7Sopenharmony_ci the `apiext:VK_EXT_shader_image_atomic_int64` extension is supported. 5067e5c31af7Sopenharmony_ci * <<features-shaderImageInt64Atomics, pname:shaderImageInt64Atomics>>, if 5068e5c31af7Sopenharmony_ci the <<features-sparseImageInt64Atomics, pname:sparseImageInt64Atomics>> 5069e5c31af7Sopenharmony_ci feature is supported. 5070e5c31af7Sopenharmony_ciendif::VK_EXT_shader_image_atomic_int64[] 5071e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float[] 5072e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32Atomics, pname:shaderImageFloat32Atomics>>, 5073e5c31af7Sopenharmony_ci if the <<features-sparseImageFloat32Atomics, 5074e5c31af7Sopenharmony_ci pname:sparseImageFloat32Atomics>> feature is supported. 5075e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32AtomicAdd, 5076e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicAdd>>, if the 5077e5c31af7Sopenharmony_ci <<features-sparseImageFloat32AtomicAdd, 5078e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicAdd>> feature is supported. 5079e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float[] 5080e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate[] 5081e5c31af7Sopenharmony_ci * <<features-pipelineFragmentShadingRate, 5082e5c31af7Sopenharmony_ci pname:pipelineFragmentShadingRate>>, if the 5083e5c31af7Sopenharmony_ci `apiext:VK_KHR_fragment_shading_rate` extension is supported. 5084e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate[] 5085e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_terminate_invocation[] 5086e5c31af7Sopenharmony_ci * <<features-shaderTerminateInvocation, pname:shaderTerminateInvocation>> 5087e5c31af7Sopenharmony_ci if the `apiext:VK_KHR_shader_terminate_invocation` extension is 5088e5c31af7Sopenharmony_ci supported. 5089e5c31af7Sopenharmony_ciendif::VK_KHR_shader_terminate_invocation[] 5090e5c31af7Sopenharmony_ciifdef::VK_KHR_zero_initialize_workgroup_memory[] 5091e5c31af7Sopenharmony_ci * <<features-shaderZeroInitializeWorkgroupMemory, 5092e5c31af7Sopenharmony_ci pname:shaderZeroInitializeWorkgroupMem>>, if the 5093e5c31af7Sopenharmony_ci `apiext:VK_KHR_zero_initialize_workgroup_memory` extension is supported. 5094e5c31af7Sopenharmony_ciendif::VK_KHR_zero_initialize_workgroup_memory[] 5095e5c31af7Sopenharmony_ciifdef::VK_KHR_workgroup_memory_explicit_layout[] 5096e5c31af7Sopenharmony_ci * <<features-workgroupMemoryExplicitLayout, 5097e5c31af7Sopenharmony_ci pname:workgroupMemoryExplicitLayout>>, if the 5098e5c31af7Sopenharmony_ci `apiext:VK_KHR_workgroup_memory_explicit_layout` extension is supported. 5099e5c31af7Sopenharmony_ciendif::VK_KHR_workgroup_memory_explicit_layout[] 5100e5c31af7Sopenharmony_ciifdef::VK_EXT_vertex_input_dynamic_state[] 5101e5c31af7Sopenharmony_ci * <<features-vertexInputDynamicState, pname:vertexInputDynamicState>>, if 5102e5c31af7Sopenharmony_ci the `apiext:VK_EXT_vertex_input_dynamic_state` extension is supported. 5103e5c31af7Sopenharmony_ciendif::VK_EXT_vertex_input_dynamic_state[] 5104e5c31af7Sopenharmony_ciifdef::VK_KHR_synchronization2[] 5105e5c31af7Sopenharmony_ci * <<features-synchronization2, pname:synchronization2>> if the 5106e5c31af7Sopenharmony_ci `apiext:VK_KHR_synchronization2` extension is supported. 5107e5c31af7Sopenharmony_ciendif::VK_KHR_synchronization2[] 5108e5c31af7Sopenharmony_ciifdef::VK_EXT_provoking_vertex[] 5109e5c31af7Sopenharmony_ci * <<features-provokingVertexLast, pname:provokingVertexLast>>, if the 5110e5c31af7Sopenharmony_ci `apiext:VK_EXT_provoking_vertex` extension is supported. 5111e5c31af7Sopenharmony_ciendif::VK_EXT_provoking_vertex[] 5112e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_subgroup_uniform_control_flow[] 5113e5c31af7Sopenharmony_ci * <<features-shaderSubgroupUniformControlFlow, 5114e5c31af7Sopenharmony_ci pname:shaderSubgroupUniformControlFlow>>, if the 5115e5c31af7Sopenharmony_ci `apiext:VK_KHR_shader_subgroup_uniform_control_flow` extension is 5116e5c31af7Sopenharmony_ci supported. 5117e5c31af7Sopenharmony_ciendif::VK_KHR_shader_subgroup_uniform_control_flow[] 5118e5c31af7Sopenharmony_ciifdef::VK_EXT_border_color_swizzle[] 5119e5c31af7Sopenharmony_ci * <<features-borderColorSwizzle, pname:borderColorSwizzle>> if the 5120e5c31af7Sopenharmony_ci apiext:VK_EXT_border_color_swizzle extension is supported. 5121e5c31af7Sopenharmony_ciendif::VK_EXT_border_color_swizzle[] 5122e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[] 5123e5c31af7Sopenharmony_ci * <<features-multiDraw, pname:multiDraw>>, if the 5124e5c31af7Sopenharmony_ci `apiext:VK_EXT_multi_draw` extension is supported. 5125e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[] 5126e5c31af7Sopenharmony_ciifdef::VK_EXT_shader_atomic_float2[] 5127e5c31af7Sopenharmony_ci * <<features-shaderImageFloat32AtomicMinMax, 5128e5c31af7Sopenharmony_ci pname:shaderImageFloat32AtomicMinMax>>, if the 5129e5c31af7Sopenharmony_ci <<features-sparseImageFloat32AtomicMinMax, 5130e5c31af7Sopenharmony_ci pname:sparseImageFloat32AtomicMinMax>> feature is supported. 5131e5c31af7Sopenharmony_ciendif::VK_EXT_shader_atomic_float2[] 5132e5c31af7Sopenharmony_ciifdef::VK_KHR_present_id[] 5133e5c31af7Sopenharmony_ci * <<features-presentId, pname:presentId>>, if the 5134e5c31af7Sopenharmony_ci `apiext:VK_KHR_present_id` extension is supported. 5135e5c31af7Sopenharmony_ciendif::VK_KHR_present_id[] 5136e5c31af7Sopenharmony_ciifdef::VK_KHR_present_wait[] 5137e5c31af7Sopenharmony_ci * <<features-presentWait, pname:presentWait>>, if the 5138e5c31af7Sopenharmony_ci `apiext:VK_KHR_present_wait` extension is supported. 5139e5c31af7Sopenharmony_ciendif::VK_KHR_present_wait[] 5140e5c31af7Sopenharmony_ciifdef::VK_KHR_shader_integer_dot_product[] 5141e5c31af7Sopenharmony_ci * <<features-shaderIntegerDotProduct, pname:shaderIntegerDotProduct>> if 5142e5c31af7Sopenharmony_ci the `apiext:VK_KHR_shader_integer_dot_product` extension is supported. 5143e5c31af7Sopenharmony_ciendif::VK_KHR_shader_integer_dot_product[] 5144e5c31af7Sopenharmony_ciifdef::VK_KHR_maintenance4[] 5145e5c31af7Sopenharmony_ci * <<features-maintenance4, pname:maintenance4>>, if the 5146e5c31af7Sopenharmony_ci `apiext:VK_KHR_maintenance4` extension is supported. 5147e5c31af7Sopenharmony_ciendif::VK_KHR_maintenance4[] 5148e5c31af7Sopenharmony_ciifdef::VK_EXT_depth_clip_control[] 5149e5c31af7Sopenharmony_ci * <<features-depthClipControl, pname:depthClipControl>>, if the 5150e5c31af7Sopenharmony_ci `apiext:VK_EXT_depth_clip_control` extension is supported. 5151e5c31af7Sopenharmony_ciendif::VK_EXT_depth_clip_control[] 5152e5c31af7Sopenharmony_ciifdef::VK_EXT_image_view_min_lod[] 5153e5c31af7Sopenharmony_ci * <<features-minLod, pname:minLod>>, if the 5154e5c31af7Sopenharmony_ci `apiext:VK_EXT_image_view_min_lod` extension is supported. 5155e5c31af7Sopenharmony_ciendif::VK_EXT_image_view_min_lod[] 5156e5c31af7Sopenharmony_ci 5157e5c31af7Sopenharmony_ciAll other features defined in the Specification are optional:. 5158