1 #pragma once 2 3 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS 4 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS(FLAG) COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_##FLAG 5 #endif 6 7 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADD_SF_SKIPPED_FRAMES_TO_TRACE 8 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADD_SF_SKIPPED_FRAMES_TO_TRACE true 9 #endif 10 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADPF_FMQ_SF 11 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADPF_FMQ_SF false 12 #endif 13 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ALLOW_N_VSYNCS_IN_TARGETER 14 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ALLOW_N_VSYNCS_IN_TARGETER true 15 #endif 16 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_API 17 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_API false 18 #endif 19 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_GTE_ENUM 20 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_GTE_ENUM false 21 #endif 22 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SURFACECONTROL_SETFRAMERATE_API 23 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SURFACECONTROL_SETFRAMERATE_API false 24 #endif 25 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_BEGONE_BRIGHT_HLG 26 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_BEGONE_BRIGHT_HLG false 27 #endif 28 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CACHE_WHEN_SOURCE_CROP_LAYER_ONLY_MOVED 29 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CACHE_WHEN_SOURCE_CROP_LAYER_ONLY_MOVED false 30 #endif 31 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CE_FENCE_PROMISE 32 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CE_FENCE_PROMISE true 33 #endif 34 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_COMMIT_NOT_COMPOSITED 35 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_COMMIT_NOT_COMPOSITED true 36 #endif 37 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY 38 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY true 39 #endif 40 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY_HDR 41 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY_HDR false 42 #endif 43 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CORRECT_DPI_WITH_DISPLAY_SIZE 44 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CORRECT_DPI_WITH_DISPLAY_SIZE true 45 #endif 46 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_FRAME_TRACKER 47 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_FRAME_TRACKER false 48 #endif 49 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_VSYNC_SF 50 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_VSYNC_SF false 51 #endif 52 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DETACHED_MIRROR 53 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DETACHED_MIRROR true 54 #endif 55 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_CONFIG_ERROR_HAL 56 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_CONFIG_ERROR_HAL false 57 #endif 58 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_PROTECTED 59 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_PROTECTED true 60 #endif 61 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DONT_SKIP_ON_EARLY_RO 62 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DONT_SKIP_ON_EARLY_RO true 63 #endif 64 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_FRO_DEPENDENT_FEATURES 65 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_FRO_DEPENDENT_FEATURES true 66 #endif 67 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_LAYER_COMMAND_BATCHING 68 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_LAYER_COMMAND_BATCHING true 69 #endif 70 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_SMALL_AREA_DETECTION 71 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_SMALL_AREA_DETECTION true 72 #endif 73 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FILTER_FRAMES_BEFORE_TRACE_STARTS 74 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FILTER_FRAMES_BEFORE_TRACE_STARTS true 75 #endif 76 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FLUSH_BUFFER_SLOTS_TO_UNCACHE 77 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FLUSH_BUFFER_SLOTS_TO_UNCACHE true 78 #endif 79 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FORCE_COMPILE_GRAPHITE_RENDERENGINE 80 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FORCE_COMPILE_GRAPHITE_RENDERENGINE false 81 #endif 82 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FP16_CLIENT_TARGET 83 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FP16_CLIENT_TARGET false 84 #endif 85 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FRAME_RATE_CATEGORY_MRR 86 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FRAME_RATE_CATEGORY_MRR false 87 #endif 88 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GAME_DEFAULT_FRAME_RATE 89 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GAME_DEFAULT_FRAME_RATE true 90 #endif 91 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GRAPHITE_RENDERENGINE 92 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GRAPHITE_RENDERENGINE false 93 #endif 94 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HDCP_LEVEL_HAL 95 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HDCP_LEVEL_HAL false 96 #endif 97 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HOTPLUG2 98 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HOTPLUG2 true 99 #endif 100 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LATCH_UNSIGNALED_WITH_AUTO_REFRESH_CHANGED 101 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LATCH_UNSIGNALED_WITH_AUTO_REFRESH_CHANGED true 102 #endif 103 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LOCAL_TONEMAP_SCREENSHOTS 104 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LOCAL_TONEMAP_SCREENSHOTS true 105 #endif 106 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MISC1 107 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MISC1 true 108 #endif 109 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MULTITHREADED_PRESENT 110 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MULTITHREADED_PRESENT true 111 #endif 112 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_NO_VSYNCS_ON_SCREEN_OFF 113 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_NO_VSYNCS_ON_SCREEN_OFF false 114 #endif 115 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_OVERRIDE_TRUSTED_OVERLAY 116 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_OVERRIDE_TRUSTED_OVERLAY true 117 #endif 118 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_PROTECTED_IF_CLIENT 119 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_PROTECTED_IF_CLIENT true 120 #endif 121 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RENDERABLE_BUFFER_USAGE 122 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RENDERABLE_BUFFER_USAGE false 123 #endif 124 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RESTORE_BLUR_STEP 125 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RESTORE_BLUR_STEP true 126 #endif 127 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SCREENSHOT_FENCE_PRESERVATION 128 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SCREENSHOT_FENCE_PRESERVATION true 129 #endif 130 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SINGLE_HOP_SCREENSHOT 131 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SINGLE_HOP_SCREENSHOT true 132 #endif 133 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SKIP_INVISIBLE_WINDOWS_IN_INPUT 134 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SKIP_INVISIBLE_WINDOWS_IN_INPUT false 135 #endif 136 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_STABLE_EDID_IDS 137 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_STABLE_EDID_IDS false 138 #endif 139 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_TRUE_HDR_SCREENSHOTS 140 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_TRUE_HDR_SCREENSHOTS false 141 #endif 142 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_USE_KNOWN_REFRESH_RATE_FOR_FPS_CONSISTENCY 143 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_USE_KNOWN_REFRESH_RATE_FOR_FPS_CONSISTENCY false 144 #endif 145 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VIEW_SET_REQUESTED_FRAME_RATE_MRR 146 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VIEW_SET_REQUESTED_FRAME_RATE_MRR false 147 #endif 148 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_24Q4 149 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_24Q4 true 150 #endif 151 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_DROPPED_FRAME 152 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_DROPPED_FRAME true 153 #endif 154 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_CONFIG 155 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_CONFIG true 156 #endif 157 #ifndef COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VULKAN_RENDERENGINE 158 #define COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VULKAN_RENDERENGINE false 159 #endif 160 161 #ifdef __cplusplus 162 163 #include <memory> 164 165 namespace com::android::graphics::surfaceflinger::flags { 166 167 class flag_provider_interface { 168 public: 169 virtual ~flag_provider_interface() = default; 170 virtual bool add_sf_skipped_frames_to_trace() = 0; 171 virtual bool adpf_fmq_sf() = 0; 172 virtual bool adpf_gpu_sf() = 0; 173 virtual bool adpf_native_session_manager() = 0; 174 virtual bool allow_n_vsyncs_in_targeter() = 0; 175 virtual bool arr_setframerate_api() = 0; 176 virtual bool arr_setframerate_gte_enum() = 0; 177 virtual bool arr_surfacecontrol_setframerate_api() = 0; 178 virtual bool begone_bright_hlg() = 0; 179 virtual bool cache_when_source_crop_layer_only_moved() = 0; 180 virtual bool ce_fence_promise() = 0; 181 virtual bool commit_not_composited() = 0; 182 virtual bool connected_display() = 0; 183 virtual bool connected_display_hdr() = 0; 184 virtual bool correct_dpi_with_display_size() = 0; 185 virtual bool deprecate_frame_tracker() = 0; 186 virtual bool deprecate_vsync_sf() = 0; 187 virtual bool detached_mirror() = 0; 188 virtual bool display_config_error_hal() = 0; 189 virtual bool display_protected() = 0; 190 virtual bool dont_skip_on_early_ro() = 0; 191 virtual bool enable_fro_dependent_features() = 0; 192 virtual bool enable_layer_command_batching() = 0; 193 virtual bool enable_small_area_detection() = 0; 194 virtual bool filter_frames_before_trace_starts() = 0; 195 virtual bool flush_buffer_slots_to_uncache() = 0; 196 virtual bool force_compile_graphite_renderengine() = 0; 197 virtual bool fp16_client_target() = 0; 198 virtual bool frame_rate_category_mrr() = 0; 199 virtual bool game_default_frame_rate() = 0; 200 virtual bool graphite_renderengine() = 0; 201 virtual bool graphite_renderengine_preview_rollout() = 0; 202 virtual bool hdcp_level_hal() = 0; 203 virtual bool hotplug2() = 0; 204 virtual bool latch_unsignaled_with_auto_refresh_changed() = 0; 205 virtual bool local_tonemap_screenshots() = 0; 206 virtual bool misc1() = 0; 207 virtual bool multithreaded_present() = 0; 208 virtual bool no_vsyncs_on_screen_off() = 0; 209 virtual bool override_trusted_overlay() = 0; 210 virtual bool protected_if_client() = 0; 211 virtual bool refresh_rate_overlay_on_external_display() = 0; 212 virtual bool renderable_buffer_usage() = 0; 213 virtual bool restore_blur_step() = 0; 214 virtual bool screenshot_fence_preservation() = 0; 215 virtual bool single_hop_screenshot() = 0; 216 virtual bool skip_invisible_windows_in_input() = 0; 217 virtual bool stable_edid_ids() = 0; 218 virtual bool true_hdr_screenshots() = 0; 219 virtual bool use_known_refresh_rate_for_fps_consistency() = 0; 220 virtual bool view_set_requested_frame_rate_mrr() = 0; 221 virtual bool vrr_bugfix_24q4() = 0; 222 virtual bool vrr_bugfix_dropped_frame() = 0; 223 virtual bool vrr_config() = 0; 224 virtual bool vulkan_renderengine() = 0; 225 virtual bool window_blur_kawase2() = 0; 226 }; 227 228 extern std::unique_ptr<flag_provider_interface> provider_; 229 230 add_sf_skipped_frames_to_trace()231inline bool add_sf_skipped_frames_to_trace() { 232 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADD_SF_SKIPPED_FRAMES_TO_TRACE; 233 } adpf_fmq_sf()234inline bool adpf_fmq_sf() { 235 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADPF_FMQ_SF; 236 } adpf_gpu_sf()237inline bool adpf_gpu_sf() { 238 return true; 239 } adpf_native_session_manager()240inline bool adpf_native_session_manager() { 241 return false; 242 } allow_n_vsyncs_in_targeter()243inline bool allow_n_vsyncs_in_targeter() { 244 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ALLOW_N_VSYNCS_IN_TARGETER; 245 } arr_setframerate_api()246inline bool arr_setframerate_api() { 247 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_API; 248 } arr_setframerate_gte_enum()249inline bool arr_setframerate_gte_enum() { 250 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_GTE_ENUM; 251 } arr_surfacecontrol_setframerate_api()252inline bool arr_surfacecontrol_setframerate_api() { 253 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SURFACECONTROL_SETFRAMERATE_API; 254 } begone_bright_hlg()255inline bool begone_bright_hlg() { 256 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_BEGONE_BRIGHT_HLG; 257 } cache_when_source_crop_layer_only_moved()258inline bool cache_when_source_crop_layer_only_moved() { 259 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CACHE_WHEN_SOURCE_CROP_LAYER_ONLY_MOVED; 260 } ce_fence_promise()261inline bool ce_fence_promise() { 262 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CE_FENCE_PROMISE; 263 } commit_not_composited()264inline bool commit_not_composited() { 265 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_COMMIT_NOT_COMPOSITED; 266 } connected_display()267inline bool connected_display() { 268 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY; 269 } connected_display_hdr()270inline bool connected_display_hdr() { 271 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY_HDR; 272 } correct_dpi_with_display_size()273inline bool correct_dpi_with_display_size() { 274 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CORRECT_DPI_WITH_DISPLAY_SIZE; 275 } deprecate_frame_tracker()276inline bool deprecate_frame_tracker() { 277 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_FRAME_TRACKER; 278 } deprecate_vsync_sf()279inline bool deprecate_vsync_sf() { 280 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_VSYNC_SF; 281 } detached_mirror()282inline bool detached_mirror() { 283 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DETACHED_MIRROR; 284 } display_config_error_hal()285inline bool display_config_error_hal() { 286 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_CONFIG_ERROR_HAL; 287 } display_protected()288inline bool display_protected() { 289 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_PROTECTED; 290 } dont_skip_on_early_ro()291inline bool dont_skip_on_early_ro() { 292 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DONT_SKIP_ON_EARLY_RO; 293 } enable_fro_dependent_features()294inline bool enable_fro_dependent_features() { 295 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_FRO_DEPENDENT_FEATURES; 296 } enable_layer_command_batching()297inline bool enable_layer_command_batching() { 298 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_LAYER_COMMAND_BATCHING; 299 } enable_small_area_detection()300inline bool enable_small_area_detection() { 301 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_SMALL_AREA_DETECTION; 302 } filter_frames_before_trace_starts()303inline bool filter_frames_before_trace_starts() { 304 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FILTER_FRAMES_BEFORE_TRACE_STARTS; 305 } flush_buffer_slots_to_uncache()306inline bool flush_buffer_slots_to_uncache() { 307 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FLUSH_BUFFER_SLOTS_TO_UNCACHE; 308 } force_compile_graphite_renderengine()309inline bool force_compile_graphite_renderengine() { 310 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FORCE_COMPILE_GRAPHITE_RENDERENGINE; 311 } fp16_client_target()312inline bool fp16_client_target() { 313 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FP16_CLIENT_TARGET; 314 } frame_rate_category_mrr()315inline bool frame_rate_category_mrr() { 316 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FRAME_RATE_CATEGORY_MRR; 317 } game_default_frame_rate()318inline bool game_default_frame_rate() { 319 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GAME_DEFAULT_FRAME_RATE; 320 } graphite_renderengine()321inline bool graphite_renderengine() { 322 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GRAPHITE_RENDERENGINE; 323 } graphite_renderengine_preview_rollout()324inline bool graphite_renderengine_preview_rollout() { 325 return false; 326 } hdcp_level_hal()327inline bool hdcp_level_hal() { 328 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HDCP_LEVEL_HAL; 329 } hotplug2()330inline bool hotplug2() { 331 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HOTPLUG2; 332 } latch_unsignaled_with_auto_refresh_changed()333inline bool latch_unsignaled_with_auto_refresh_changed() { 334 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LATCH_UNSIGNALED_WITH_AUTO_REFRESH_CHANGED; 335 } local_tonemap_screenshots()336inline bool local_tonemap_screenshots() { 337 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LOCAL_TONEMAP_SCREENSHOTS; 338 } misc1()339inline bool misc1() { 340 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MISC1; 341 } multithreaded_present()342inline bool multithreaded_present() { 343 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MULTITHREADED_PRESENT; 344 } no_vsyncs_on_screen_off()345inline bool no_vsyncs_on_screen_off() { 346 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_NO_VSYNCS_ON_SCREEN_OFF; 347 } override_trusted_overlay()348inline bool override_trusted_overlay() { 349 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_OVERRIDE_TRUSTED_OVERLAY; 350 } protected_if_client()351inline bool protected_if_client() { 352 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_PROTECTED_IF_CLIENT; 353 } refresh_rate_overlay_on_external_display()354inline bool refresh_rate_overlay_on_external_display() { 355 return false; 356 } renderable_buffer_usage()357inline bool renderable_buffer_usage() { 358 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RENDERABLE_BUFFER_USAGE; 359 } restore_blur_step()360inline bool restore_blur_step() { 361 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RESTORE_BLUR_STEP; 362 } screenshot_fence_preservation()363inline bool screenshot_fence_preservation() { 364 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SCREENSHOT_FENCE_PRESERVATION; 365 } single_hop_screenshot()366inline bool single_hop_screenshot() { 367 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SINGLE_HOP_SCREENSHOT; 368 } skip_invisible_windows_in_input()369inline bool skip_invisible_windows_in_input() { 370 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SKIP_INVISIBLE_WINDOWS_IN_INPUT; 371 } stable_edid_ids()372inline bool stable_edid_ids() { 373 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_STABLE_EDID_IDS; 374 } true_hdr_screenshots()375inline bool true_hdr_screenshots() { 376 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_TRUE_HDR_SCREENSHOTS; 377 } use_known_refresh_rate_for_fps_consistency()378inline bool use_known_refresh_rate_for_fps_consistency() { 379 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_USE_KNOWN_REFRESH_RATE_FOR_FPS_CONSISTENCY; 380 } view_set_requested_frame_rate_mrr()381inline bool view_set_requested_frame_rate_mrr() { 382 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VIEW_SET_REQUESTED_FRAME_RATE_MRR; 383 } vrr_bugfix_24q4()384inline bool vrr_bugfix_24q4() { 385 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_24Q4; 386 } vrr_bugfix_dropped_frame()387inline bool vrr_bugfix_dropped_frame() { 388 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_DROPPED_FRAME; 389 } vrr_config()390inline bool vrr_config() { 391 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_CONFIG; 392 } vulkan_renderengine()393inline bool vulkan_renderengine() { 394 return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VULKAN_RENDERENGINE; 395 } window_blur_kawase2()396inline bool window_blur_kawase2() { 397 return false; 398 } 399 400 } 401 402 extern "C" { 403 #endif // __cplusplus 404 405 406 bool com_android_graphics_surfaceflinger_flags_add_sf_skipped_frames_to_trace(); 407 bool com_android_graphics_surfaceflinger_flags_adpf_fmq_sf(); 408 bool com_android_graphics_surfaceflinger_flags_adpf_gpu_sf(); 409 bool com_android_graphics_surfaceflinger_flags_adpf_native_session_manager(); 410 bool com_android_graphics_surfaceflinger_flags_allow_n_vsyncs_in_targeter(); 411 bool com_android_graphics_surfaceflinger_flags_arr_setframerate_api(); 412 bool com_android_graphics_surfaceflinger_flags_arr_setframerate_gte_enum(); 413 bool com_android_graphics_surfaceflinger_flags_arr_surfacecontrol_setframerate_api(); 414 bool com_android_graphics_surfaceflinger_flags_begone_bright_hlg(); 415 bool com_android_graphics_surfaceflinger_flags_cache_when_source_crop_layer_only_moved(); 416 bool com_android_graphics_surfaceflinger_flags_ce_fence_promise(); 417 bool com_android_graphics_surfaceflinger_flags_commit_not_composited(); 418 bool com_android_graphics_surfaceflinger_flags_connected_display(); 419 bool com_android_graphics_surfaceflinger_flags_connected_display_hdr(); 420 bool com_android_graphics_surfaceflinger_flags_correct_dpi_with_display_size(); 421 bool com_android_graphics_surfaceflinger_flags_deprecate_frame_tracker(); 422 bool com_android_graphics_surfaceflinger_flags_deprecate_vsync_sf(); 423 bool com_android_graphics_surfaceflinger_flags_detached_mirror(); 424 bool com_android_graphics_surfaceflinger_flags_display_config_error_hal(); 425 bool com_android_graphics_surfaceflinger_flags_display_protected(); 426 bool com_android_graphics_surfaceflinger_flags_dont_skip_on_early_ro(); 427 bool com_android_graphics_surfaceflinger_flags_enable_fro_dependent_features(); 428 bool com_android_graphics_surfaceflinger_flags_enable_layer_command_batching(); 429 bool com_android_graphics_surfaceflinger_flags_enable_small_area_detection(); 430 bool com_android_graphics_surfaceflinger_flags_filter_frames_before_trace_starts(); 431 bool com_android_graphics_surfaceflinger_flags_flush_buffer_slots_to_uncache(); 432 bool com_android_graphics_surfaceflinger_flags_force_compile_graphite_renderengine(); 433 bool com_android_graphics_surfaceflinger_flags_fp16_client_target(); 434 bool com_android_graphics_surfaceflinger_flags_frame_rate_category_mrr(); 435 bool com_android_graphics_surfaceflinger_flags_game_default_frame_rate(); 436 bool com_android_graphics_surfaceflinger_flags_graphite_renderengine(); 437 bool com_android_graphics_surfaceflinger_flags_graphite_renderengine_preview_rollout(); 438 bool com_android_graphics_surfaceflinger_flags_hdcp_level_hal(); 439 bool com_android_graphics_surfaceflinger_flags_hotplug2(); 440 bool com_android_graphics_surfaceflinger_flags_latch_unsignaled_with_auto_refresh_changed(); 441 bool com_android_graphics_surfaceflinger_flags_local_tonemap_screenshots(); 442 bool com_android_graphics_surfaceflinger_flags_misc1(); 443 bool com_android_graphics_surfaceflinger_flags_multithreaded_present(); 444 bool com_android_graphics_surfaceflinger_flags_no_vsyncs_on_screen_off(); 445 bool com_android_graphics_surfaceflinger_flags_override_trusted_overlay(); 446 bool com_android_graphics_surfaceflinger_flags_protected_if_client(); 447 bool com_android_graphics_surfaceflinger_flags_refresh_rate_overlay_on_external_display(); 448 bool com_android_graphics_surfaceflinger_flags_renderable_buffer_usage(); 449 bool com_android_graphics_surfaceflinger_flags_restore_blur_step(); 450 bool com_android_graphics_surfaceflinger_flags_screenshot_fence_preservation(); 451 bool com_android_graphics_surfaceflinger_flags_single_hop_screenshot(); 452 bool com_android_graphics_surfaceflinger_flags_skip_invisible_windows_in_input(); 453 bool com_android_graphics_surfaceflinger_flags_stable_edid_ids(); 454 bool com_android_graphics_surfaceflinger_flags_true_hdr_screenshots(); 455 bool com_android_graphics_surfaceflinger_flags_use_known_refresh_rate_for_fps_consistency(); 456 bool com_android_graphics_surfaceflinger_flags_view_set_requested_frame_rate_mrr(); 457 bool com_android_graphics_surfaceflinger_flags_vrr_bugfix_24q4(); 458 bool com_android_graphics_surfaceflinger_flags_vrr_bugfix_dropped_frame(); 459 bool com_android_graphics_surfaceflinger_flags_vrr_config(); 460 bool com_android_graphics_surfaceflinger_flags_vulkan_renderengine(); 461 bool com_android_graphics_surfaceflinger_flags_window_blur_kawase2(); 462 463 #ifdef __cplusplus 464 } // extern "C" 465 #endif 466 467