blob: 4c1a5a64cb57f1bd4a7394d1255557cec875018d [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.configstore@1.0;
interface ISurfaceFlingerConfigs {
/*
* The following two methods define (respectively):
*
* - The phase offset between hardware vsync and when apps are woken up by the
* Choreographer callback
* - The phase offset between hardware vsync and when SurfaceFlinger wakes up
* to consume input
*
* Their values may be tuned to trade off between display pipeline latency (both
* overall latency and the lengths of the app --> SF and SF --> display phases)
* and frame delivery jitter (which typically manifests as "jank" or "jerkiness"
* while interacting with the device). The default values must produce a
* relatively low amount of jitter at the expense of roughly two frames of
* app --> display latency, and unless significant testing is performed to avoid
* increased display jitter (both manual investigation using systrace [1] and
* automated testing using dumpsys gfxinfo [2] are recommended), they should not
* be modified.
*
* [1] https://developer.android.com/studio/profile/systrace.html
* [2] https://developer.android.com/training/testing/performance.html
*/
vsyncEventPhaseOffsetNs() generates (OptionalInt64 value);
vsyncSfEventPhaseOffsetNs() generates (OptionalInt64 value);
useTripleFramebuffer() generates (OptionalBool value);
/*
* Instruct the Render Engine to use EGL_IMG_context_priority hint if
* availabe.
*/
useContextPriority() generates(OptionalBool value);
};