blob: 4c1a5a64cb57f1bd4a7394d1255557cec875018d [file] [log] [blame]
Jiyong Park200825e2017-01-14 19:40:33 +09001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package android.hardware.configstore@1.0;
17
18interface ISurfaceFlingerConfigs {
Fabien Sanglardeebc9252017-03-06 11:46:36 -080019 /*
20 * The following two methods define (respectively):
21 *
22 * - The phase offset between hardware vsync and when apps are woken up by the
23 * Choreographer callback
24 * - The phase offset between hardware vsync and when SurfaceFlinger wakes up
25 * to consume input
26 *
27 * Their values may be tuned to trade off between display pipeline latency (both
28 * overall latency and the lengths of the app --> SF and SF --> display phases)
29 * and frame delivery jitter (which typically manifests as "jank" or "jerkiness"
30 * while interacting with the device). The default values must produce a
31 * relatively low amount of jitter at the expense of roughly two frames of
32 * app --> display latency, and unless significant testing is performed to avoid
33 * increased display jitter (both manual investigation using systrace [1] and
34 * automated testing using dumpsys gfxinfo [2] are recommended), they should not
35 * be modified.
36 *
37 * [1] https://developer.android.com/studio/profile/systrace.html
38 * [2] https://developer.android.com/training/testing/performance.html
39 */
Jiyong Park200825e2017-01-14 19:40:33 +090040 vsyncEventPhaseOffsetNs() generates (OptionalInt64 value);
Fabien Sanglardeebc9252017-03-06 11:46:36 -080041 vsyncSfEventPhaseOffsetNs() generates (OptionalInt64 value);
42
Jaesoo Leed643fc02017-01-23 19:09:02 +090043 useTripleFramebuffer() generates (OptionalBool value);
Fabien Sanglardcbece282017-03-13 13:03:04 -070044
45 /*
46 * Instruct the Render Engine to use EGL_IMG_context_priority hint if
47 * availabe.
48 */
49 useContextPriority() generates(OptionalBool value);
Jiyong Park200825e2017-01-14 19:40:33 +090050};