drm_hwcomposer: Move client flattening closer to the frontend
Remove unnecessary code from DrmCompositor.
Drops ~100 LoC.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/compositor/DrmDisplayCompositor.h b/compositor/DrmDisplayCompositor.h
index afdb79e..04c0bae 100644
--- a/compositor/DrmDisplayCompositor.h
+++ b/compositor/DrmDisplayCompositor.h
@@ -32,28 +32,14 @@
#include "drm/VSyncWorker.h"
#include "drmhwcomposer.h"
-// If a scene is still for this number of vblanks flatten it to reduce power
-// consumption.
-#define FLATTEN_COUNTDOWN_INIT 60
-
namespace android {
-enum class FlatteningState {
- kNone,
- kNotNeeded,
- kClientRequested,
- kClientDone,
-};
-
-std::ostream &operator<<(std::ostream &str, FlatteningState state);
-
class DrmDisplayCompositor {
public:
DrmDisplayCompositor();
~DrmDisplayCompositor();
- auto Init(ResourceManager *resource_manager, int display,
- std::function<void()> client_refresh_callback) -> int;
+ auto Init(ResourceManager *resource_manager, int display) -> int;
std::unique_ptr<DrmDisplayComposition> CreateInitializedComposition() const;
int ApplyComposition(std::unique_ptr<DrmDisplayComposition> composition);
@@ -68,14 +54,9 @@
return std::move(active_composition_->out_fence_);
}
- FlatteningState GetFlatteningState() const;
- uint32_t GetFlattenedFramesCount() const;
- bool ShouldFlattenOnClient() const;
-
std::tuple<uint32_t, uint32_t, int> GetActiveModeResolution();
private:
- std::function<void()> client_refresh_callback_;
struct ModeState {
bool needs_modeset = false;
DrmMode mode;
@@ -97,13 +78,6 @@
void ApplyFrame(std::unique_ptr<DrmDisplayComposition> composition,
int status);
- void SetFlattening(FlatteningState new_state);
- bool IsFlatteningNeeded() const;
- int FlattenActiveComposition();
- int FlattenOnClient();
-
- bool CountdownExpired() const;
-
std::tuple<int, uint32_t> CreateModeBlob(const DrmMode &mode);
ResourceManager *resource_manager_;
@@ -117,21 +91,11 @@
ModeState mode_;
- // mutable since we need to acquire in Dump()
- mutable pthread_mutex_t lock_{};
-
// State tracking progress since our last Dump(). These are mutable since
// we need to reset them on every Dump() call.
mutable uint64_t dump_frames_composited_;
mutable uint64_t dump_last_timestamp_ns_;
- VSyncWorker vsync_worker_;
- int64_t flatten_countdown_;
std::unique_ptr<Planner> planner_;
-
- FlatteningState flattening_state_;
- uint32_t frames_flattened_;
-
- std::function<void(int)> refresh_display_cb_;
};
} // namespace android