summaryrefslogtreecommitdiff
path: root/libs/nativewindow/ANativeWindow.cpp
diff options
context:
space:
mode:
author Alec Mouri <alecmouri@google.com> 2019-08-31 01:54:33 -0700
committer Alec Mouri <alecmouri@google.com> 2019-09-06 11:43:42 -0700
commit72670c57aa1a158ab05055d65a618307d57bf154 (patch)
tree2a4e3920ca714494356be0451188641cc0c9d54f /libs/nativewindow/ANativeWindow.cpp
parent04fdb60d01038d4d1e82b4c71f9bd3e9c74cb031 (diff)
[ANativeWindow] Increase precision for duration queries.
Use perform() instead in query() to retrieve dequeue/queue durations for nanosecond resolution. Bug: 137012798 Test: atest Change-Id: I894a8784f3321d4ab6f538d7e7fc1457de26f289
Diffstat (limited to 'libs/nativewindow/ANativeWindow.cpp')
-rw-r--r--libs/nativewindow/ANativeWindow.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/libs/nativewindow/ANativeWindow.cpp b/libs/nativewindow/ANativeWindow.cpp
index fecfa193df..0ba01f4da4 100644
--- a/libs/nativewindow/ANativeWindow.cpp
+++ b/libs/nativewindow/ANativeWindow.cpp
@@ -33,6 +33,12 @@ static int32_t query(ANativeWindow* window, int what) {
return res < 0 ? res : value;
}
+static int64_t query64(ANativeWindow* window, int what) {
+ int64_t value;
+ int res = window->perform(window, what, &value);
+ return res < 0 ? res : value;
+}
+
static bool isDataSpaceValid(ANativeWindow* window, int32_t dataSpace) {
bool supported = false;
switch (dataSpace) {
@@ -271,18 +277,16 @@ int ANativeWindow_setAutoPrerotation(ANativeWindow* window, bool autoPrerotation
* apex-stable
**************************************************************************************************/
-int ANativeWindow_getLastDequeueDuration(ANativeWindow* window) {
- return query(window, NATIVE_WINDOW_LAST_DEQUEUE_DURATION);
+int64_t ANativeWindow_getLastDequeueDuration(ANativeWindow* window) {
+ return query64(window, NATIVE_WINDOW_GET_LAST_DEQUEUE_DURATION);
}
-int ANativeWindow_getLastQueueDuration(ANativeWindow* window) {
- return query(window, NATIVE_WINDOW_LAST_QUEUE_DURATION);
+int64_t ANativeWindow_getLastQueueDuration(ANativeWindow* window) {
+ return query64(window, NATIVE_WINDOW_GET_LAST_QUEUE_DURATION);
}
int64_t ANativeWindow_getLastDequeueStartTime(ANativeWindow* window) {
- int64_t time;
- int success = window->perform(window, NATIVE_WINDOW_GET_LAST_DEQUEUE_START, &time);
- return success < 0 ? success : time;
+ return query64(window, NATIVE_WINDOW_GET_LAST_DEQUEUE_START);
}
int ANativeWindow_setDequeueTimeout(ANativeWindow* window, int64_t timeout) {