diff options
author | Krishna Srinivas <krisrini@codeaurora.org> | 2016-06-02 13:08:49 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-06-28 11:34:37 -0700 |
commit | 2b9f2004b1a17abcad546ce7fc5db3f527757096 (patch) | |
tree | 9c8de5b31e7644648378f77e0ff52d2085b00c61 | |
parent | 3d5d4c184d1f5531ea650093a239a652143bbd3a (diff) | |
download | android_hardware_qcom_display-2b9f2004b1a17abcad546ce7fc5db3f527757096.tar.gz android_hardware_qcom_display-2b9f2004b1a17abcad546ce7fc5db3f527757096.tar.bz2 android_hardware_qcom_display-2b9f2004b1a17abcad546ce7fc5db3f527757096.zip |
sdm: Limit composed layers for non primary displays
While configuring Constraints, limit max_layers to 2
only if the display is not primary. Without
this condition composition will fallback to GPU
(instead of MDP) for HDMI set as primary.
Change-Id: I8cd8c16cdb83196c1ea115621ae52be74ab43b09
CRs-Fixed: 1017762
-rw-r--r-- | sdm/libs/core/comp_manager.cpp | 7 | ||||
-rw-r--r-- | sdm/libs/core/comp_manager.h | 3 | ||||
-rw-r--r-- | sdm/libs/core/strategy.cpp | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/sdm/libs/core/comp_manager.cpp b/sdm/libs/core/comp_manager.cpp index afbb8f361..93060a12a 100644 --- a/sdm/libs/core/comp_manager.cpp +++ b/sdm/libs/core/comp_manager.cpp @@ -106,11 +106,12 @@ DisplayError CompManager::RegisterDisplay(DisplayType type, const HWDisplayAttri } SET_BIT(registered_displays_, type); + display_comp_ctx->is_primary_panel = hw_panel_info.is_primary_panel; display_comp_ctx->display_type = type; *display_ctx = display_comp_ctx; // New non-primary display device has been added, so move the composition mode to safe mode until // resources for the added display is configured properly. - if (type != kPrimary) { + if (!display_comp_ctx->is_primary_panel) { safe_mode_ = true; } @@ -207,8 +208,8 @@ void CompManager::PrepareStrategyConstraints(Handle comp_handle, HWLayers *hw_la constraints->use_cursor = false; constraints->max_layers = max_layers_; - // Limit 2 layer SDE Comp on HDMI/Virtual - if (display_comp_ctx->display_type != kPrimary) { + // Limit 2 layer SDE Comp if its not a Primary Display + if (!display_comp_ctx->is_primary_panel) { constraints->max_layers = 2; } diff --git a/sdm/libs/core/comp_manager.h b/sdm/libs/core/comp_manager.h index 77440700b..9eb5fc44f 100644 --- a/sdm/libs/core/comp_manager.h +++ b/sdm/libs/core/comp_manager.h @@ -80,6 +80,9 @@ class CompManager : public DumpImpl { bool idle_fallback = false; bool fallback_ = false; uint32_t partial_update_enable = true; + // Using primary panel flag of hw panel to configure Constraints. We do not need other hw + // panel parameters for now. + bool is_primary_panel = false; }; Locker locker_; diff --git a/sdm/libs/core/strategy.cpp b/sdm/libs/core/strategy.cpp index 924047a21..aaa1ebbd7 100644 --- a/sdm/libs/core/strategy.cpp +++ b/sdm/libs/core/strategy.cpp @@ -169,7 +169,7 @@ void Strategy::GenerateROI() { if (!hw_resource_info_.is_src_split && ((disp_x_res > hw_resource_info_.max_mixer_width) || - ((display_type_ == kPrimary) && hw_panel_info_.split_info.right_split))) { + ((hw_panel_info_.is_primary_panel) && hw_panel_info_.split_info.right_split))) { split_display = true; } |