summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2018-05-03 14:38:49 -0500
committerSean Paul <seanpaul@chromium.org>2018-05-30 13:31:41 -0400
commit33fb7b9182005be06d33d40222c445d7781446cf (patch)
tree55d8a9689eb6bd0fd22166c34abd2c011f52fdda
parent6493b8cc6b2f69f4c629bf7910d1455912506220 (diff)
Revert "drm_hwcomposer: Cleanup gl precompositor init and provide uses_GL flag"
This reverts commit 3b0c69d3477d3601b1dbcb75fdd748254e297e7e.
-rw-r--r--drmdisplaycompositor.cpp40
-rw-r--r--drmdisplaycompositor.h3
2 files changed, 19 insertions, 24 deletions
diff --git a/drmdisplaycompositor.cpp b/drmdisplaycompositor.cpp
index d2acf76..9932fcb 100644
--- a/drmdisplaycompositor.cpp
+++ b/drmdisplaycompositor.cpp
@@ -222,13 +222,6 @@ int DrmDisplayCompositor::Init(DrmResources *drm, int display) {
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 @@ int DrmDisplayCompositor::ApplySquash(DrmDisplayComposition *display_comp) {
}
std::vector<DrmCompositionRegion> &regions = 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 @@ int DrmDisplayCompositor::ApplyPreComposite(
}
std::vector<DrmCompositionRegion> &regions = 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 @@ int DrmDisplayCompositor::PrepareFrame(DrmDisplayComposition *display_comp) {
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 @@ class DrmDisplayCompositor {
return &squash_state_;
}
- bool uses_GL() {
- return !!pre_compositor_;
- }
private:
struct ModeState {
bool needs_modeset = false;