diff options
author | Rob Herring <robh@kernel.org> | 2018-05-03 14:38:49 -0500 |
---|---|---|
committer | Sean Paul <seanpaul@chromium.org> | 2018-05-30 13:31:41 -0400 |
commit | 33fb7b9182005be06d33d40222c445d7781446cf (patch) | |
tree | 55d8a9689eb6bd0fd22166c34abd2c011f52fdda | |
parent | 6493b8cc6b2f69f4c629bf7910d1455912506220 (diff) |
Revert "drm_hwcomposer: Cleanup gl precompositor init and provide uses_GL flag"
This reverts commit 3b0c69d3477d3601b1dbcb75fdd748254e297e7e.
-rw-r--r-- | drmdisplaycompositor.cpp | 40 | ||||
-rw-r--r-- | drmdisplaycompositor.h | 3 |
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> ®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 @@ int DrmDisplayCompositor::ApplyPreComposite( } 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 @@ 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; |