| 156 | } |
| 157 | |
| 158 | bool IsSupportOptionalVulkan_1_1(uint32_t capability) { |
| 159 | if (IsSupportOptionalVulkan_1_0(capability)) return true; |
| 160 | |
| 161 | switch (spv::Capability(capability)) { |
| 162 | case spv::Capability::GroupNonUniform: |
| 163 | case spv::Capability::GroupNonUniformVote: |
| 164 | case spv::Capability::GroupNonUniformArithmetic: |
| 165 | case spv::Capability::GroupNonUniformBallot: |
| 166 | case spv::Capability::GroupNonUniformShuffle: |
| 167 | case spv::Capability::GroupNonUniformShuffleRelative: |
| 168 | case spv::Capability::GroupNonUniformClustered: |
| 169 | case spv::Capability::GroupNonUniformQuad: |
| 170 | case spv::Capability::DrawParameters: |
| 171 | // Alias spv::Capability::StorageBuffer16BitAccess. |
| 172 | case spv::Capability::StorageUniformBufferBlock16: |
| 173 | // Alias spv::Capability::UniformAndStorageBuffer16BitAccess. |
| 174 | case spv::Capability::StorageUniform16: |
| 175 | case spv::Capability::StoragePushConstant16: |
| 176 | case spv::Capability::StorageInputOutput16: |
| 177 | case spv::Capability::DeviceGroup: |
| 178 | case spv::Capability::MultiView: |
| 179 | case spv::Capability::VariablePointersStorageBuffer: |
| 180 | case spv::Capability::VariablePointers: |
| 181 | return true; |
| 182 | default: |
| 183 | break; |
| 184 | } |
| 185 | return false; |
| 186 | } |
| 187 | |
| 188 | bool IsSupportOptionalVulkan_1_2(uint32_t capability) { |
| 189 | if (IsSupportOptionalVulkan_1_1(capability)) return true; |
no test coverage detected