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()231 inline bool add_sf_skipped_frames_to_trace() {
232     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADD_SF_SKIPPED_FRAMES_TO_TRACE;
233 }
adpf_fmq_sf()234 inline bool adpf_fmq_sf() {
235     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ADPF_FMQ_SF;
236 }
adpf_gpu_sf()237 inline bool adpf_gpu_sf() {
238     return true;
239 }
adpf_native_session_manager()240 inline bool adpf_native_session_manager() {
241     return false;
242 }
allow_n_vsyncs_in_targeter()243 inline bool allow_n_vsyncs_in_targeter() {
244     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ALLOW_N_VSYNCS_IN_TARGETER;
245 }
arr_setframerate_api()246 inline bool arr_setframerate_api() {
247     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_API;
248 }
arr_setframerate_gte_enum()249 inline bool arr_setframerate_gte_enum() {
250     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SETFRAMERATE_GTE_ENUM;
251 }
arr_surfacecontrol_setframerate_api()252 inline bool arr_surfacecontrol_setframerate_api() {
253     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ARR_SURFACECONTROL_SETFRAMERATE_API;
254 }
begone_bright_hlg()255 inline bool begone_bright_hlg() {
256     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_BEGONE_BRIGHT_HLG;
257 }
cache_when_source_crop_layer_only_moved()258 inline 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()261 inline bool ce_fence_promise() {
262     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CE_FENCE_PROMISE;
263 }
commit_not_composited()264 inline bool commit_not_composited() {
265     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_COMMIT_NOT_COMPOSITED;
266 }
connected_display()267 inline bool connected_display() {
268     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY;
269 }
connected_display_hdr()270 inline bool connected_display_hdr() {
271     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CONNECTED_DISPLAY_HDR;
272 }
correct_dpi_with_display_size()273 inline bool correct_dpi_with_display_size() {
274     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_CORRECT_DPI_WITH_DISPLAY_SIZE;
275 }
deprecate_frame_tracker()276 inline bool deprecate_frame_tracker() {
277     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_FRAME_TRACKER;
278 }
deprecate_vsync_sf()279 inline bool deprecate_vsync_sf() {
280     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DEPRECATE_VSYNC_SF;
281 }
detached_mirror()282 inline bool detached_mirror() {
283     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DETACHED_MIRROR;
284 }
display_config_error_hal()285 inline bool display_config_error_hal() {
286     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_CONFIG_ERROR_HAL;
287 }
display_protected()288 inline bool display_protected() {
289     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DISPLAY_PROTECTED;
290 }
dont_skip_on_early_ro()291 inline bool dont_skip_on_early_ro() {
292     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_DONT_SKIP_ON_EARLY_RO;
293 }
enable_fro_dependent_features()294 inline bool enable_fro_dependent_features() {
295     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_FRO_DEPENDENT_FEATURES;
296 }
enable_layer_command_batching()297 inline bool enable_layer_command_batching() {
298     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_LAYER_COMMAND_BATCHING;
299 }
enable_small_area_detection()300 inline bool enable_small_area_detection() {
301     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_ENABLE_SMALL_AREA_DETECTION;
302 }
filter_frames_before_trace_starts()303 inline bool filter_frames_before_trace_starts() {
304     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FILTER_FRAMES_BEFORE_TRACE_STARTS;
305 }
flush_buffer_slots_to_uncache()306 inline bool flush_buffer_slots_to_uncache() {
307     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FLUSH_BUFFER_SLOTS_TO_UNCACHE;
308 }
force_compile_graphite_renderengine()309 inline bool force_compile_graphite_renderengine() {
310     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FORCE_COMPILE_GRAPHITE_RENDERENGINE;
311 }
fp16_client_target()312 inline bool fp16_client_target() {
313     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FP16_CLIENT_TARGET;
314 }
frame_rate_category_mrr()315 inline bool frame_rate_category_mrr() {
316     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FRAME_RATE_CATEGORY_MRR;
317 }
game_default_frame_rate()318 inline bool game_default_frame_rate() {
319     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GAME_DEFAULT_FRAME_RATE;
320 }
graphite_renderengine()321 inline bool graphite_renderengine() {
322     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GRAPHITE_RENDERENGINE;
323 }
graphite_renderengine_preview_rollout()324 inline bool graphite_renderengine_preview_rollout() {
325     return false;
326 }
hdcp_level_hal()327 inline bool hdcp_level_hal() {
328     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HDCP_LEVEL_HAL;
329 }
hotplug2()330 inline bool hotplug2() {
331     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_HOTPLUG2;
332 }
latch_unsignaled_with_auto_refresh_changed()333 inline bool latch_unsignaled_with_auto_refresh_changed() {
334     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LATCH_UNSIGNALED_WITH_AUTO_REFRESH_CHANGED;
335 }
local_tonemap_screenshots()336 inline bool local_tonemap_screenshots() {
337     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_LOCAL_TONEMAP_SCREENSHOTS;
338 }
misc1()339 inline bool misc1() {
340     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MISC1;
341 }
multithreaded_present()342 inline bool multithreaded_present() {
343     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_MULTITHREADED_PRESENT;
344 }
no_vsyncs_on_screen_off()345 inline bool no_vsyncs_on_screen_off() {
346     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_NO_VSYNCS_ON_SCREEN_OFF;
347 }
override_trusted_overlay()348 inline bool override_trusted_overlay() {
349     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_OVERRIDE_TRUSTED_OVERLAY;
350 }
protected_if_client()351 inline bool protected_if_client() {
352     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_PROTECTED_IF_CLIENT;
353 }
refresh_rate_overlay_on_external_display()354 inline bool refresh_rate_overlay_on_external_display() {
355     return false;
356 }
renderable_buffer_usage()357 inline bool renderable_buffer_usage() {
358     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RENDERABLE_BUFFER_USAGE;
359 }
restore_blur_step()360 inline bool restore_blur_step() {
361     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_RESTORE_BLUR_STEP;
362 }
screenshot_fence_preservation()363 inline bool screenshot_fence_preservation() {
364     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SCREENSHOT_FENCE_PRESERVATION;
365 }
single_hop_screenshot()366 inline bool single_hop_screenshot() {
367     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SINGLE_HOP_SCREENSHOT;
368 }
skip_invisible_windows_in_input()369 inline bool skip_invisible_windows_in_input() {
370     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_SKIP_INVISIBLE_WINDOWS_IN_INPUT;
371 }
stable_edid_ids()372 inline bool stable_edid_ids() {
373     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_STABLE_EDID_IDS;
374 }
true_hdr_screenshots()375 inline bool true_hdr_screenshots() {
376     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_TRUE_HDR_SCREENSHOTS;
377 }
use_known_refresh_rate_for_fps_consistency()378 inline 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()381 inline bool view_set_requested_frame_rate_mrr() {
382     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VIEW_SET_REQUESTED_FRAME_RATE_MRR;
383 }
vrr_bugfix_24q4()384 inline bool vrr_bugfix_24q4() {
385     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_24Q4;
386 }
vrr_bugfix_dropped_frame()387 inline bool vrr_bugfix_dropped_frame() {
388     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_BUGFIX_DROPPED_FRAME;
389 }
vrr_config()390 inline bool vrr_config() {
391     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VRR_CONFIG;
392 }
vulkan_renderengine()393 inline bool vulkan_renderengine() {
394     return COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_VULKAN_RENDERENGINE;
395 }
window_blur_kawase2()396 inline 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