blob: f9029456fb4c8a7ce67802f2b4cfbf055313c366 [file] [log] [blame]
{
"description": [
"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.",
"",
"mtl_features.json: Optional features for the Metal renderer."
],
"features": [
{
"name": "hasBaseVertexInstancedDraw",
"display_name": "has_base_vertex_instanced_draw",
"category": "Features",
"description": [
"The renderer supports base vertex instanced draw"
]
},
{
"name": "hasExplicitMemBarrier",
"display_name": "has_explicit_mem_barrier_mtl",
"category": "Features",
"description": [
"The renderer supports explicit memory barrier"
]
},
{
"name": "hasCheapRenderPass",
"display_name": "has_cheap_render_pass_mtl",
"category": "Features",
"description": [
"The renderer can cheaply break a render pass."
]
},
{
"name": "hasNonUniformDispatch",
"display_name": "has_non_uniform_dispatch",
"category": "Features",
"description": [
"The renderer supports non uniform compute shader dispatch's group size"
]
},
{
"name": "hasStencilOutput",
"display_name": "has_shader_stencil_output",
"category": "Features",
"description": [
"The renderer supports stencil output from fragment shader"
]
},
{
"name": "hasTextureSwizzle",
"display_name": "has_texture_swizzle",
"category": "Features",
"description": [
"The renderer supports texture swizzle"
]
},
{
"name": "hasDepthAutoResolve",
"display_name": "has_msaa_depth_auto_resolve",
"category": "Features",
"description": [
"The renderer supports MSAA depth auto resolve at the end of render pass"
]
},
{
"name": "hasStencilAutoResolve",
"display_name": "has_msaa_stencil_auto_resolve",
"category": "Features",
"description": [
"The renderer supports MSAA stencil auto resolve at the end of render pass"
]
},
{
"name": "hasEvents",
"display_name": "has_mtl_events",
"category": "Features",
"description": [
"The renderer supports MTL(Shared)Event"
]
},
{
"name": "allowInlineConstVertexData",
"display_name": "allow_inline_const_vertex_data",
"category": "Features",
"description": [
"The renderer supports using inline constant data for small client vertex data"
]
},
{
"name": "allowSeparatedDepthStencilBuffers",
"display_name": "allow_separate_depth_stencil_buffers",
"category": "Features",
"description": [
"Some Apple platforms such as iOS allows separate depth and stencil buffers, ",
"whereas others such as macOS don't"
]
},
{
"name": "allowRuntimeSamplerCompareMode",
"display_name": "allow_runtime_sampler_compare_mode",
"category": "Features",
"description": [
"The renderer supports changing sampler's compare mode outside shaders"
]
},
{
"name": "allowSamplerCompareGradient",
"display_name": "allow_sampler_compare_gradient",
"category": "Features",
"description": [
"The renderer supports sample_compare with gradients"
]
},
{
"name": "allowSamplerCompareLod",
"display_name": "allow_sampler_compare_lod",
"category": "Features",
"description": [
"The renderer supports sample_compare with lod"
]
},
{
"name": "allowBufferReadWrite",
"display_name": "allow_buffer_read_write",
"category": "Features",
"description": [
"The renderer supports buffer read and write in the same shader"
]
},
{
"name": "allowMultisampleStoreAndResolve",
"display_name": "allow_msaa_store_and_resolve",
"category": "Features",
"description": [
"The renderer supports MSAA store and resolve in the same pass"
]
},
{
"name": "allowGenMultipleMipsPerPass",
"display_name": "gen_multiple_mips_per_pass",
"category": "Features",
"description": [
"The renderer supports generating multiple mipmaps per pass"
]
},
{
"name": "forceD24S8AsUnsupported",
"display_name": "force_d24s8_as_unsupported",
"category": "Features",
"description": [
"Force Depth24Stencil8 format as unsupported."
]
},
{
"name": "forceBufferGPUStorage",
"display_name": "force_buffer_gpu_storage",
"category": "Features",
"description": [
"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."
]
},
{
"name": "directMetalGeneration",
"display_name": "directMetalGeneration",
"category": "Features",
"description": [
"Direct translation to Metal."
],
"issue": "http://anglebug.com/5505"
},
{
"name": "forceNonCSBaseMipmapGeneration",
"display_name": "force_non_cs_mipmap_gen",
"category": "Features",
"description": [
"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."
]
},
{
"name": "emulateTransformFeedback",
"display_name": "emulate_transform_feedback",
"category": "Features",
"description": [
"Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3."
]
},
{
"name": "rewriteRowMajorMatrices",
"display_name": "rewrite_row_major_matrices",
"category": "Features",
"description": [
"Rewrite row major matrices in shaders as column major."
]
},
{
"name": "intelExplicitBoolCastWorkaround",
"display_name": "intel_explicit_bool_cast_workaround",
"category": "Workarounds",
"description": [
"Insert explicit casts for float/double/unsigned/signed int on macOS 10.15 with Intel ",
"driver"
]
},
{
"name": "intelDisableFastMath",
"display_name": "intel_disable_fast_math",
"category": "Workarounds",
"description": [
"Disable fast math in atan and invariance cases when running below macOS 12.0"
]
},
{
"name": "multisampleColorFormatShaderReadWorkaround",
"display_name": "multisample_color_format_shader_read_workaround",
"category": "Workarounds",
"description": [
"Add shaderRead usage to some multisampled texture formats"
],
"issue": "http://anglebug.com/7049"
}
]
}