diff options
author | Rob Seymour <rseymour@google.com> | 2021-05-07 14:14:49 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-05-07 14:14:49 +0000 |
commit | 4ad8c00c6fa45ff89974e9b47ae0cca838b83b28 (patch) | |
tree | 69a0c5012bf3074997b8d45e745cb8c8a6c4e643 /libs/hwui/renderthread/RenderThread.cpp | |
parent | 6b0034671749cf740eab136547e9b8887471c41a (diff) | |
parent | fd9e5a71c30e3625a6096f412e200b598416260a (diff) |
Merge changes from topic "SP1A.210425.001" into s-keystone-qcom-dev
* changes:
Exposes framework-connectivity to vendor subpackages.
Add back framework-jarjar-rules filegroup to resolve build error
Merge SP1A.210425.001
Diffstat (limited to 'libs/hwui/renderthread/RenderThread.cpp')
-rw-r--r-- | libs/hwui/renderthread/RenderThread.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp index 79b938841bc2..04aa1cb91492 100644 --- a/libs/hwui/renderthread/RenderThread.cpp +++ b/libs/hwui/renderthread/RenderThread.cpp @@ -54,6 +54,10 @@ static JVMAttachHook gOnStartHook = nullptr; ASurfaceControlFunctions::ASurfaceControlFunctions() { void* handle_ = dlopen("libandroid.so", RTLD_NOW | RTLD_NODELETE); + createFunc = (ASC_create)dlsym(handle_, "ASurfaceControl_create"); + LOG_ALWAYS_FATAL_IF(createFunc == nullptr, + "Failed to find required symbol ASurfaceControl_create!"); + acquireFunc = (ASC_acquire) dlsym(handle_, "ASurfaceControl_acquire"); LOG_ALWAYS_FATAL_IF(acquireFunc == nullptr, "Failed to find required symbol ASurfaceControl_acquire!"); @@ -81,15 +85,33 @@ ASurfaceControlFunctions::ASurfaceControlFunctions() { "ASurfaceControlStats_getFrameNumber"); LOG_ALWAYS_FATAL_IF(getFrameNumberFunc == nullptr, "Failed to find required symbol ASurfaceControlStats_getFrameNumber!"); + + transactionCreateFunc = (AST_create)dlsym(handle_, "ASurfaceTransaction_create"); + LOG_ALWAYS_FATAL_IF(transactionCreateFunc == nullptr, + "Failed to find required symbol ASurfaceTransaction_create!"); + + transactionDeleteFunc = (AST_delete)dlsym(handle_, "ASurfaceTransaction_delete"); + LOG_ALWAYS_FATAL_IF(transactionDeleteFunc == nullptr, + "Failed to find required symbol ASurfaceTransaction_delete!"); + + transactionApplyFunc = (AST_apply)dlsym(handle_, "ASurfaceTransaction_apply"); + LOG_ALWAYS_FATAL_IF(transactionApplyFunc == nullptr, + "Failed to find required symbol ASurfaceTransaction_apply!"); + + transactionSetVisibilityFunc = + (AST_setVisibility)dlsym(handle_, "ASurfaceTransaction_setVisibility"); + LOG_ALWAYS_FATAL_IF(transactionSetVisibilityFunc == nullptr, + "Failed to find required symbol ASurfaceTransaction_setVisibility!"); } void RenderThread::frameCallback(int64_t frameTimeNanos, void* data) { RenderThread* rt = reinterpret_cast<RenderThread*>(data); int64_t vsyncId = AChoreographer_getVsyncId(rt->mChoreographer); int64_t frameDeadline = AChoreographer_getFrameDeadline(rt->mChoreographer); + int64_t frameInterval = AChoreographer_getFrameInterval(rt->mChoreographer); rt->mVsyncRequested = false; - if (rt->timeLord().vsyncReceived(frameTimeNanos, frameTimeNanos, vsyncId, frameDeadline) && - !rt->mFrameCallbackTaskPending) { + if (rt->timeLord().vsyncReceived(frameTimeNanos, frameTimeNanos, vsyncId, frameDeadline, + frameInterval) && !rt->mFrameCallbackTaskPending) { ATRACE_NAME("queue mFrameCallbackTask"); rt->mFrameCallbackTaskPending = true; nsecs_t runAt = (frameTimeNanos + rt->mDispatchFrameDelay); |