Revert "drm_hwcomposer: Cleanup gl precompositor init and provide uses_GL flag"
This reverts commit 3b0c69d3477d3601b1dbcb75fdd748254e297e7e.
diff --git a/drmdisplaycompositor.cpp b/drmdisplaycompositor.cpp
index d2acf76..9932fcb 100644
--- a/drmdisplaycompositor.cpp
+++ b/drmdisplaycompositor.cpp
@@ -222,13 +222,6 @@
return ret;
}
- pre_compositor_.reset(new GLWorkerCompositor());
- ret = pre_compositor_->Init();
- if (ret) {
- ALOGE("Failed to initialize OpenGL compositor %d", ret);
- pre_compositor_.reset();
- }
-
initialized_ = true;
return 0;
}
@@ -301,16 +294,14 @@
}
std::vector<DrmCompositionRegion> ®ions = display_comp->squash_regions();
- if (pre_compositor_) {
- ret = pre_compositor_->Composite(display_comp->layers().data(),
+ ret = pre_compositor_->Composite(display_comp->layers().data(),
regions.data(), regions.size(), fb.buffer(),
display_comp->importer());
- pre_compositor_->Finish();
+ pre_compositor_->Finish();
- if (ret) {
- ALOGE("Failed to squash layers");
- return ret;
- }
+ if (ret) {
+ ALOGE("Failed to squash layers");
+ return ret;
}
ret = display_comp->CreateNextTimelineFence();
@@ -337,16 +328,14 @@
}
std::vector<DrmCompositionRegion> ®ions = display_comp->pre_comp_regions();
- if (pre_compositor_) {
- ret = pre_compositor_->Composite(display_comp->layers().data(),
+ ret = pre_compositor_->Composite(display_comp->layers().data(),
regions.data(), regions.size(), fb.buffer(),
display_comp->importer());
- pre_compositor_->Finish();
+ pre_compositor_->Finish();
- if (ret) {
- ALOGE("Failed to pre-composite layers");
- return ret;
- }
+ if (ret) {
+ ALOGE("Failed to pre-composite layers");
+ return ret;
}
ret = display_comp->CreateNextTimelineFence();
@@ -406,6 +395,15 @@
std::vector<DrmCompositionRegion> &pre_comp_regions =
display_comp->pre_comp_regions();
+ if (!pre_compositor_) {
+ pre_compositor_.reset(new GLWorkerCompositor());
+ int ret = pre_compositor_->Init();
+ if (ret) {
+ ALOGE("Failed to initialize OpenGL compositor %d", ret);
+ return ret;
+ }
+ }
+
int squash_layer_index = -1;
if (squash_regions.size() > 0) {
squash_framebuffer_index_ = (squash_framebuffer_index_ + 1) % 2;
diff --git a/drmdisplaycompositor.h b/drmdisplaycompositor.h
index ed6c5f9..f1965fb 100644
--- a/drmdisplaycompositor.h
+++ b/drmdisplaycompositor.h
@@ -98,9 +98,6 @@
return &squash_state_;
}
- bool uses_GL() {
- return !!pre_compositor_;
- }
private:
struct ModeState {
bool needs_modeset = false;