1
0
Fork 0

drm_hwcomposer: Cleanup DrmDisplayComposition initialization

Remove unused members (drm, importer, frame_no). Move initialization
from the proper function to the constructor.

Signed-off-by: Matvii Zorin <matvii.zorin@globallogic.com>
This commit is contained in:
Matvii Zorin 2021-01-08 12:55:45 +02:00
parent d21071f7d5
commit 704ea0e8fb
5 changed files with 13 additions and 54 deletions

View file

@ -669,9 +669,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::CreateComposition(bool test) {
map.layers.emplace_back(std::move(layer));
}
std::unique_ptr<DrmDisplayComposition> composition = compositor_
.CreateComposition();
composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
planner_.get());
// TODO(nobody): Don't always assume geometry changed
int ret = composition->SetLayers(map.layers.data(), map.layers.size(), true);
@ -748,9 +747,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetActiveConfig(hwc2_config_t config) {
return HWC2::Error::BadConfig;
}
std::unique_ptr<DrmDisplayComposition> composition = compositor_
.CreateComposition();
composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
planner_.get());
int ret = composition->SetDisplayMode(*mode);
if (ret) {
return HWC2::Error::BadConfig;
@ -854,9 +852,8 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetPowerMode(int32_t mode_in) {
return HWC2::Error::BadParameter;
};
std::unique_ptr<DrmDisplayComposition> composition = compositor_
.CreateComposition();
composition->Init(drm_, crtc_, importer_.get(), planner_.get(), frame_no_);
auto composition = std::make_unique<DrmDisplayComposition>(crtc_,
planner_.get());
composition->SetDpmsMode(dpms_value);
int ret = compositor_.ApplyComposition(std::move(composition));
if (ret) {

View file

@ -32,16 +32,9 @@
namespace android {
int DrmDisplayComposition::Init(DrmDevice *drm, DrmCrtc *crtc,
Importer *importer, Planner *planner,
uint64_t frame_no) {
drm_ = drm;
crtc_ = crtc; // Can be NULL if we haven't modeset yet
importer_ = importer;
planner_ = planner;
frame_no_ = frame_no;
return 0;
DrmDisplayComposition::DrmDisplayComposition(DrmCrtc *crtc, Planner *planner)
: crtc_(crtc), // Can be NULL if we haven't modeset yet
planner_(planner) {
}
bool DrmDisplayComposition::validate_composition_type(DrmCompositionType des) {

View file

@ -107,13 +107,10 @@ class DrmCompositionPlane {
class DrmDisplayComposition {
public:
DrmDisplayComposition() = default;
DrmDisplayComposition(const DrmDisplayComposition &) = delete;
DrmDisplayComposition(DrmCrtc *crtc, Planner *planner);
~DrmDisplayComposition() = default;
int Init(DrmDevice *drm, DrmCrtc *crtc, Importer *importer, Planner *planner,
uint64_t frame_no);
int SetLayers(DrmHwcLayer *layers, size_t num_layers, bool geometry_changed);
int AddPlaneComposition(DrmCompositionPlane plane);
int AddPlaneDisable(DrmPlane *plane);
@ -135,10 +132,6 @@ class DrmDisplayComposition {
return geometry_changed_;
}
uint64_t frame_no() const {
return frame_no_;
}
DrmCompositionType type() const {
return type_;
}
@ -155,10 +148,6 @@ class DrmDisplayComposition {
return crtc_;
}
Importer *importer() const {
return importer_;
}
Planner *planner() const {
return planner_;
}
@ -176,9 +165,7 @@ class DrmDisplayComposition {
private:
bool validate_composition_type(DrmCompositionType desired);
DrmDevice *drm_ = NULL;
DrmCrtc *crtc_ = NULL;
Importer *importer_ = NULL;
Planner *planner_ = NULL;
DrmCompositionType type_ = DRM_COMPOSITION_TYPE_EMPTY;
@ -187,11 +174,9 @@ class DrmDisplayComposition {
UniqueFd out_fence_ = -1;
bool geometry_changed_;
bool geometry_changed_ = true;
std::vector<DrmHwcLayer> layers_;
std::vector<DrmCompositionPlane> composition_planes_;
uint64_t frame_no_ = 0;
};
} // namespace android

View file

@ -125,11 +125,6 @@ int DrmDisplayCompositor::Init(ResourceManager *resource_manager, int display) {
return 0;
}
std::unique_ptr<DrmDisplayComposition> DrmDisplayCompositor::CreateComposition()
const {
return std::make_unique<DrmDisplayComposition>();
}
std::unique_ptr<DrmDisplayComposition>
DrmDisplayCompositor::CreateInitializedComposition() const {
DrmDevice *drm = resource_manager_->GetDrmDevice(display_);
@ -138,18 +133,8 @@ DrmDisplayCompositor::CreateInitializedComposition() const {
ALOGE("Failed to find crtc for display = %d", display_);
return std::unique_ptr<DrmDisplayComposition>();
}
std::unique_ptr<DrmDisplayComposition> comp = CreateComposition();
std::shared_ptr<Importer> importer = resource_manager_->GetImporter(display_);
if (!importer) {
ALOGE("Failed to find resources for display = %d", display_);
return std::unique_ptr<DrmDisplayComposition>();
}
int ret = comp->Init(drm, crtc, importer.get(), planner_.get(), 0);
if (ret) {
ALOGE("Failed to init composition for display = %d", display_);
return std::unique_ptr<DrmDisplayComposition>();
}
return comp;
return std::make_unique<DrmDisplayComposition>(crtc, planner_.get());
}
FlatteningState DrmDisplayCompositor::GetFlatteningState() const {

View file

@ -65,7 +65,6 @@ class DrmDisplayCompositor {
refresh_callback_hook_ = reinterpret_cast<HWC2_PFN_REFRESH>(hook);
}
std::unique_ptr<DrmDisplayComposition> CreateComposition() const;
std::unique_ptr<DrmDisplayComposition> CreateInitializedComposition() const;
int ApplyComposition(std::unique_ptr<DrmDisplayComposition> composition);
int TestComposition(DrmDisplayComposition *composition);