1*38e8c45fSAndroid Build Coastguard Worker# Copyright (C) 2019 The Android Open Source Project 2*38e8c45fSAndroid Build Coastguard Worker# 3*38e8c45fSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the License); 4*38e8c45fSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*38e8c45fSAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*38e8c45fSAndroid Build Coastguard Worker# 7*38e8c45fSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*38e8c45fSAndroid Build Coastguard Worker# 9*38e8c45fSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*38e8c45fSAndroid Build Coastguard Worker# distributed under the License is distributed on an AS IS BASIS, 11*38e8c45fSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*38e8c45fSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*38e8c45fSAndroid Build Coastguard Worker# limitations under the License. 14*38e8c45fSAndroid Build Coastguard Worker 15*38e8c45fSAndroid Build Coastguard Workermodule: "android.sysprop.SurfaceFlingerProperties" 16*38e8c45fSAndroid Build Coastguard Workerowner: Platform 17*38e8c45fSAndroid Build Coastguard Worker 18*38e8c45fSAndroid Build Coastguard Worker# The following two properties define (respectively): 19*38e8c45fSAndroid Build Coastguard Worker# 20*38e8c45fSAndroid Build Coastguard Worker# - The phase offset between hardware vsync and when apps are woken up by the 21*38e8c45fSAndroid Build Coastguard Worker# Choreographer callback 22*38e8c45fSAndroid Build Coastguard Worker# - The phase offset between hardware vsync and when SurfaceFlinger wakes up 23*38e8c45fSAndroid Build Coastguard Worker# to consume input 24*38e8c45fSAndroid Build Coastguard Worker# Their values may be tuned to trade off between display pipeline latency (both 25*38e8c45fSAndroid Build Coastguard Worker# overall latency and the lengths of the app --> SF and SF --> display phases) 26*38e8c45fSAndroid Build Coastguard Worker# and frame delivery jitter (which typically manifests as "jank" or "jerkiness" 27*38e8c45fSAndroid Build Coastguard Worker# while interacting with the device). The default values must produce a 28*38e8c45fSAndroid Build Coastguard Worker# relatively low amount of jitter at the expense of roughly two frames of 29*38e8c45fSAndroid Build Coastguard Worker# app --> display latency, and unless significant testing is performed to avoid 30*38e8c45fSAndroid Build Coastguard Worker# increased display jitter (both manual investigation using systrace [1] and 31*38e8c45fSAndroid Build Coastguard Worker# automated testing using dumpsys gfxinfo [2] are recommended), they should not 32*38e8c45fSAndroid Build Coastguard Worker# be modified. 33*38e8c45fSAndroid Build Coastguard Worker# 34*38e8c45fSAndroid Build Coastguard Worker# [1] https://developer.android.com/studio/profile/systrace.html 35*38e8c45fSAndroid Build Coastguard Worker# [2] https://developer.android.com/training/testing/performance.html 36*38e8c45fSAndroid Build Coastguard Workerprop { 37*38e8c45fSAndroid Build Coastguard Worker api_name: "vsync_event_phase_offset_ns" 38*38e8c45fSAndroid Build Coastguard Worker type: Long 39*38e8c45fSAndroid Build Coastguard Worker scope: Public 40*38e8c45fSAndroid Build Coastguard Worker access: Readonly 41*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.vsync_event_phase_offset_ns" 42*38e8c45fSAndroid Build Coastguard Worker} 43*38e8c45fSAndroid Build Coastguard Worker 44*38e8c45fSAndroid Build Coastguard Workerprop { 45*38e8c45fSAndroid Build Coastguard Worker api_name: "vsync_sf_event_phase_offset_ns" 46*38e8c45fSAndroid Build Coastguard Worker type: Long 47*38e8c45fSAndroid Build Coastguard Worker scope: Public 48*38e8c45fSAndroid Build Coastguard Worker access: Readonly 49*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.vsync_sf_event_phase_offset_ns" 50*38e8c45fSAndroid Build Coastguard Worker} 51*38e8c45fSAndroid Build Coastguard Worker 52*38e8c45fSAndroid Build Coastguard Worker# Instruct the Render Engine to use EGL_IMG_context_priority hint if available. 53*38e8c45fSAndroid Build Coastguard Workerprop { 54*38e8c45fSAndroid Build Coastguard Worker api_name: "use_context_priority" 55*38e8c45fSAndroid Build Coastguard Worker type: Boolean 56*38e8c45fSAndroid Build Coastguard Worker scope: Public 57*38e8c45fSAndroid Build Coastguard Worker access: Readonly 58*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.use_context_priority" 59*38e8c45fSAndroid Build Coastguard Worker} 60*38e8c45fSAndroid Build Coastguard Worker 61*38e8c45fSAndroid Build Coastguard Worker# Controls the number of buffers SurfaceFlinger will allocate for use in FramebufferSurface. 62*38e8c45fSAndroid Build Coastguard Workerprop { 63*38e8c45fSAndroid Build Coastguard Worker api_name: "max_frame_buffer_acquired_buffers" 64*38e8c45fSAndroid Build Coastguard Worker type: Long 65*38e8c45fSAndroid Build Coastguard Worker scope: Public 66*38e8c45fSAndroid Build Coastguard Worker access: Readonly 67*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.max_frame_buffer_acquired_buffers" 68*38e8c45fSAndroid Build Coastguard Worker} 69*38e8c45fSAndroid Build Coastguard Worker 70*38e8c45fSAndroid Build Coastguard Worker# Controls the maximum width in pixels that the graphics pipeline can support for GPU fallback 71*38e8c45fSAndroid Build Coastguard Worker# composition. For example, 8k displays with 4k GPUs, or 4k displays with 2k GPUs. 72*38e8c45fSAndroid Build Coastguard Workerprop { 73*38e8c45fSAndroid Build Coastguard Worker api_name: "max_graphics_width" 74*38e8c45fSAndroid Build Coastguard Worker type: Integer 75*38e8c45fSAndroid Build Coastguard Worker scope: Public 76*38e8c45fSAndroid Build Coastguard Worker access: Readonly 77*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.max_graphics_width" 78*38e8c45fSAndroid Build Coastguard Worker} 79*38e8c45fSAndroid Build Coastguard Worker 80*38e8c45fSAndroid Build Coastguard Worker# Controls the maximum height in pixels that the graphics pipeline can support for GPU fallback 81*38e8c45fSAndroid Build Coastguard Worker# composition. For example, 8k displays with 4k GPUs, or 4k displays with 2k GPUs. 82*38e8c45fSAndroid Build Coastguard Workerprop { 83*38e8c45fSAndroid Build Coastguard Worker api_name: "max_graphics_height" 84*38e8c45fSAndroid Build Coastguard Worker type: Integer 85*38e8c45fSAndroid Build Coastguard Worker scope: Public 86*38e8c45fSAndroid Build Coastguard Worker access: Readonly 87*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.max_graphics_height" 88*38e8c45fSAndroid Build Coastguard Worker} 89*38e8c45fSAndroid Build Coastguard Worker 90*38e8c45fSAndroid Build Coastguard Worker# hasWideColorDisplay indicates that the device has 91*38e8c45fSAndroid Build Coastguard Worker# or can support a wide-color display, e.g. color space 92*38e8c45fSAndroid Build Coastguard Worker# greater than sRGB. Typical display may have same 93*38e8c45fSAndroid Build Coastguard Worker# color primaries as DCI-P3. 94*38e8c45fSAndroid Build Coastguard Worker# Indicate support for this feature by setting 95*38e8c45fSAndroid Build Coastguard Worker# TARGET_HAS_WIDE_COLOR_DISPLAY to true in BoardConfig.mk 96*38e8c45fSAndroid Build Coastguard Worker# This also means that the device is color managed. 97*38e8c45fSAndroid Build Coastguard Worker# A color managed device will use the appropriate 98*38e8c45fSAndroid Build Coastguard Worker# display mode depending on the content on the screen. 99*38e8c45fSAndroid Build Coastguard Worker# Default is sRGB. 100*38e8c45fSAndroid Build Coastguard Workerprop { 101*38e8c45fSAndroid Build Coastguard Worker api_name: "has_wide_color_display" 102*38e8c45fSAndroid Build Coastguard Worker type: Boolean 103*38e8c45fSAndroid Build Coastguard Worker scope: Public 104*38e8c45fSAndroid Build Coastguard Worker access: Readonly 105*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.has_wide_color_display" 106*38e8c45fSAndroid Build Coastguard Worker} 107*38e8c45fSAndroid Build Coastguard Worker 108*38e8c45fSAndroid Build Coastguard Worker# Indicates if Sync framework is available. Sync framework provides fence 109*38e8c45fSAndroid Build Coastguard Worker# mechanism which significantly reduces buffer processing latency. 110*38e8c45fSAndroid Build Coastguard Workerprop { 111*38e8c45fSAndroid Build Coastguard Worker api_name: "running_without_sync_framework" 112*38e8c45fSAndroid Build Coastguard Worker type: Boolean 113*38e8c45fSAndroid Build Coastguard Worker scope: Public 114*38e8c45fSAndroid Build Coastguard Worker access: Readonly 115*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.running_without_sync_framework" 116*38e8c45fSAndroid Build Coastguard Worker} 117*38e8c45fSAndroid Build Coastguard Worker 118*38e8c45fSAndroid Build Coastguard Worker# hwHDRDisplay indicates that the device has an High Dynamic Range display. 119*38e8c45fSAndroid Build Coastguard Worker# A display is considered High Dynamic Range if it 120*38e8c45fSAndroid Build Coastguard Worker# 121*38e8c45fSAndroid Build Coastguard Worker# 1. is a wide color gamut display, typically DCI-P3 or lager 122*38e8c45fSAndroid Build Coastguard Worker# 2. has high luminance capability, typically 540 nits or higher at 10% OPR 123*38e8c45fSAndroid Build Coastguard Worker# 124*38e8c45fSAndroid Build Coastguard Worker# Indicate support for this feature by setting 125*38e8c45fSAndroid Build Coastguard Worker# ro.surface_flinger.has_HDR_display to true in device.mk 126*38e8c45fSAndroid Build Coastguard Worker# ro.surface_flinger.has_wide_color_display must be set to true when 127*38e8c45fSAndroid Build Coastguard Worker# ro.surface_flinger.has_HDR_display is true. 128*38e8c45fSAndroid Build Coastguard Workerprop { 129*38e8c45fSAndroid Build Coastguard Worker api_name: "has_HDR_display" 130*38e8c45fSAndroid Build Coastguard Worker type: Boolean 131*38e8c45fSAndroid Build Coastguard Worker scope: Public 132*38e8c45fSAndroid Build Coastguard Worker access: Readonly 133*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.has_HDR_display" 134*38e8c45fSAndroid Build Coastguard Worker} 135*38e8c45fSAndroid Build Coastguard Worker 136*38e8c45fSAndroid Build Coastguard Worker# Specify the offset in nanoseconds to add to vsync time when timestamping present fences. 137*38e8c45fSAndroid Build Coastguard Workerprop { 138*38e8c45fSAndroid Build Coastguard Worker api_name: "present_time_offset_from_vsync_ns" 139*38e8c45fSAndroid Build Coastguard Worker type: Long 140*38e8c45fSAndroid Build Coastguard Worker scope: Public 141*38e8c45fSAndroid Build Coastguard Worker access: Readonly 142*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.present_time_offset_from_vsync_ns" 143*38e8c45fSAndroid Build Coastguard Worker} 144*38e8c45fSAndroid Build Coastguard Worker 145*38e8c45fSAndroid Build Coastguard Worker# Some hardware can do RGB->YUV conversion more efficiently in hardware 146*38e8c45fSAndroid Build Coastguard Worker# controlled by HWC than in hardware controlled by the video encoder. 147*38e8c45fSAndroid Build Coastguard Worker# This instruct VirtualDisplaySurface to use HWC for such conversion on 148*38e8c45fSAndroid Build Coastguard Worker# GL composition. 149*38e8c45fSAndroid Build Coastguard Workerprop { 150*38e8c45fSAndroid Build Coastguard Worker api_name: "force_hwc_copy_for_virtual_displays" 151*38e8c45fSAndroid Build Coastguard Worker type: Boolean 152*38e8c45fSAndroid Build Coastguard Worker scope: Public 153*38e8c45fSAndroid Build Coastguard Worker access: Readonly 154*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.force_hwc_copy_for_virtual_displays" 155*38e8c45fSAndroid Build Coastguard Worker} 156*38e8c45fSAndroid Build Coastguard Worker 157*38e8c45fSAndroid Build Coastguard Worker# Maximum dimension supported by HWC for virtual display. 158*38e8c45fSAndroid Build Coastguard Worker# Must be equals to min(max_width, max_height). 159*38e8c45fSAndroid Build Coastguard Workerprop { 160*38e8c45fSAndroid Build Coastguard Worker api_name: "max_virtual_display_dimension" 161*38e8c45fSAndroid Build Coastguard Worker type: Long 162*38e8c45fSAndroid Build Coastguard Worker scope: Public 163*38e8c45fSAndroid Build Coastguard Worker access: Readonly 164*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.max_virtual_display_dimension" 165*38e8c45fSAndroid Build Coastguard Worker} 166*38e8c45fSAndroid Build Coastguard Worker 167*38e8c45fSAndroid Build Coastguard Worker# Return true if surface flinger should use vr flinger for compatible vr 168*38e8c45fSAndroid Build Coastguard Worker# apps, false otherwise. Devices that will never be running vr apps should 169*38e8c45fSAndroid Build Coastguard Worker# return false to avoid extra resource usage. Daydream ready devices must 170*38e8c45fSAndroid Build Coastguard Worker# return true for full vr support. 171*38e8c45fSAndroid Build Coastguard Workerprop { 172*38e8c45fSAndroid Build Coastguard Worker api_name: "use_vr_flinger" 173*38e8c45fSAndroid Build Coastguard Worker type: Boolean 174*38e8c45fSAndroid Build Coastguard Worker scope: Public 175*38e8c45fSAndroid Build Coastguard Worker access: Readonly 176*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.use_vr_flinger" 177*38e8c45fSAndroid Build Coastguard Worker} 178*38e8c45fSAndroid Build Coastguard Worker 179*38e8c45fSAndroid Build Coastguard Worker# Returns true if surface flinger should start 180*38e8c45fSAndroid Build Coastguard Worker# [email protected]::IAllocator service. 181*38e8c45fSAndroid Build Coastguard Workerprop { 182*38e8c45fSAndroid Build Coastguard Worker api_name: "start_graphics_allocator_service" 183*38e8c45fSAndroid Build Coastguard Worker type: Boolean 184*38e8c45fSAndroid Build Coastguard Worker scope: Public 185*38e8c45fSAndroid Build Coastguard Worker access: Readonly 186*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.start_graphics_allocator_service" 187*38e8c45fSAndroid Build Coastguard Worker} 188*38e8c45fSAndroid Build Coastguard Worker 189*38e8c45fSAndroid Build Coastguard Worker# Returns the orientation of the primary display device. 190*38e8c45fSAndroid Build Coastguard Workerprop { 191*38e8c45fSAndroid Build Coastguard Worker api_name: "primary_display_orientation" 192*38e8c45fSAndroid Build Coastguard Worker type: Enum 193*38e8c45fSAndroid Build Coastguard Worker enum_values: "ORIENTATION_0|ORIENTATION_90|ORIENTATION_180|ORIENTATION_270" 194*38e8c45fSAndroid Build Coastguard Worker scope: Public 195*38e8c45fSAndroid Build Coastguard Worker access: Readonly 196*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.primary_display_orientation" 197*38e8c45fSAndroid Build Coastguard Worker} 198*38e8c45fSAndroid Build Coastguard Worker 199*38e8c45fSAndroid Build Coastguard Worker# useColorManagement indicates whether SurfaceFlinger should manage color 200*38e8c45fSAndroid Build Coastguard Worker# by switching to appropriate color mode automatically depending on the 201*38e8c45fSAndroid Build Coastguard Worker# Dataspace of the surfaces on screen. 202*38e8c45fSAndroid Build Coastguard Worker# DEPRECATED: SurfaceFlinger is always color managed. 203*38e8c45fSAndroid Build Coastguard Workerprop { 204*38e8c45fSAndroid Build Coastguard Worker api_name: "use_color_management" 205*38e8c45fSAndroid Build Coastguard Worker type: Boolean 206*38e8c45fSAndroid Build Coastguard Worker scope: Public 207*38e8c45fSAndroid Build Coastguard Worker access: Readonly 208*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.use_color_management" 209*38e8c45fSAndroid Build Coastguard Worker} 210*38e8c45fSAndroid Build Coastguard Worker 211*38e8c45fSAndroid Build Coastguard Worker# The following four properties define: 212*38e8c45fSAndroid Build Coastguard Worker# Returns the default data space and pixel format that SurfaceFlinger 213*38e8c45fSAndroid Build Coastguard Worker# expects to receive and output as well as the wide color gamut data space 214*38e8c45fSAndroid Build Coastguard Worker# and pixel format for wide color gamut surfaces. 215*38e8c45fSAndroid Build Coastguard Worker# To determine the data space and pixel format, there are a few things 216*38e8c45fSAndroid Build Coastguard Worker# we recommend to consider: 217*38e8c45fSAndroid Build Coastguard Worker# 218*38e8c45fSAndroid Build Coastguard Worker# 1. Hardware composer's capability to composite contents with the chosen 219*38e8c45fSAndroid Build Coastguard Worker# data space and pixel format efficiently; 220*38e8c45fSAndroid Build Coastguard Worker# 2. Hardware composer's ability to composite contents when sRGB contents 221*38e8c45fSAndroid Build Coastguard Worker# and the chosen wide color gamut data space contents coexist; 222*38e8c45fSAndroid Build Coastguard Worker# 3. For better blending, consider using pixel format where the alpha 223*38e8c45fSAndroid Build Coastguard Worker# channel has as many bits as the RGB color channel. 224*38e8c45fSAndroid Build Coastguard Worker# 4. Memory consumption and efficient buffer compression when considering 225*38e8c45fSAndroid Build Coastguard Worker# more bits in pixel format. 226*38e8c45fSAndroid Build Coastguard Worker 227*38e8c45fSAndroid Build Coastguard Worker# dataspace is the default data space that SurfaceFlinger expects. 228*38e8c45fSAndroid Build Coastguard Worker# The data space must not be Dataspace::UNKNOWN, if unspecified, 229*38e8c45fSAndroid Build Coastguard Worker# the default data space is Dataspace::V0_SRGB; 230*38e8c45fSAndroid Build Coastguard Workerprop { 231*38e8c45fSAndroid Build Coastguard Worker api_name: "default_composition_dataspace" 232*38e8c45fSAndroid Build Coastguard Worker type: Long 233*38e8c45fSAndroid Build Coastguard Worker scope: Public 234*38e8c45fSAndroid Build Coastguard Worker access: Readonly 235*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.default_composition_dataspace" 236*38e8c45fSAndroid Build Coastguard Worker} 237*38e8c45fSAndroid Build Coastguard Worker 238*38e8c45fSAndroid Build Coastguard Worker# pixelFormat is the default pixel format that SurfaceFlinger 239*38e8c45fSAndroid Build Coastguard Worker# expects. If unspecified, the default pixel format is 240*38e8c45fSAndroid Build Coastguard Worker# PixelFormat::RGBA_8888. 241*38e8c45fSAndroid Build Coastguard Workerprop { 242*38e8c45fSAndroid Build Coastguard Worker api_name: "default_composition_pixel_format" 243*38e8c45fSAndroid Build Coastguard Worker type: Integer 244*38e8c45fSAndroid Build Coastguard Worker scope: Public 245*38e8c45fSAndroid Build Coastguard Worker access: Readonly 246*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.default_composition_pixel_format" 247*38e8c45fSAndroid Build Coastguard Worker} 248*38e8c45fSAndroid Build Coastguard Worker 249*38e8c45fSAndroid Build Coastguard Worker# wcgDataspace is the data space that SurfaceFlinger expects for 250*38e8c45fSAndroid Build Coastguard Worker# wide color gamut surfaces. 251*38e8c45fSAndroid Build Coastguard Worker# When hasWideColorDisplay returns true, this API must return a 252*38e8c45fSAndroid Build Coastguard Worker# valid wide color gamut data space. 253*38e8c45fSAndroid Build Coastguard Worker# The data space must not be UNKNOWN, if unspecified, the data space 254*38e8c45fSAndroid Build Coastguard Worker# is V0_SRGB by default, which essentially indicates there's no wide 255*38e8c45fSAndroid Build Coastguard Worker# color gamut, meaning hasWideColorDisplay returns false. 256*38e8c45fSAndroid Build Coastguard Workerprop { 257*38e8c45fSAndroid Build Coastguard Worker api_name: "wcg_composition_dataspace" 258*38e8c45fSAndroid Build Coastguard Worker type: Long 259*38e8c45fSAndroid Build Coastguard Worker scope: Public 260*38e8c45fSAndroid Build Coastguard Worker access: Readonly 261*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.wcg_composition_dataspace" 262*38e8c45fSAndroid Build Coastguard Worker} 263*38e8c45fSAndroid Build Coastguard Worker 264*38e8c45fSAndroid Build Coastguard Worker# wcgPixelFormat is the pixel format that SurfaceFlinger expects for 265*38e8c45fSAndroid Build Coastguard Worker# wide color gamut surfaces. If unspecified, the pixel format is 266*38e8c45fSAndroid Build Coastguard Worker# PixelFormat::RGBA_8888 by default. 267*38e8c45fSAndroid Build Coastguard Workerprop { 268*38e8c45fSAndroid Build Coastguard Worker api_name: "wcg_composition_pixel_format" 269*38e8c45fSAndroid Build Coastguard Worker type: Integer 270*38e8c45fSAndroid Build Coastguard Worker scope: Public 271*38e8c45fSAndroid Build Coastguard Worker access: Readonly 272*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.wcg_composition_pixel_format" 273*38e8c45fSAndroid Build Coastguard Worker} 274*38e8c45fSAndroid Build Coastguard Worker 275*38e8c45fSAndroid Build Coastguard Worker# colorSpaceAgnosticDataspace specifies the data space that 276*38e8c45fSAndroid Build Coastguard Worker# SurfaceFlinger expects for surfaces which are color space agnostic. 277*38e8c45fSAndroid Build Coastguard Worker# The variable works only when useColorManagement is specified. If 278*38e8c45fSAndroid Build Coastguard Worker# unspecified, the data space follows what SurfaceFlinger expects for 279*38e8c45fSAndroid Build Coastguard Worker# surfaces when useColorManagement is specified. 280*38e8c45fSAndroid Build Coastguard Worker# DEPRECATED: do not use 281*38e8c45fSAndroid Build Coastguard Workerprop { 282*38e8c45fSAndroid Build Coastguard Worker api_name: "color_space_agnostic_dataspace" 283*38e8c45fSAndroid Build Coastguard Worker type: Long 284*38e8c45fSAndroid Build Coastguard Worker scope: Public 285*38e8c45fSAndroid Build Coastguard Worker access: Readonly 286*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.color_space_agnostic_dataspace" 287*38e8c45fSAndroid Build Coastguard Worker} 288*38e8c45fSAndroid Build Coastguard Worker 289*38e8c45fSAndroid Build Coastguard Worker# Return the native panel primary data. The data includes red, green, 290*38e8c45fSAndroid Build Coastguard Worker# blue and white. The primary format is CIE 1931 XYZ color space. 291*38e8c45fSAndroid Build Coastguard Worker# If unspecified, the primaries is sRGB gamut by default. 292*38e8c45fSAndroid Build Coastguard Worker 293*38e8c45fSAndroid Build Coastguard Workerprop { 294*38e8c45fSAndroid Build Coastguard Worker api_name: "display_primary_red" 295*38e8c45fSAndroid Build Coastguard Worker type: DoubleList 296*38e8c45fSAndroid Build Coastguard Worker scope: Public 297*38e8c45fSAndroid Build Coastguard Worker access: Readonly 298*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.display_primary_red" 299*38e8c45fSAndroid Build Coastguard Worker} 300*38e8c45fSAndroid Build Coastguard Worker 301*38e8c45fSAndroid Build Coastguard Workerprop { 302*38e8c45fSAndroid Build Coastguard Worker api_name: "display_primary_green" 303*38e8c45fSAndroid Build Coastguard Worker type: DoubleList 304*38e8c45fSAndroid Build Coastguard Worker scope: Public 305*38e8c45fSAndroid Build Coastguard Worker access: Readonly 306*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.display_primary_green" 307*38e8c45fSAndroid Build Coastguard Worker} 308*38e8c45fSAndroid Build Coastguard Worker 309*38e8c45fSAndroid Build Coastguard Workerprop { 310*38e8c45fSAndroid Build Coastguard Worker api_name: "display_primary_blue" 311*38e8c45fSAndroid Build Coastguard Worker type: DoubleList 312*38e8c45fSAndroid Build Coastguard Worker scope: Public 313*38e8c45fSAndroid Build Coastguard Worker access: Readonly 314*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.display_primary_blue" 315*38e8c45fSAndroid Build Coastguard Worker} 316*38e8c45fSAndroid Build Coastguard Worker 317*38e8c45fSAndroid Build Coastguard Workerprop { 318*38e8c45fSAndroid Build Coastguard Worker api_name: "display_primary_white" 319*38e8c45fSAndroid Build Coastguard Worker type: DoubleList 320*38e8c45fSAndroid Build Coastguard Worker scope: Public 321*38e8c45fSAndroid Build Coastguard Worker access: Readonly 322*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.display_primary_white" 323*38e8c45fSAndroid Build Coastguard Worker} 324*38e8c45fSAndroid Build Coastguard Worker 325*38e8c45fSAndroid Build Coastguard Worker# refreshRateSwitching indicates whether SurfaceFlinger should use refresh rate 326*38e8c45fSAndroid Build Coastguard Worker# switching on the device, e.g. to switch between 60 and 90 Hz. The settings 327*38e8c45fSAndroid Build Coastguard Worker# below that are related to refresh rate switching will only have an effect if 328*38e8c45fSAndroid Build Coastguard Worker# refresh_rate_switching is enabled. 329*38e8c45fSAndroid Build Coastguard Workerprop { 330*38e8c45fSAndroid Build Coastguard Worker api_name: "refresh_rate_switching" 331*38e8c45fSAndroid Build Coastguard Worker type: Boolean 332*38e8c45fSAndroid Build Coastguard Worker scope: Public 333*38e8c45fSAndroid Build Coastguard Worker access: Readonly 334*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.refresh_rate_switching" 335*38e8c45fSAndroid Build Coastguard Worker deprecated: true 336*38e8c45fSAndroid Build Coastguard Worker} 337*38e8c45fSAndroid Build Coastguard Worker 338*38e8c45fSAndroid Build Coastguard Workerprop { 339*38e8c45fSAndroid Build Coastguard Worker api_name: "set_idle_timer_ms" 340*38e8c45fSAndroid Build Coastguard Worker type: Integer 341*38e8c45fSAndroid Build Coastguard Worker scope: Public 342*38e8c45fSAndroid Build Coastguard Worker access: Readonly 343*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.set_idle_timer_ms" 344*38e8c45fSAndroid Build Coastguard Worker} 345*38e8c45fSAndroid Build Coastguard Worker 346*38e8c45fSAndroid Build Coastguard Worker# setTouchTimerMs indicates what is considered a timeout in milliseconds for Scheduler. 347*38e8c45fSAndroid Build Coastguard Worker# This value is used by the Scheduler to trigger touch inactivity callbacks that will switch the 348*38e8c45fSAndroid Build Coastguard Worker# display to a lower refresh rate. Setting this property to 0 means there is no timer. 349*38e8c45fSAndroid Build Coastguard Workerprop { 350*38e8c45fSAndroid Build Coastguard Worker api_name: "set_touch_timer_ms" 351*38e8c45fSAndroid Build Coastguard Worker type: Integer 352*38e8c45fSAndroid Build Coastguard Worker scope: Public 353*38e8c45fSAndroid Build Coastguard Worker access: Readonly 354*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.set_touch_timer_ms" 355*38e8c45fSAndroid Build Coastguard Worker} 356*38e8c45fSAndroid Build Coastguard Worker 357*38e8c45fSAndroid Build Coastguard Worker# setDisplayPowerTimerMs indicates what is considered a timeout in milliseconds for Scheduler. 358*38e8c45fSAndroid Build Coastguard Worker# This value is used by the Scheduler to trigger display power inactivity callbacks that will 359*38e8c45fSAndroid Build Coastguard Worker# keep the display in peak refresh rate as long as display power is not in normal mode. 360*38e8c45fSAndroid Build Coastguard Worker# Setting this property to 0 means there is no timer. 361*38e8c45fSAndroid Build Coastguard Workerprop { 362*38e8c45fSAndroid Build Coastguard Worker api_name: "set_display_power_timer_ms" 363*38e8c45fSAndroid Build Coastguard Worker type: Integer 364*38e8c45fSAndroid Build Coastguard Worker scope: Public 365*38e8c45fSAndroid Build Coastguard Worker access: Readonly 366*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.set_display_power_timer_ms" 367*38e8c45fSAndroid Build Coastguard Worker} 368*38e8c45fSAndroid Build Coastguard Worker 369*38e8c45fSAndroid Build Coastguard Worker# useContentDetectionForRefreshRate indicates whether Scheduler should detect content FPS, and try 370*38e8c45fSAndroid Build Coastguard Worker# to adjust the screen refresh rate based on that. 371*38e8c45fSAndroid Build Coastguard Workerprop { 372*38e8c45fSAndroid Build Coastguard Worker api_name: "use_content_detection_for_refresh_rate" 373*38e8c45fSAndroid Build Coastguard Worker type: Boolean 374*38e8c45fSAndroid Build Coastguard Worker scope: Public 375*38e8c45fSAndroid Build Coastguard Worker access: Readonly 376*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.use_content_detection_for_refresh_rate" 377*38e8c45fSAndroid Build Coastguard Worker} 378*38e8c45fSAndroid Build Coastguard Worker 379*38e8c45fSAndroid Build Coastguard Worker# useSmart90ForVideo indicates whether Scheduler should detect content FPS, and try to adjust the 380*38e8c45fSAndroid Build Coastguard Worker# screen refresh rate based on that. 381*38e8c45fSAndroid Build Coastguard Worker# Replaced by useContentDetectionForRefreshRate 382*38e8c45fSAndroid Build Coastguard Workerprop { 383*38e8c45fSAndroid Build Coastguard Worker api_name: "use_smart_90_for_video" 384*38e8c45fSAndroid Build Coastguard Worker type: Boolean 385*38e8c45fSAndroid Build Coastguard Worker scope: Public 386*38e8c45fSAndroid Build Coastguard Worker access: Readonly 387*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.use_smart_90_for_video" 388*38e8c45fSAndroid Build Coastguard Worker deprecated: true 389*38e8c45fSAndroid Build Coastguard Worker} 390*38e8c45fSAndroid Build Coastguard Worker 391*38e8c45fSAndroid Build Coastguard Workerprop { 392*38e8c45fSAndroid Build Coastguard Worker api_name: "enable_protected_contents" 393*38e8c45fSAndroid Build Coastguard Worker type: Boolean 394*38e8c45fSAndroid Build Coastguard Worker scope: Public 395*38e8c45fSAndroid Build Coastguard Worker access: Readonly 396*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.protected_contents" 397*38e8c45fSAndroid Build Coastguard Worker} 398*38e8c45fSAndroid Build Coastguard Worker 399*38e8c45fSAndroid Build Coastguard Worker# Indicates whether Scheduler's idle timer should support a display driver timeout in the kernel. 400*38e8c45fSAndroid Build Coastguard Worker# The value of set_idle_timer_ms should be shorter in time than the timeout duration in the kernel. 401*38e8c45fSAndroid Build Coastguard Workerprop { 402*38e8c45fSAndroid Build Coastguard Worker api_name: "support_kernel_idle_timer" 403*38e8c45fSAndroid Build Coastguard Worker type: Boolean 404*38e8c45fSAndroid Build Coastguard Worker scope: Public 405*38e8c45fSAndroid Build Coastguard Worker access: Readonly 406*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.support_kernel_idle_timer" 407*38e8c45fSAndroid Build Coastguard Worker} 408*38e8c45fSAndroid Build Coastguard Worker 409*38e8c45fSAndroid Build Coastguard Worker# Indicates whether background blurs are supported. 410*38e8c45fSAndroid Build Coastguard Workerprop { 411*38e8c45fSAndroid Build Coastguard Worker api_name: "supports_background_blur" 412*38e8c45fSAndroid Build Coastguard Worker type: Boolean 413*38e8c45fSAndroid Build Coastguard Worker scope: Public 414*38e8c45fSAndroid Build Coastguard Worker access: Readonly 415*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.supports_background_blur" 416*38e8c45fSAndroid Build Coastguard Worker} 417*38e8c45fSAndroid Build Coastguard Worker 418*38e8c45fSAndroid Build Coastguard Worker# Sets the timeout used to rate limit DISPLAY_UPDATE_IMMINENT Power HAL notifications. 419*38e8c45fSAndroid Build Coastguard Worker# SurfaceFlinger wakeups will trigger this boost whenever they are separated by more than this 420*38e8c45fSAndroid Build Coastguard Worker# duration (specified in milliseconds). A value of 0 disables the rate limit, and will result in 421*38e8c45fSAndroid Build Coastguard Worker# Power HAL notifications every time SF wakes up. 422*38e8c45fSAndroid Build Coastguard Workerprop { 423*38e8c45fSAndroid Build Coastguard Worker api_name: "display_update_imminent_timeout_ms" 424*38e8c45fSAndroid Build Coastguard Worker type: Integer 425*38e8c45fSAndroid Build Coastguard Worker scope: Public 426*38e8c45fSAndroid Build Coastguard Worker access: Readonly 427*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.display_update_imminent_timeout_ms" 428*38e8c45fSAndroid Build Coastguard Worker} 429*38e8c45fSAndroid Build Coastguard Worker 430*38e8c45fSAndroid Build Coastguard Worker 431*38e8c45fSAndroid Build Coastguard Worker# Updates the DeviceProductInfo when a hoplug reconnect event is processed 432*38e8c45fSAndroid Build Coastguard Workerprop { 433*38e8c45fSAndroid Build Coastguard Worker api_name: "update_device_product_info_on_hotplug_reconnect" 434*38e8c45fSAndroid Build Coastguard Worker type: Boolean 435*38e8c45fSAndroid Build Coastguard Worker scope: Public 436*38e8c45fSAndroid Build Coastguard Worker access: Readonly 437*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.update_device_product_info_on_hotplug_reconnect" 438*38e8c45fSAndroid Build Coastguard Worker} 439*38e8c45fSAndroid Build Coastguard Worker 440*38e8c45fSAndroid Build Coastguard Worker# Enables the frame rate override feature 441*38e8c45fSAndroid Build Coastguard Workerprop { 442*38e8c45fSAndroid Build Coastguard Worker api_name: "enable_frame_rate_override" 443*38e8c45fSAndroid Build Coastguard Worker type: Boolean 444*38e8c45fSAndroid Build Coastguard Worker scope: Public 445*38e8c45fSAndroid Build Coastguard Worker access: Readonly 446*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.enable_frame_rate_override" 447*38e8c45fSAndroid Build Coastguard Worker} 448*38e8c45fSAndroid Build Coastguard Worker 449*38e8c45fSAndroid Build Coastguard Worker# Enables Layer Caching 450*38e8c45fSAndroid Build Coastguard Workerprop { 451*38e8c45fSAndroid Build Coastguard Worker api_name: "enable_layer_caching" 452*38e8c45fSAndroid Build Coastguard Worker type: Boolean 453*38e8c45fSAndroid Build Coastguard Worker scope: Public 454*38e8c45fSAndroid Build Coastguard Worker access: Readonly 455*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.enable_layer_caching" 456*38e8c45fSAndroid Build Coastguard Worker} 457*38e8c45fSAndroid Build Coastguard Worker 458*38e8c45fSAndroid Build Coastguard Worker# Enables SDR layer dimming 459*38e8c45fSAndroid Build Coastguard Workerprop { 460*38e8c45fSAndroid Build Coastguard Worker api_name: "enable_sdr_dimming" 461*38e8c45fSAndroid Build Coastguard Worker type: Boolean 462*38e8c45fSAndroid Build Coastguard Worker scope: Public 463*38e8c45fSAndroid Build Coastguard Worker access: Readonly 464*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.enable_sdr_dimming" 465*38e8c45fSAndroid Build Coastguard Worker} 466*38e8c45fSAndroid Build Coastguard Worker 467*38e8c45fSAndroid Build Coastguard Worker# Ignores Camera layers when calculating HDR coverage information 468*38e8c45fSAndroid Build Coastguard Workerprop { 469*38e8c45fSAndroid Build Coastguard Worker api_name: "ignore_hdr_camera_layers" 470*38e8c45fSAndroid Build Coastguard Worker type: Boolean 471*38e8c45fSAndroid Build Coastguard Worker scope: Public 472*38e8c45fSAndroid Build Coastguard Worker access: Readonly 473*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.ignore_hdr_camera_layers" 474*38e8c45fSAndroid Build Coastguard Worker} 475*38e8c45fSAndroid Build Coastguard Worker 476*38e8c45fSAndroid Build Coastguard Worker# Controls the minimum acquired buffers SurfaceFlinger will suggest via 477*38e8c45fSAndroid Build Coastguard Worker# ISurfaceComposer.getMaxAcquiredBufferCount(). 478*38e8c45fSAndroid Build Coastguard Workerprop { 479*38e8c45fSAndroid Build Coastguard Worker api_name: "min_acquired_buffers" 480*38e8c45fSAndroid Build Coastguard Worker type: Long 481*38e8c45fSAndroid Build Coastguard Worker scope: Public 482*38e8c45fSAndroid Build Coastguard Worker access: Readonly 483*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.min_acquired_buffers" 484*38e8c45fSAndroid Build Coastguard Worker} 485*38e8c45fSAndroid Build Coastguard Worker 486*38e8c45fSAndroid Build Coastguard Worker# When enabled, SurfaceFlinger will attempt to clear the per-layer HAL buffer cache slots for 487*38e8c45fSAndroid Build Coastguard Worker# buffers when they are evicted from the app cache by using additional setLayerBuffer commands. 488*38e8c45fSAndroid Build Coastguard Worker# Ideally, this behavior would always be enabled to reduce graphics memory consumption. However, 489*38e8c45fSAndroid Build Coastguard Worker# Some HAL implementations may not support the additional setLayerBuffer commands used to clear 490*38e8c45fSAndroid Build Coastguard Worker# the cache slots. 491*38e8c45fSAndroid Build Coastguard Workerprop { 492*38e8c45fSAndroid Build Coastguard Worker api_name: "clear_slots_with_set_layer_buffer" 493*38e8c45fSAndroid Build Coastguard Worker type: Boolean 494*38e8c45fSAndroid Build Coastguard Worker scope: Public 495*38e8c45fSAndroid Build Coastguard Worker access: Readonly 496*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.clear_slots_with_set_layer_buffer" 497*38e8c45fSAndroid Build Coastguard Worker} 498*38e8c45fSAndroid Build Coastguard Worker 499*38e8c45fSAndroid Build Coastguard Worker# Controls the default frame rate override of game applications. Ideally, game applications set 500*38e8c45fSAndroid Build Coastguard Worker# desired frame rate via setFrameRate() API. However, to cover the scenario when the game didn't 501*38e8c45fSAndroid Build Coastguard Worker# have a set frame rate, we introduce the default frame rate. The priority of this override is the 502*38e8c45fSAndroid Build Coastguard Worker# lowest among setFrameRate() and game intervention override. 503*38e8c45fSAndroid Build Coastguard Workerprop { 504*38e8c45fSAndroid Build Coastguard Worker api_name: "game_default_frame_rate_override" 505*38e8c45fSAndroid Build Coastguard Worker type: Integer 506*38e8c45fSAndroid Build Coastguard Worker scope: Public 507*38e8c45fSAndroid Build Coastguard Worker access: Readonly 508*38e8c45fSAndroid Build Coastguard Worker prop_name: "ro.surface_flinger.game_default_frame_rate_override" 509*38e8c45fSAndroid Build Coastguard Worker} 510