mirror of https://github.com/axmolengine/axmol.git
313 lines
11 KiB
JSON
313 lines
11 KiB
JSON
{
|
|
"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": "has_base_vertex_instanced_draw",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports base vertex instanced draw"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_explicit_mem_barrier",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports explicit memory barrier"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_cheap_render_pass",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer can cheaply break a render pass."
|
|
]
|
|
},
|
|
{
|
|
"name": "has_non_uniform_dispatch",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports non uniform compute shader dispatch's group size"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_shader_stencil_output",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports stencil output from fragment shader"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_texture_swizzle",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports texture swizzle"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_depth_auto_resolve",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports MSAA depth auto resolve at the end of render pass"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_stencil_auto_resolve",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports MSAA stencil auto resolve at the end of render pass"
|
|
]
|
|
},
|
|
{
|
|
"name": "has_events",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports MTL(Shared)Event"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_inline_const_vertex_data",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports using inline constant data for small client vertex data"
|
|
]
|
|
},
|
|
{
|
|
"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": "allow_runtime_sampler_compare_mode",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports changing sampler's compare mode outside shaders"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_sampler_compare_gradient",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports sample_compare with gradients"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_sampler_compare_lod",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports sample_compare with lod"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_buffer_read_write",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports buffer read and write in the same shader"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_multisample_store_and_resolve",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports MSAA store and resolve in the same pass"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_gen_multiple_mips_per_pass",
|
|
"category": "Features",
|
|
"description": [
|
|
"The renderer supports generating multiple mipmaps per pass"
|
|
]
|
|
},
|
|
{
|
|
"name": "force_D24S8_as_unsupported",
|
|
"category": "Features",
|
|
"description": [
|
|
"Force Depth24Stencil8 format as unsupported."
|
|
]
|
|
},
|
|
{
|
|
"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": "force_non_CS_base_mipmap_generation",
|
|
"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": "emulate_transform_feedback",
|
|
"category": "Features",
|
|
"description": [
|
|
"Turn this on to allow transform feedback in Metal using a 2-pass VS for GLES3."
|
|
]
|
|
},
|
|
{
|
|
"name": "rewrite_row_major_matrices",
|
|
"category": "Features",
|
|
"description": [
|
|
"Rewrite row major matrices in shaders as column major."
|
|
]
|
|
},
|
|
{
|
|
"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": "intel_disable_fast_math",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Disable fast math in atan and invariance cases when running below macOS 12.0"
|
|
]
|
|
},
|
|
{
|
|
"name": "allow_renderpass_without_attachment",
|
|
"category": "Features",
|
|
"description": [
|
|
"Allow creation of render passes without any attachments"
|
|
]
|
|
},
|
|
|
|
{
|
|
"name": "multisample_color_format_shader_read_workaround",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"Add shaderRead usage to some multisampled texture formats"
|
|
],
|
|
"issue": "http://anglebug.com/7049"
|
|
},
|
|
{
|
|
"name": "copy_IOSurface_to_non_IOSurface_for_read_optimization",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"some GPUs are faster to read an IOSurface texture by first copying the texture to a ",
|
|
"non-IOSurface texture"
|
|
],
|
|
"issue": "http://anglebug.com/7117 http://anglebug.com/7573"
|
|
},
|
|
{
|
|
"name": "copy_texture_to_buffer_for_read_optimization",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"some GPUs are faster to read a texture by first copying the texture to a buffer"
|
|
],
|
|
"issue": "http://anglebug.com/7117"
|
|
},
|
|
{
|
|
"name": "limit_max_draw_buffers_for_testing",
|
|
"category": "Features",
|
|
"description": [
|
|
"Used to check the backend works when the device's advertized limit is less than the code's limit"
|
|
],
|
|
"issue": "http://anglebug.com/7280"
|
|
},
|
|
{
|
|
"name": "limit_max_color_target_bits_for_testing",
|
|
"category": "Features",
|
|
"description": [
|
|
"Metal iOS has a limit on the number of color target bits per pixel."
|
|
],
|
|
"issue": "http://anglebug.com/7280"
|
|
},
|
|
{
|
|
"name": "preemptively_start_provoking_vertex_command_buffer",
|
|
"category": "Features",
|
|
"description": [
|
|
"AMD Metal Drivers appear to have a bug this works around"
|
|
],
|
|
"issue": "http://anglebug.com/7635"
|
|
},
|
|
{
|
|
"name": "upload_data_to_iosurfaces_with_staging_buffers",
|
|
"category": "Workarounds",
|
|
"description": [
|
|
"When uploading data to IOSurface-backed textures, use a staging buffer."
|
|
],
|
|
"issue": "http://anglebug.com/7573"
|
|
},
|
|
{
|
|
"name": "always_use_staged_buffer_updates",
|
|
"category": "Features",
|
|
"description": [
|
|
"Always update buffers by copying the data to a staging buffer and then blitting it to the actual buffer"
|
|
],
|
|
"issue": "http://anglebug.com/7544"
|
|
},
|
|
{
|
|
"name": "use_shadow_buffers_when_appropriate",
|
|
"category": "Features",
|
|
"description": [
|
|
"On some architectures using a shadow buffer can be faster for certain size buffers"
|
|
],
|
|
"issue": "http://anglebug.com/7544"
|
|
},
|
|
{
|
|
"name": "always_use_managed_storage_mode_for_buffers",
|
|
"category": "Features",
|
|
"description": [
|
|
"Metal buffers can be managed, shared, or private. Sometimes managed is fastest"
|
|
],
|
|
"issue": "http://anglebug.com/7544"
|
|
},
|
|
{
|
|
"name": "always_use_shared_storage_mode_for_buffers",
|
|
"category": "Features",
|
|
"description": [
|
|
"Metal buffers can be managed, shared, or private. Sometimes shared is fastest"
|
|
],
|
|
"issue": "http://anglebug.com/7544"
|
|
},
|
|
{
|
|
"name": "prefer_cpu_for_buffersubdata",
|
|
"category": "Features",
|
|
"description": [
|
|
"Makes bufferSubData always update via CPU"
|
|
],
|
|
"issue": "http://anglebug.com/7544"
|
|
},
|
|
{
|
|
"name": "disable_programmable_blending",
|
|
"category": "Features",
|
|
"description": [
|
|
"Disable programmable blending in order to test read_write pixel local storage textures"
|
|
],
|
|
"issue": "http://anglebug.com/7279"
|
|
},
|
|
{
|
|
"name": "disable_r_w_texture_tier2_support",
|
|
"category": "Features",
|
|
"description": [
|
|
"Disable tier2 read_write textures in order to test tier1 support"
|
|
],
|
|
"issue": "http://anglebug.com/7279"
|
|
},
|
|
{
|
|
"name": "disable_raster_order_groups",
|
|
"category": "Features",
|
|
"description": [
|
|
"Disable raster order groups in order to test pixel local storage memory barriers"
|
|
],
|
|
"issue": "http://anglebug.com/7279"
|
|
}
|
|
]
|
|
}
|