# IMPORTANT - please keep alphabetize to reduce merge conflicts package: "com.android.graphics.surfaceflinger.flags" container: "system" flag { name: "add_first_vsync_to_tracker" namespace: "core_graphics" description: "Add the first vsync timestamp to vsync tracker when priod confirmation is still in progress" bug: "422343157" metadata { purpose: PURPOSE_BUGFIX } } # add_first_vsync_to_tracker flag { name: "adpf_gpu_sf" namespace: "game" description: "Guards use of the sending ADPF GPU duration hint and load hints from SurfaceFlinger to Power HAL" bug: "284324521" } # adpf_gpu_sf flag { name: "anchor_list" namespace: "core_graphics" description: "Use an anchor list for frame rate selection" bug: "356986687" } # anchor_list flag { name: "arr_setframerate_api" namespace: "core_graphics" description: "New SDK Surface#setFrameRate API and Surface.FrameRateParams for Android 16" bug: "356987016" is_fixed_read_only: true is_exported: true } # arr_setframerate_api flag { name: "arr_setframerate_gte_enum" namespace: "core_graphics" description: "Exposes GTE (greater than or equal to) enum for Android 16" bug: "380949716" is_fixed_read_only: true } # arr_setframerate_gte_enum flag { name: "arr_surfacecontrol_setframerate_api" namespace: "core_graphics" description: "New SDK SurfaceControl.Transaction#setFrameRate API for Android 16" bug: "356987016" is_fixed_read_only: true is_exported: true } # arr_surfacecontrol_setframerate_api flag { name: "begone_bright_hlg" namespace: "core_graphics" description: "Caps HLG brightness relative to SDR" bug: "362510107" is_fixed_read_only: true } # begone_bright_hlg flag { name: "buffer_stuffing_fix" namespace: "core_graphics" description: "bug fix for buffer stuffing classification" bug: "417070677" metadata { purpose: PURPOSE_BUGFIX } } # buffer_stuffing_fix flag { name: "connected_display_hdr_v2" namespace: "desktop_display" description: "enable connected display hdr selection" bug: "374182788" } # connected_display_hdr_v2 flag { name: "correct_dpi_with_display_size" namespace: "core_graphics" description: "indicate whether missing or likely incorrect dpi should be corrected using the display size." bug: "328425848" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # correct_dpi_with_display_size flag { name: "deprecate_frame_tracker" namespace: "core_graphics" description: "Deprecate using FrameTracker to accumulate and provide FrameStats" bug: "241394120" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # deprecate_frame_tracker flag { name: "deprecate_vsync_sf" namespace: "core_graphics" description: "Depracate eVsyncSourceSurfaceFlinger and use vsync_app everywhere" bug: "162235855" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # deprecate_vsync_sf flag { name: "disable_synthetic_vsync_for_performance" namespace: "core_graphics" description: "Turn off synthetic VSYNC when adjusting thread scheduling for performance" bug: "406147398" metadata { purpose: PURPOSE_BUGFIX } is_exported: true } # disable_synthetic_vsync_for_performance flag { name: "disable_transparent_region_hint" namespace: "window_surfaces" description: "Disable using transparent region hints when cropping layers" bug: "432537641" metadata { purpose: PURPOSE_BUGFIX } } # disable_transparent_region_hint flag { name: "display_command_modeset" namespace: "desktop_display" description: "Guards use of the new display command modeset" bug: "373900661" } # display_command_modeset flag { name: "filter_refresh_rates_within_config_group" namespace: "core_graphics" description: "Filter refresh rates within a config group" bug: "415374829" metadata { purpose: PURPOSE_BUGFIX } } # filter_refresh_rates_within_config_group flag { name: "flush_buffer_slots_to_uncache" namespace: "core_graphics" description: "Flush DisplayCommands for disabled displays in order to uncache requested buffers." bug: "330806421" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # flush_buffer_slots_to_uncache flag { name: "follower_arbitrary_refresh_rate_selection" namespace: "desktop_display" description: "Enables selection of any refresh rate for the follower display instead of one matching the pacesetter." bug: "371584290" } # follower_arbitrary_refresh_rate_selection flag { name: "follower_display_backpressure" namespace: "desktop_display" description: "Skips presentation on a follower display if there is a pending present for the next follower vsync. Enables follower displays to present even when their refresh rate does not match the pacesetter display." bug: "374072507" } # follower_display_backpressure flag { name: "force_slower_follower_gpu_composition" namespace: "desktop_display" description: "Force slower connected displays to be GPU composited." bug: "389982803" } # force_slower_follower_gpu_composition flag { name: "force_compile_graphite_renderengine" namespace: "core_graphics" description: "Compile Skia's Graphite Vulkan backend in RenderEngine, but do NOT enable it, unless graphite_renderengine is also set. It can also be enabled with the debug.renderengine.graphite system property for testing. In contrast, the graphite_renderengine flag both compiles AND enables Graphite in RenderEngine." bug: "293371537" is_fixed_read_only: true } # force_compile_graphite_renderengine flag { name: "frame_rate_category_mrr" namespace: "core_graphics" description: "Enable to use frame rate category and newer frame rate votes such as GTE in SurfaceFlinger scheduler, to guard dVRR changes from MRR devices" bug: "330224639" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # frame_rate_category_mrr flag { name: "frontend_caching_v0" namespace: "core_graphics" description: "Enables caching of frontend layer states" bug: "433229921" } # frontend_caching_v0 flag { name: "graphite_renderengine_preview_rollout" namespace: "core_graphics" description: "R/W flag to enable Skia's Graphite Vulkan backend in RenderEngine, IF it is already compiled with force_compile_graphite_renderengine, AND the debug.renderengine.graphite_preview_optin sysprop is set to true." bug: "293371537" } # graphite_renderengine_preview_rollout flag { name: "graphite_renderengine_desktop_rollout" namespace: "core_graphics" description: "R/W flag to enable Skia's Graphite Vulkan backend in RenderEngine for Desktop devices, IF the debug.renderengine.graphite_desktop_optin sysprop is set to true." bug: "436872839" } # graphite_renderengine_desktop_rollout flag { name: "hdcp_negotiation" namespace: "core_graphics" description: "detect secure layers to start HDCP negotiation" bug: "375340594" metadata { purpose: PURPOSE_BUGFIX } } # hdcp_negotiation flag { name: "increase_missed_frame_jank_threshold" namespace: "core_graphics" description: "Increase the jank threshold to 4 milliseconds" bug: "342265411" } # increase_missed_frame_jank_threshold flag { name: "local_tonemap_screenshots" namespace: "core_graphics" description: "Enables local tonemapping when capturing screenshots" bug: "329464641" is_fixed_read_only: true } # local_tonemap_screenshots flag { name: "md_degrade_hdr" namespace: "core_graphics" description: "Degrades displays from HDR to SDR during multidisplay mirroring" bug: "443315364" metadata { purpose: PURPOSE_BUGFIX } } # md_degrade_hdr flag { name: "modeset_state_machine" namespace: "core_graphics" description: "Prevent data races causing modeset failures and deadlocks" bug: "434757601" metadata { purpose: PURPOSE_BUGFIX } } # modeset_state_machine flag { name: "monitor_buffer_fences" namespace: "core_graphics" description: "Monitors fences for each buffer" bug: "360932099" } # monitor_buffer_fences flag { name: "no_vsyncs_on_screen_off" namespace: "core_graphics" description: "Stop vsync / Choreographer callbacks to apps when the screen is off" bug: "331636736" is_fixed_read_only: true } # no_vsyncs_on_screen_off flag { name: "offload_gpu_composition" namespace: "window_surfaces" description: "Offload virtual display client composition from main thread" bug: "428611036" is_fixed_read_only: true } # offload_gpu_composition flag { name: "pacesetter_selection" namespace: "desktop_display" description: "Moves pacesetter designation to the display with highest refresh rate. Prefers to keep the same display as pacesetter if there are multiple displays of the same highest refresh rate." bug: "374072507" } # pacesetter_selection flag { name: "parse_edid_version_and_input_type" namespace: "desktop_display" description: "Extends the display information parsed and provided by SurfaceFlinger to include EDID version and input type." bug: "420767380" } # parse_edid_version_and_input_type flag { name: "readback_screenshot" namespace: "core_graphics" description: "Allows devices to use DPU readback for fullscreen screenshots" bug: "384816457" is_exported: true } # readback_screenshot flag { name: "reset_model_flushes_fence" namespace: "core_graphics" description: "VsyncReactor flushes pending fence before calling to reset model" bug: "272802278" metadata { purpose: PURPOSE_BUGFIX } } # reset_model_flushes_fence flag { name: "resync_on_tx" namespace: "core_graphics" description: "Resync to vsync on an incoming transaction" bug: "425994753" metadata { purpose: PURPOSE_BUGFIX } } # resync_on_tx flag { name: "set_client_drawn_corner_radii" namespace: "window_surfaces" description: "Add support for API to set distinct radii for each corner" bug: "406554726" metadata { purpose: PURPOSE_BUGFIX } } # set_client_drawn_corner_radii flag { name: "shader_disk_cache" namespace: "core_graphics" description: "Enable shader disk cache for RenderEngine" bug: "428980914" } # shader_disk_cache flag { name: "skip_invisible_windows_in_input" namespace: "window_surfaces" description: "Only send visible windows to input list" bug: "305254099" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # skip_invisible_windows_in_input flag { name: "stable_edid_ids" namespace: "core_graphics" description: "Guard use of the new stable EDID-based display IDs system." bug: "352320847" is_fixed_read_only: true } # stable_edid_ids flag { name: "stop_layer" namespace: "window_surfaces" description: "Enables stop layers when building layer snapshots" bug: "403312802" is_fixed_read_only: true } # stop_layer flag { name: "supported_refresh_rate_update" namespace: "core_graphics" description: "Update the supported refresh rate list" bug: "431061528" metadata { purpose: PURPOSE_BUGFIX } } # supported_refresh_rate_update flag { name: "synced_resolution_switch" namespace: "core_graphics" description: "Synchronize resolution modeset with framebuffer resizing" bug: "355427258" } # synced_resolution_switch flag { name: "true_hdr_screenshots" namespace: "core_graphics" description: "Enables screenshotting display content in HDR, sans tone mapping" bug: "329470026" is_fixed_read_only: true } # true_hdr_screenshots flag { name: "use_at_least_60_for_min_vote" namespace: "core_graphics" description: "Chooses the lowest >= 60 render rate when all voters want Min frame rate" bug: "441896528" metadata { purpose: PURPOSE_BUGFIX } } # use_at_least_60_for_min_vote flag { name: "vsync_predictor_predicts_within_threshold" namespace: "core_graphics" description: "VSyncPredictor to ignore vsyncs before the given threshold for period and intercept calculation" bug: "411593328" metadata { purpose: PURPOSE_BUGFIX } } # vsync_predictor_predicts_within_threshold flag { name: "wb_virtualdisplay2" namespace: "core_graphics" description: "When enabled, use VirtualDisplaySurface2 instead of the legacy one" bug: "340933138" } # wb_virtualdisplay2 flag { name: "window_blur_kawase2" namespace: "core_graphics" description: "Flag for using Kawase2 algorithm for window blur" bug: "353826438" } # window_blur_kawase2 flag { name: "window_blur_kawase2_fix_aliasing" namespace: "core_graphics" description: "Flag for mitigating aliasing in Kawase2 window blur" bug: "33968507" metadata { purpose: PURPOSE_BUGFIX } } # window_blur_kawase2_fix_aliasing # IMPORTANT - please keep alphabetize to reduce merge conflicts