diff options
author | joenchen <joenchen@google.com> | 2022-11-29 15:58:44 +0000 |
---|---|---|
committer | joenchen <joenchen@google.com> | 2022-12-01 16:37:43 +0000 |
commit | acf0fe4dd6c5ea3e633b0e354d3c128c47baa04a (patch) | |
tree | 7db8267ed0e3ea71c74737d443e7ab770edf9ffc /hwc3/ComposerClient.cpp | |
parent | 4e4fb83bf22fdce683d0ba9044aaf18826f76be0 (diff) |
hwc3: Primary displays supports MULTI_THREADED_PRESENT
After primary displays supports this capability, SurfaceFlinger can run
executeCommands(presentDisplay) for this display concurrently with other
displays with the same capability.
Bug: 247074458
Test: switch applications
Change-Id: I55c4fe2d38f412f0e98b46502a99c90943cefbcc
Diffstat (limited to 'hwc3/ComposerClient.cpp')
-rw-r--r-- | hwc3/ComposerClient.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp index 7a3c72a..bb73686 100644 --- a/hwc3/ComposerClient.cpp +++ b/hwc3/ComposerClient.cpp @@ -170,6 +170,16 @@ ndk::ScopedAStatus ComposerClient::getDisplayCapabilities(int64_t display, caps->push_back(DisplayCapability::DISPLAY_IDLE_TIMER); } + err = mHal->getDisplayMultiThreadedPresentSupport(display, support); + if (err != ::android::OK) { + LOG(ERROR) << "failed to getDisplayMultiThreadedPresentSupport: " << err; + return TO_BINDER_STATUS(err); + } + + if (support) { + caps->push_back(DisplayCapability::MULTI_THREADED_PRESENT); + } + return TO_BINDER_STATUS(err); } |