drm_hwcomposer: Simplify DrmAtomicStateManager thread usage
1. Remove PresentTracker class.
2. Use separate mutex for thread synchronization. Before, we have always
experienced rescheduling due to calling condvar::notify inside the
mutex, which consumes some number of CPU cycles.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
diff --git a/drm/DrmDisplayPipeline.h b/drm/DrmDisplayPipeline.h
index a3958e1..cf64a36 100644
--- a/drm/DrmDisplayPipeline.h
+++ b/drm/DrmDisplayPipeline.h
@@ -74,6 +74,8 @@
auto GetUsablePlanes()
-> std::vector<std::shared_ptr<BindingOwner<DrmPlane>>>;
+ ~DrmDisplayPipeline();
+
DrmDevice *device;
std::shared_ptr<BindingOwner<DrmConnector>> connector;
@@ -81,7 +83,7 @@
std::shared_ptr<BindingOwner<DrmCrtc>> crtc;
std::shared_ptr<BindingOwner<DrmPlane>> primary_plane;
- std::unique_ptr<DrmAtomicStateManager> atomic_state_manager;
+ std::shared_ptr<DrmAtomicStateManager> atomic_state_manager;
};
} // namespace android