summaryrefslogtreecommitdiffstats
path: root/gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h')
-rw-r--r--gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h242
1 files changed, 242 insertions, 0 deletions
diff --git a/gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h b/gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h
new file mode 100644
index 0000000000..116a0ee8d7
--- /dev/null
+++ b/gfx/angle/checkout/include/platform/FeaturesMtl_autogen.h
@@ -0,0 +1,242 @@
+// 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 http://anglebug.com/7573"};
+
+ 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"};
+
+ FeatureInfo limitMaxDrawBuffersForTesting = {
+ "limitMaxDrawBuffersForTesting", FeatureCategory::MetalFeatures,
+ "Used to check the backend works when the device's advertized limit is less than the "
+ "code's limit",
+ &members, "http://anglebug.com/7280"};
+
+ FeatureInfo limitMaxColorTargetBitsForTesting = {
+ "limitMaxColorTargetBitsForTesting", FeatureCategory::MetalFeatures,
+ "Metal iOS has a limit on the number of color target bits per pixel.", &members,
+ "http://anglebug.com/7280"};
+
+ FeatureInfo preemptivelyStartProvokingVertexCommandBuffer = {
+ "preemptivelyStartProvokingVertexCommandBuffer", FeatureCategory::MetalFeatures,
+ "AMD Metal Drivers appear to have a bug this works around", &members,
+ "http://anglebug.com/7635"};
+
+ FeatureInfo uploadDataToIosurfacesWithStagingBuffers = {
+ "uploadDataToIosurfacesWithStagingBuffers", FeatureCategory::MetalWorkarounds,
+ "When uploading data to IOSurface-backed textures, use a staging buffer.", &members,
+ "http://anglebug.com/7573"};
+};
+
+inline FeaturesMtl::FeaturesMtl() = default;
+inline FeaturesMtl::~FeaturesMtl() = default;
+
+} // namespace angle
+
+#endif // ANGLE_PLATFORM_FEATURESMTL_H_