| { |
| "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.", |
| "", |
| "frontend_features.json: Features/workarounds for driver bugs and other behaviors seen", |
| "on all platforms." |
| ], |
| "features": [ |
| { |
| "name": "lose_context_on_out_of_memory", |
| "category": "Workarounds", |
| "description": [ |
| "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs" |
| ] |
| }, |
| { |
| "name": "disable_program_caching_for_transform_feedback", |
| "category": "Workarounds", |
| "description": [ |
| "On some GPUs, program binaries don't contain transform feedback varyings" |
| ] |
| }, |
| { |
| "name": "disable_program_binary", |
| "category": "Features", |
| "description": [ |
| "Disable support for GL_OES_get_program_binary" |
| ], |
| "issue": "http://anglebug.com/5007" |
| }, |
| { |
| "name": "disable_draw_buffers_indexed", |
| "category": "Features", |
| "description": [ |
| "Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed" |
| ], |
| "issue": "http://anglebug.com/7724" |
| }, |
| { |
| "name": "disable_anisotropic_filtering", |
| "category": "Workarounds", |
| "description": [ |
| "Disable support for anisotropic filtering" |
| ] |
| }, |
| { |
| "name": "allow_compressed_formats", |
| "category": "Workarounds", |
| "description": [ |
| "Allow compressed formats" |
| ] |
| }, |
| { |
| "name": "single_threaded_texture_decompression", |
| "category": "Workarounds", |
| "description": [ |
| "Disables multi-threaded decompression of compressed texture formats" |
| ] |
| }, |
| { |
| "name": "force_depth_attachment_init_on_clear", |
| "category": "Workarounds", |
| "description": [ |
| "Force depth attachment initialization on clear ops" |
| ], |
| "issue": "https://anglebug.com/7246" |
| }, |
| { |
| "name": "enable_capture_limits", |
| "category": "Features", |
| "description": [ |
| "Set the context limits like frame capturing was enabled" |
| ], |
| "issue": "http://anglebug.com/5750" |
| }, |
| { |
| "name": "force_robust_resource_init", |
| "category": "Features", |
| "description": [ |
| "Force-enable robust resource init" |
| ], |
| "issue": "http://anglebug.com/6041" |
| }, |
| { |
| "name": "force_init_shader_variables", |
| "category": "Features", |
| "description": [ |
| "Force-enable shader variable initialization" |
| ] |
| }, |
| { |
| "name": "enable_program_binary_for_capture", |
| "category": "Features", |
| "description": [ |
| "Even if FrameCapture is enabled, enable GL_OES_get_program_binary" |
| ], |
| "issue": "http://anglebug.com/5658" |
| }, |
| { |
| "name": "force_gl_error_checking", |
| "category": "Features", |
| "description": [ |
| "Force GL error checking (i.e. prevent applications from disabling error checking" |
| ], |
| "issue": "https://issuetracker.google.com/220069903" |
| }, |
| { |
| "name": "emulate_pixel_local_storage", |
| "category": "Features", |
| "description": [ |
| "Emulate ANGLE_shader_pixel_local_storage using shader images" |
| ], |
| "issue": "http://anglebug.com/7279" |
| }, |
| { |
| "name": "cache_compiled_shader", |
| "category": "Features", |
| "description": [ |
| "Enable to cache compiled shaders" |
| ], |
| "issue": "http://anglebug.com/7036" |
| }, |
| { |
| "name": "dump_shader_source", |
| "category": "Features", |
| "description": [ |
| "Write shader source to temp directory" |
| ], |
| "issue": "http://anglebug.com/7760" |
| }, |
| { |
| "name": "enable_shader_substitution", |
| "category": "Workarounds", |
| "description": [ |
| "Check the filesystem for shaders to use instead of those provided through glShaderSource" |
| ], |
| "issue": "http://anglebug.com/7761" |
| }, |
| { |
| "name": "disable_program_caching", |
| "category": "Features", |
| "description": [ |
| "Disables saving programs to the cache" |
| ], |
| "issue": "http://anglebug.com/1423136" |
| }, |
| { |
| "name": "dump_translated_shaders", |
| "category": "Features", |
| "description": [ |
| "Write translated shaders to temp directory" |
| ], |
| "issue": "http://anglebug.com/8280" |
| }, |
| { |
| "name": "enable_translated_shader_substitution", |
| "category": "Workarounds", |
| "description": [ |
| "Check the filesystem for translated shaders to use instead of the shader translator's" |
| ], |
| "issue": "http://anglebug.com/8280" |
| }, |
| { |
| "name": "compile_job_is_thread_safe", |
| "category": "Features", |
| "description": [ |
| "If false, parts of the compile job cannot be parallelized" |
| ], |
| "issue": "http://anglebug.com/8297" |
| }, |
| { |
| "name": "link_job_is_thread_safe", |
| "category": "Features", |
| "description": [ |
| "If false, parts of the link job cannot be parallelized" |
| ], |
| "issue": "http://anglebug.com/8297" |
| }, |
| { |
| "name": "always_run_link_sub_jobs_threaded", |
| "category": "Features", |
| "description": [ |
| "If true, sub tasks of the link job are always threaded, regardless of GL_KHR_parallel_shader_compile" |
| ], |
| "issue": "http://anglebug.com/8417" |
| }, |
| { |
| "name": "uncurrent_egl_surface_upon_surface_destroy", |
| "category": "Workarounds", |
| "description": [ |
| "Make egl surface uncurrent when calling eglDestroySurface(), if the surface is still bound by the context of current render thread" |
| ], |
| "issue": "https://issuetracker.google.com/292285899" |
| }, |
| { |
| "name": "force_minimum_max_vertex_attributes", |
| "category": "Features", |
| "description": [ |
| "Force the minimum GL_MAX_VERTEX_ATTRIBS that the context's client version allows." |
| ], |
| "issue": "" |
| } |
| ] |
| } |