| { |
| "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/42263580" |
| }, |
| { |
| "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/42265720" |
| }, |
| { |
| "name": "enable_capture_limits", |
| "category": "Features", |
| "description": [ |
| "Set the context limits like frame capturing was enabled" |
| ], |
| "issue": "http://anglebug.com/42264287" |
| }, |
| { |
| "name": "force_robust_resource_init", |
| "category": "Features", |
| "description": [ |
| "Force-enable robust resource init" |
| ], |
| "issue": "http://anglebug.com/42264571" |
| }, |
| { |
| "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/42264193" |
| }, |
| { |
| "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/40096838" |
| }, |
| { |
| "name": "cache_compiled_shader", |
| "category": "Features", |
| "description": [ |
| "Enable to cache compiled shaders" |
| ], |
| "issue": "http://anglebug.com/42265509" |
| }, |
| { |
| "name": "dump_shader_source", |
| "category": "Features", |
| "description": [ |
| "Write shader source to temp directory" |
| ], |
| "issue": "http://anglebug.com/42266231" |
| }, |
| { |
| "name": "enable_shader_substitution", |
| "category": "Workarounds", |
| "description": [ |
| "Check the filesystem for shaders to use instead of those provided through glShaderSource" |
| ], |
| "issue": "http://anglebug.com/42266232" |
| }, |
| { |
| "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/40644912" |
| }, |
| { |
| "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/40644912" |
| }, |
| { |
| "name": "compile_job_is_thread_safe", |
| "category": "Features", |
| "description": [ |
| "If false, parts of the compile job cannot be parallelized" |
| ], |
| "issue": "http://anglebug.com/41488637" |
| }, |
| { |
| "name": "link_job_is_thread_safe", |
| "category": "Features", |
| "description": [ |
| "If false, parts of the link job cannot be parallelized" |
| ], |
| "issue": "http://anglebug.com/41488637" |
| }, |
| { |
| "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/42266842" |
| }, |
| { |
| "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": "" |
| }, |
| { |
| "name": "force_flush_after_drawcall_using_shadowmap", |
| "category": "Workarounds", |
| "description": [ |
| "Force flush after drawcall use shadow map for intel device." |
| ], |
| "issue": "https://issuetracker.google.com/349489248" |
| }, |
| { |
| "name": "reject_webgl_shaders_with_undefined_behavior", |
| "category": "Workarounds", |
| "description": [ |
| "Attempts to detect undefined behavior when in WebGL mode and reject shaders if any detected." |
| ], |
| "issue": "http://crbug.com/350528343" |
| }, |
| { |
| "name": "always_enable_emulated_multidraw_extensions", |
| "category": "Workarounds", |
| "description": [ |
| "Enable multi-draw and base vertex base instance extensions for non-WebGL contexts if they are emulated." |
| ], |
| "issue": "http://anglebug.com/355645824" |
| }, |
| { |
| "name": "force_passthrough_shaders", |
| "category": "Features", |
| "description": [ |
| "Parse shaders for reflection but do not translate them." |
| ], |
| "issue": "https://anglebug.com/398857482" |
| }, |
| { |
| "name": "clip_cull_distance_broken_with_passthrough_shaders", |
| "category": "Features", |
| "description": [ |
| "GL_EXT_clip_cull_distance requires shader transformations to function at all on some drivers." |
| ], |
| "issue": "https://anglebug.com/398857482" |
| }, |
| { |
| "name": "noperspective_interpolation_broken_with_passthrough_shaders", |
| "category": "Features", |
| "description": [ |
| "GL_NV_shader_noperspective_interpolation requires shader transformations to function at all on some drivers." |
| ], |
| "issue": "https://anglebug.com/398857482" |
| }, |
| { |
| "name": "force_debug_contexts", |
| "category": "Features", |
| "description": [ |
| "Force every context into debug mode as if EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR was used." |
| ], |
| "issue": "https://anglebug.com/423956139" |
| } |
| ] |
| } |