| // GENERATED FILE - DO NOT EDIT. |
| // Generated by gen_features.py using data from mtl_features.json. |
| // |
| // Copyright 2022 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // FeaturesMtl_autogen.h: Optional features for the Metal renderer. |
| |
| #ifndef ANGLE_PLATFORM_FEATURESMTL_H_ |
| #define ANGLE_PLATFORM_FEATURESMTL_H_ |
| |
| #include "platform/Feature.h" |
| |
| namespace angle |
| { |
| |
| struct FeaturesMtl : FeatureSetBase |
| { |
| FeaturesMtl(); |
| ~FeaturesMtl(); |
| |
| FeatureInfo hasBaseVertexInstancedDraw = { |
| "hasBaseVertexInstancedDraw", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports base vertex instanced draw", |
| &members, |
| }; |
| |
| FeatureInfo hasExplicitMemBarrier = { |
| "hasExplicitMemBarrier", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports explicit memory barrier", |
| &members, |
| }; |
| |
| FeatureInfo hasCheapRenderPass = { |
| "hasCheapRenderPass", |
| FeatureCategory::MetalFeatures, |
| "The renderer can cheaply break a render pass.", |
| &members, |
| }; |
| |
| FeatureInfo hasNonUniformDispatch = { |
| "hasNonUniformDispatch", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports non uniform compute shader dispatch's group size", |
| &members, |
| }; |
| |
| FeatureInfo hasShaderStencilOutput = { |
| "hasShaderStencilOutput", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports stencil output from fragment shader", |
| &members, |
| }; |
| |
| FeatureInfo hasTextureSwizzle = { |
| "hasTextureSwizzle", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports texture swizzle", |
| &members, |
| }; |
| |
| FeatureInfo hasDepthAutoResolve = { |
| "hasDepthAutoResolve", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports MSAA depth auto resolve at the end of render pass", |
| &members, |
| }; |
| |
| FeatureInfo hasStencilAutoResolve = { |
| "hasStencilAutoResolve", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports MSAA stencil auto resolve at the end of render pass", |
| &members, |
| }; |
| |
| FeatureInfo hasEvents = { |
| "hasEvents", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports MTL(Shared)Event", |
| &members, |
| }; |
| |
| FeatureInfo allowInlineConstVertexData = { |
| "allowInlineConstVertexData", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports using inline constant data for small client vertex data", |
| &members, |
| }; |
| |
| FeatureInfo allowSeparateDepthStencilBuffers = { |
| "allowSeparateDepthStencilBuffers", |
| FeatureCategory::MetalFeatures, |
| "Some Apple platforms such as iOS allows separate depth and stencil buffers, " |
| "whereas others such as macOS don't", |
| &members, |
| }; |
| |
| FeatureInfo allowRuntimeSamplerCompareMode = { |
| "allowRuntimeSamplerCompareMode", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports changing sampler's compare mode outside shaders", |
| &members, |
| }; |
| |
| FeatureInfo allowSamplerCompareGradient = { |
| "allowSamplerCompareGradient", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports sample_compare with gradients", |
| &members, |
| }; |
| |
| FeatureInfo allowSamplerCompareLod = { |
| "allowSamplerCompareLod", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports sample_compare with lod", |
| &members, |
| }; |
| |
| FeatureInfo allowBufferReadWrite = { |
| "allowBufferReadWrite", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports buffer read and write in the same shader", |
| &members, |
| }; |
| |
| FeatureInfo allowMultisampleStoreAndResolve = { |
| "allowMultisampleStoreAndResolve", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports MSAA store and resolve in the same pass", |
| &members, |
| }; |
| |
| FeatureInfo allowGenMultipleMipsPerPass = { |
| "allowGenMultipleMipsPerPass", |
| FeatureCategory::MetalFeatures, |
| "The renderer supports generating multiple mipmaps per pass", |
| &members, |
| }; |
| |
| FeatureInfo forceD24S8AsUnsupported = { |
| "forceD24S8AsUnsupported", |
| FeatureCategory::MetalFeatures, |
| "Force Depth24Stencil8 format as unsupported.", |
| &members, |
| }; |
| |
| FeatureInfo forceBufferGPUStorage = { |
| "forceBufferGPUStorage", |
| FeatureCategory::MetalFeatures, |
| "On systems that support both buffer' memory allocation on GPU and shared memory (such as " |
| "macOS), force using GPU memory allocation for buffers everytime or not.", |
| &members, |
| }; |
| |
| FeatureInfo directMetalGeneration = {"directMetalGeneration", FeatureCategory::MetalFeatures, |
| "Direct translation to Metal.", &members, |
| "http://anglebug.com/5505"}; |
| |
| FeatureInfo forceNonCSBaseMipmapGeneration = { |
| "forceNonCSBaseMipmapGeneration", |
| FeatureCategory::MetalFeatures, |
| "Turn this feature on to disallow Compute Shader based mipmap generation. Compute Shader " |
| "based mipmap generation might cause GPU hang on some older iOS devices.", |
| &members, |
| }; |
| |
| FeatureInfo emulateTransformFeedback = { |
| "emulateTransformFeedback", |
| FeatureCategory::MetalFeatures, |
| "Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3.", |
| &members, |
| }; |
| |
| FeatureInfo rewriteRowMajorMatrices = { |
| "rewriteRowMajorMatrices", |
| FeatureCategory::MetalFeatures, |
| "Rewrite row major matrices in shaders as column major.", |
| &members, |
| }; |
| |
| FeatureInfo intelExplicitBoolCastWorkaround = { |
| "intelExplicitBoolCastWorkaround", |
| FeatureCategory::MetalWorkarounds, |
| "Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel " |
| "driver", |
| &members, |
| }; |
| |
| FeatureInfo intelDisableFastMath = { |
| "intelDisableFastMath", |
| FeatureCategory::MetalWorkarounds, |
| "Disable fast math in atan and invariance cases when running below macOS 12.0", |
| &members, |
| }; |
| |
| FeatureInfo multisampleColorFormatShaderReadWorkaround = { |
| "multisampleColorFormatShaderReadWorkaround", FeatureCategory::MetalWorkarounds, |
| "Add shaderRead usage to some multisampled texture formats", &members, |
| "http://anglebug.com/7049"}; |
| |
| FeatureInfo copyIOSurfaceToNonIOSurfaceForReadOptimization = { |
| "copyIOSurfaceToNonIOSurfaceForReadOptimization", FeatureCategory::MetalWorkarounds, |
| "some GPUs are faster to read an IOSurface texture by first copying the texture to a " |
| "non-IOSurface texture", |
| &members, "http://anglebug.com/7117"}; |
| |
| FeatureInfo copyTextureToBufferForReadOptimization = { |
| "copyTextureToBufferForReadOptimization", FeatureCategory::MetalWorkarounds, |
| "some GPUs are faster to read a texture by first copying the texture to a buffer", &members, |
| "http://anglebug.com/7117"}; |
| }; |
| |
| inline FeaturesMtl::FeaturesMtl() = default; |
| inline FeaturesMtl::~FeaturesMtl() = default; |
| |
| } // namespace angle |
| |
| #endif // ANGLE_PLATFORM_FEATURESMTL_H_ |