summaryrefslogtreecommitdiff
path: root/hwc3/ComposerClient.cpp
diff options
context:
space:
mode:
authorjoenchen <joenchen@google.com>2022-11-29 15:58:44 +0000
committerjoenchen <joenchen@google.com>2022-12-01 16:37:43 +0000
commitacf0fe4dd6c5ea3e633b0e354d3c128c47baa04a (patch)
tree7db8267ed0e3ea71c74737d443e7ab770edf9ffc /hwc3/ComposerClient.cpp
parent4e4fb83bf22fdce683d0ba9044aaf18826f76be0 (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.cpp10
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);
}