diff options
author | Sean Paul <seanpaul@chromium.org> | 2017-02-28 13:17:34 -0500 |
---|---|---|
committer | Robert Foss <robert.foss@collabora.com> | 2017-09-28 18:31:57 +0200 |
commit | ed45a8eb01d5927e36e34acd7bac46abbbecb304 (patch) | |
tree | 7ab7a00d92ab70310dbd63d4bf550472149f4056 /drmdisplaycompositor.h | |
parent | a1ade4e404430fc8d880f160cb8acf2c874b431f (diff) |
drm_hwcomposer: Remove threading
Since HWC2 doesn't require the use of threads to implement correct
synchronization, remove some of these threads.
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
Diffstat (limited to 'drmdisplaycompositor.h')
-rw-r--r-- | drmdisplaycompositor.h | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/drmdisplaycompositor.h b/drmdisplaycompositor.h index 9487cac..f1965fb 100644 --- a/drmdisplaycompositor.h +++ b/drmdisplaycompositor.h @@ -18,14 +18,12 @@ #define ANDROID_DRM_DISPLAY_COMPOSITOR_H_ #include "drmhwcomposer.h" -#include "drmcomposition.h" -#include "drmcompositorworker.h" +#include "drmdisplaycomposition.h" #include "drmframebuffer.h" #include "separate_rects.h" #include <pthread.h> #include <memory> -#include <queue> #include <sstream> #include <tuple> @@ -89,42 +87,18 @@ class DrmDisplayCompositor { int Init(DrmResources *drm, int display); std::unique_ptr<DrmDisplayComposition> CreateComposition() const; - int QueueComposition(std::unique_ptr<DrmDisplayComposition> composition); + int ApplyComposition(std::unique_ptr<DrmDisplayComposition> composition); int Composite(); int SquashAll(); void Dump(std::ostringstream *out) const; std::tuple<uint32_t, uint32_t, int> GetActiveModeResolution(); - bool HaveQueuedComposites() const; - SquashState *squash_state() { return &squash_state_; } private: - struct FrameState { - std::unique_ptr<DrmDisplayComposition> composition; - int status = 0; - }; - - class FrameWorker : public Worker { - public: - FrameWorker(DrmDisplayCompositor *compositor); - ~FrameWorker() override; - - int Init(); - void QueueFrame(std::unique_ptr<DrmDisplayComposition> composition, - int status); - - protected: - void Routine() override; - - private: - DrmDisplayCompositor *compositor_; - std::queue<FrameState> frame_queue_; - }; - struct ModeState { bool needs_modeset = false; DrmMode mode; @@ -158,10 +132,6 @@ class DrmDisplayCompositor { DrmResources *drm_; int display_; - DrmCompositorWorker worker_; - FrameWorker frame_worker_; - - std::queue<std::unique_ptr<DrmDisplayComposition>> composite_queue_; std::unique_ptr<DrmDisplayComposition> active_composition_; bool initialized_; @@ -178,7 +148,7 @@ class DrmDisplayCompositor { int squash_framebuffer_index_; DrmFramebuffer squash_framebuffers_[2]; - // mutable since we need to acquire in HaveQueuedComposites + // mutable since we need to acquire in Dump() mutable pthread_mutex_t lock_; // State tracking progress since our last Dump(). These are mutable since |