drm_hwcomposer: Cleanup Planner class
Remove unused code.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Tested-by: Martin Juecker <martin.juecker@gmail.com>
Reviewed-by: Matvii Zorin <matvii.zorin@globallogic.com>
diff --git a/compositor/Planner.cpp b/compositor/Planner.cpp
index fd9678c..6c0785a 100644
--- a/compositor/Planner.cpp
+++ b/compositor/Planner.cpp
@@ -27,7 +27,6 @@
std::unique_ptr<Planner> Planner::CreateInstance(DrmDevice * /*device*/) {
std::unique_ptr<Planner> planner(new Planner);
- planner->AddStage<PlanStageGreedy>();
return planner;
}
@@ -57,40 +56,16 @@
}
// Go through the provisioning stages and provision planes
- for (auto &i : stages_) {
- int ret = i->ProvisionPlanes(&composition, layers, &planes);
- if (ret) {
- ALOGV("Failed provision stage with ret %d", ret);
- return std::make_tuple(ret, std::vector<DrmCompositionPlane>());
- }
+ int ret = ProvisionPlanesInternal(&composition, layers, &planes);
+ if (ret) {
+ ALOGV("Failed provision stage with ret %d", ret);
+ return std::make_tuple(ret, std::vector<DrmCompositionPlane>());
}
return std::make_tuple(0, std::move(composition));
}
-int PlanStageProtected::ProvisionPlanes(
- std::vector<DrmCompositionPlane> *composition,
- std::map<size_t, DrmHwcLayer *> &layers, std::vector<DrmPlane *> *planes) {
- int ret = 0;
- for (auto i = layers.begin(); i != layers.end();) {
- if (!i->second->protected_usage()) {
- ++i;
- continue;
- }
-
- ret = Emplace(composition, planes, std::make_pair(i->first, i->second));
- if (ret) {
- ALOGE("Failed to dedicate protected layer! Dropping it.");
- return ret;
- }
-
- i = layers.erase(i);
- }
-
- return 0;
-}
-
-int PlanStageGreedy::ProvisionPlanes(
+int Planner::ProvisionPlanesInternal(
std::vector<DrmCompositionPlane> *composition,
std::map<size_t, DrmHwcLayer *> &layers, std::vector<DrmPlane *> *planes) {
// Fill up the remaining planes
diff --git a/compositor/Planner.h b/compositor/Planner.h
index b54a9be..ff059f5 100644
--- a/compositor/Planner.h
+++ b/compositor/Planner.h
@@ -32,53 +32,47 @@
class DrmDevice;
class Planner {
+ private:
+ // Removes and returns the next available plane from planes
+ static DrmPlane *PopPlane(std::vector<DrmPlane *> *planes) {
+ if (planes->empty())
+ return NULL;
+ DrmPlane *plane = planes->front();
+ planes->erase(planes->begin());
+ return plane;
+ }
+
+ // Inserts the given layer:plane in the composition at the back
+ static int Emplace(std::vector<DrmCompositionPlane> *composition,
+ std::vector<DrmPlane *> *planes,
+ std::pair<size_t, DrmHwcLayer *> layer) {
+ DrmPlane *plane = PopPlane(planes);
+ std::vector<DrmPlane *> unused_planes;
+ int ret = -ENOENT;
+ while (plane) {
+ ret = plane->IsValidForLayer(layer.second) ? 0 : -EINVAL;
+ if (!ret)
+ break;
+ if (!plane->zpos_property().is_immutable())
+ unused_planes.push_back(plane);
+ plane = PopPlane(planes);
+ }
+
+ if (!ret) {
+ composition->emplace_back(plane, layer.first);
+ planes->insert(planes->begin(), unused_planes.begin(),
+ unused_planes.end());
+ }
+
+ return ret;
+ }
+
+ int ProvisionPlanesInternal(std::vector<DrmCompositionPlane> *composition,
+ std::map<size_t, DrmHwcLayer *> &layers,
+ std::vector<DrmPlane *> *planes);
+
public:
- class PlanStage {
- public:
- virtual ~PlanStage() {
- }
-
- virtual int ProvisionPlanes(std::vector<DrmCompositionPlane> *composition,
- std::map<size_t, DrmHwcLayer *> &layers,
- std::vector<DrmPlane *> *planes) = 0;
-
- protected:
- // Removes and returns the next available plane from planes
- static DrmPlane *PopPlane(std::vector<DrmPlane *> *planes) {
- if (planes->empty())
- return NULL;
- DrmPlane *plane = planes->front();
- planes->erase(planes->begin());
- return plane;
- }
-
- // Inserts the given layer:plane in the composition at the back
- static int Emplace(std::vector<DrmCompositionPlane> *composition,
- std::vector<DrmPlane *> *planes,
- std::pair<size_t, DrmHwcLayer *> layer) {
- DrmPlane *plane = PopPlane(planes);
- std::vector<DrmPlane *> unused_planes;
- int ret = -ENOENT;
- while (plane) {
- ret = plane->IsValidForLayer(layer.second) ? 0 : -EINVAL;
- if (!ret)
- break;
- if (!plane->zpos_property().is_immutable())
- unused_planes.push_back(plane);
- plane = PopPlane(planes);
- }
-
- if (!ret) {
- composition->emplace_back(plane, layer.first);
- planes->insert(planes->begin(), unused_planes.begin(),
- unused_planes.end());
- }
-
- return ret;
- }
- };
-
- // Creates a planner instance with platform-specific planning stages
+ // Creates a planner instance
static std::unique_ptr<Planner> CreateInstance(DrmDevice *drm);
// Takes a stack of layers and provisions hardware planes for them. If the
@@ -95,37 +89,10 @@
std::vector<DrmPlane *> *primary_planes,
std::vector<DrmPlane *> *overlay_planes);
- template <typename T, typename... A>
- void AddStage(A &&...args) {
- stages_.emplace_back(
- std::unique_ptr<PlanStage>(new T(std::forward(args)...)));
- }
-
private:
std::vector<DrmPlane *> GetUsablePlanes(
DrmCrtc *crtc, std::vector<DrmPlane *> *primary_planes,
std::vector<DrmPlane *> *overlay_planes);
-
- std::vector<std::unique_ptr<PlanStage>> stages_;
-};
-
-// This plan stage extracts all protected layers and places them on dedicated
-// planes.
-class PlanStageProtected : public Planner::PlanStage {
- public:
- int ProvisionPlanes(std::vector<DrmCompositionPlane> *composition,
- std::map<size_t, DrmHwcLayer *> &layers,
- std::vector<DrmPlane *> *planes);
-};
-
-// This plan stage places as many layers on dedicated planes as possible (first
-// come first serve), and then sticks the rest in a precomposition plane (if
-// needed).
-class PlanStageGreedy : public Planner::PlanStage {
- public:
- int ProvisionPlanes(std::vector<DrmCompositionPlane> *composition,
- std::map<size_t, DrmHwcLayer *> &layers,
- std::vector<DrmPlane *> *planes);
};
} // namespace android
#endif