1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_features.py using data from mtl_features.json. 3 // 4 // Copyright 2022 The ANGLE Project Authors. All rights reserved. 5 // Use of this source code is governed by a BSD-style license that can be 6 // found in the LICENSE file. 7 // 8 // FeaturesMtl_autogen.h: Optional features for the Metal renderer. 9 10 #ifndef ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_ 11 #define ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_ 12 13 #include "platform/Feature.h" 14 15 namespace angle 16 { 17 18 struct FeaturesMtl : FeatureSetBase 19 { 20 FeaturesMtl(); 21 ~FeaturesMtl(); 22 23 FeatureInfo hasBaseVertexInstancedDraw = { 24 "hasBaseVertexInstancedDraw", 25 FeatureCategory::MetalFeatures, 26 &members, 27 }; 28 29 FeatureInfo hasExplicitMemBarrier = { 30 "hasExplicitMemBarrier", 31 FeatureCategory::MetalFeatures, 32 &members, 33 }; 34 35 FeatureInfo hasCheapRenderPass = { 36 "hasCheapRenderPass", 37 FeatureCategory::MetalFeatures, 38 &members, 39 }; 40 41 FeatureInfo hasNonUniformDispatch = { 42 "hasNonUniformDispatch", 43 FeatureCategory::MetalFeatures, 44 &members, 45 }; 46 47 FeatureInfo hasShaderStencilOutput = { 48 "hasShaderStencilOutput", 49 FeatureCategory::MetalFeatures, 50 &members, 51 }; 52 53 FeatureInfo hasTextureSwizzle = { 54 "hasTextureSwizzle", 55 FeatureCategory::MetalFeatures, 56 &members, 57 }; 58 59 FeatureInfo hasDepthAutoResolve = { 60 "hasDepthAutoResolve", 61 FeatureCategory::MetalFeatures, 62 &members, 63 }; 64 65 FeatureInfo hasStencilAutoResolve = { 66 "hasStencilAutoResolve", 67 FeatureCategory::MetalFeatures, 68 &members, 69 }; 70 71 FeatureInfo hasEvents = { 72 "hasEvents", 73 FeatureCategory::MetalFeatures, 74 &members, 75 }; 76 77 FeatureInfo allowInlineConstVertexData = { 78 "allowInlineConstVertexData", 79 FeatureCategory::MetalFeatures, 80 &members, 81 }; 82 83 FeatureInfo allowSeparateDepthStencilBuffers = { 84 "allowSeparateDepthStencilBuffers", 85 FeatureCategory::MetalFeatures, 86 &members, 87 }; 88 89 FeatureInfo allowRuntimeSamplerCompareMode = { 90 "allowRuntimeSamplerCompareMode", 91 FeatureCategory::MetalFeatures, 92 &members, 93 }; 94 95 FeatureInfo allowSamplerCompareGradient = { 96 "allowSamplerCompareGradient", 97 FeatureCategory::MetalFeatures, 98 &members, 99 }; 100 101 FeatureInfo allowBufferReadWrite = { 102 "allowBufferReadWrite", 103 FeatureCategory::MetalFeatures, 104 &members, 105 }; 106 107 FeatureInfo allowMultisampleStoreAndResolve = { 108 "allowMultisampleStoreAndResolve", 109 FeatureCategory::MetalFeatures, 110 &members, 111 }; 112 113 FeatureInfo allowGenMultipleMipsPerPass = { 114 "allowGenMultipleMipsPerPass", 115 FeatureCategory::MetalFeatures, 116 &members, 117 }; 118 119 FeatureInfo forceD24S8AsUnsupported = { 120 "forceD24S8AsUnsupported", 121 FeatureCategory::MetalFeatures, 122 &members, 123 }; 124 125 FeatureInfo forceBufferGPUStorage = { 126 "forceBufferGPUStorage", 127 FeatureCategory::MetalFeatures, 128 &members, 129 }; 130 131 FeatureInfo forceNonCSBaseMipmapGeneration = { 132 "forceNonCSBaseMipmapGeneration", 133 FeatureCategory::MetalFeatures, 134 &members, 135 }; 136 137 FeatureInfo emulateTransformFeedback = { 138 "emulateTransformFeedback", 139 FeatureCategory::MetalFeatures, 140 &members, 141 }; 142 143 FeatureInfo intelExplicitBoolCastWorkaround = { 144 "intelExplicitBoolCastWorkaround", 145 FeatureCategory::MetalWorkarounds, 146 &members, 147 }; 148 149 FeatureInfo intelDisableFastMath = { 150 "intelDisableFastMath", 151 FeatureCategory::MetalWorkarounds, 152 &members, 153 }; 154 155 FeatureInfo allowRenderpassWithoutAttachment = { 156 "allowRenderpassWithoutAttachment", 157 FeatureCategory::MetalFeatures, 158 &members, 159 }; 160 161 FeatureInfo avoidStencilTextureSwizzle = { 162 "avoidStencilTextureSwizzle", 163 FeatureCategory::MetalFeatures, 164 &members, 165 }; 166 167 FeatureInfo emulateAlphaToCoverage = { 168 "emulateAlphaToCoverage", 169 FeatureCategory::MetalWorkarounds, 170 &members, 171 }; 172 173 FeatureInfo writeHelperSampleMask = { 174 "writeHelperSampleMask", 175 FeatureCategory::MetalWorkarounds, 176 &members, 177 }; 178 179 FeatureInfo preTransformTextureCubeGradDerivatives = { 180 "preTransformTextureCubeGradDerivatives", 181 FeatureCategory::MetalWorkarounds, 182 &members, 183 }; 184 185 FeatureInfo multisampleColorFormatShaderReadWorkaround = { 186 "multisampleColorFormatShaderReadWorkaround", 187 FeatureCategory::MetalWorkarounds, 188 &members, 189 }; 190 191 FeatureInfo copyIOSurfaceToNonIOSurfaceForReadOptimization = { 192 "copyIOSurfaceToNonIOSurfaceForReadOptimization", 193 FeatureCategory::MetalWorkarounds, 194 &members, 195 }; 196 197 FeatureInfo copyTextureToBufferForReadOptimization = { 198 "copyTextureToBufferForReadOptimization", 199 FeatureCategory::MetalWorkarounds, 200 &members, 201 }; 202 203 FeatureInfo limitMaxDrawBuffersForTesting = { 204 "limitMaxDrawBuffersForTesting", 205 FeatureCategory::MetalFeatures, 206 &members, 207 }; 208 209 FeatureInfo limitMaxColorTargetBitsForTesting = { 210 "limitMaxColorTargetBitsForTesting", 211 FeatureCategory::MetalFeatures, 212 &members, 213 }; 214 215 FeatureInfo preemptivelyStartProvokingVertexCommandBuffer = { 216 "preemptivelyStartProvokingVertexCommandBuffer", 217 FeatureCategory::MetalFeatures, 218 &members, 219 }; 220 221 FeatureInfo uploadDataToIosurfacesWithStagingBuffers = { 222 "uploadDataToIosurfacesWithStagingBuffers", 223 FeatureCategory::MetalWorkarounds, 224 &members, 225 }; 226 227 FeatureInfo alwaysUseStagedBufferUpdates = { 228 "alwaysUseStagedBufferUpdates", 229 FeatureCategory::MetalFeatures, 230 &members, 231 }; 232 233 FeatureInfo useShadowBuffersWhenAppropriate = { 234 "useShadowBuffersWhenAppropriate", 235 FeatureCategory::MetalFeatures, 236 &members, 237 }; 238 239 FeatureInfo alwaysUseManagedStorageModeForBuffers = { 240 "alwaysUseManagedStorageModeForBuffers", 241 FeatureCategory::MetalFeatures, 242 &members, 243 }; 244 245 FeatureInfo alwaysUseSharedStorageModeForBuffers = { 246 "alwaysUseSharedStorageModeForBuffers", 247 FeatureCategory::MetalFeatures, 248 &members, 249 }; 250 251 FeatureInfo preferCpuForBuffersubdata = { 252 "preferCpuForBuffersubdata", 253 FeatureCategory::MetalFeatures, 254 &members, 255 }; 256 257 FeatureInfo disableProgrammableBlending = { 258 "disableProgrammableBlending", 259 FeatureCategory::MetalFeatures, 260 &members, 261 }; 262 263 FeatureInfo disableRWTextureTier2Support = { 264 "disableRWTextureTier2Support", 265 FeatureCategory::MetalFeatures, 266 &members, 267 }; 268 269 FeatureInfo disableRasterOrderGroups = { 270 "disableRasterOrderGroups", 271 FeatureCategory::MetalFeatures, 272 &members, 273 }; 274 275 FeatureInfo enableInMemoryMtlLibraryCache = { 276 "enableInMemoryMtlLibraryCache", 277 FeatureCategory::MetalFeatures, 278 &members, 279 }; 280 281 FeatureInfo enableParallelMtlLibraryCompilation = { 282 "enableParallelMtlLibraryCompilation", 283 FeatureCategory::MetalFeatures, 284 &members, 285 }; 286 287 FeatureInfo alwaysPreferStagedTextureUploads = { 288 "alwaysPreferStagedTextureUploads", 289 FeatureCategory::MetalFeatures, 290 &members, 291 }; 292 293 FeatureInfo disableStagedInitializationOfPackedTextureFormats = { 294 "disableStagedInitializationOfPackedTextureFormats", 295 FeatureCategory::MetalFeatures, 296 &members, 297 }; 298 299 FeatureInfo compileMetalShaders = { 300 "compileMetalShaders", 301 FeatureCategory::MetalFeatures, 302 &members, 303 }; 304 305 FeatureInfo loadMetalShadersFromBlobCache = { 306 "loadMetalShadersFromBlobCache", 307 FeatureCategory::MetalFeatures, 308 &members, 309 }; 310 311 FeatureInfo printMetalShaders = { 312 "printMetalShaders", 313 FeatureCategory::MetalFeatures, 314 &members, 315 }; 316 317 FeatureInfo generateShareableShaders = { 318 "generateShareableShaders", 319 FeatureCategory::MetalFeatures, 320 &members, 321 }; 322 323 FeatureInfo disableMetalOnNvidia = { 324 "disableMetalOnNvidia", 325 FeatureCategory::MetalFeatures, 326 &members, 327 }; 328 329 FeatureInfo flushAfterStreamVertexData = { 330 "flushAfterStreamVertexData", 331 FeatureCategory::MetalFeatures, 332 &members, 333 }; 334 335 FeatureInfo requireGpuFamily2 = { 336 "requireGpuFamily2", 337 FeatureCategory::MetalFeatures, 338 &members, 339 }; 340 341 FeatureInfo rescopeGlobalVariables = { 342 "rescopeGlobalVariables", 343 FeatureCategory::MetalFeatures, 344 &members, 345 }; 346 347 FeatureInfo enableMultisampledRenderToTextureOnNonTilers = { 348 "enableMultisampledRenderToTextureOnNonTilers", 349 FeatureCategory::MetalFeatures, 350 &members, 351 }; 352 353 FeatureInfo emulateDontCareLoadWithRandomClear = { 354 "emulateDontCareLoadWithRandomClear", 355 FeatureCategory::MetalFeatures, 356 &members, 357 }; 358 359 FeatureInfo injectAsmStatementIntoLoopBodies = { 360 "injectAsmStatementIntoLoopBodies", 361 FeatureCategory::MetalFeatures, 362 &members, 363 }; 364 365 }; 366 367 inline FeaturesMtl::FeaturesMtl() = default; 368 inline FeaturesMtl::~FeaturesMtl() = default; 369 370 } // namespace angle 371 372 #endif // ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_ 373