| { |
| "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" |
| } |
| ] |
| } |