summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKrishna Srinivas <krisrini@codeaurora.org>2016-06-02 13:08:49 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-06-28 11:34:37 -0700
commit2b9f2004b1a17abcad546ce7fc5db3f527757096 (patch)
tree9c8de5b31e7644648378f77e0ff52d2085b00c61
parent3d5d4c184d1f5531ea650093a239a652143bbd3a (diff)
downloadandroid_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.cpp7
-rw-r--r--sdm/libs/core/comp_manager.h3
-rw-r--r--sdm/libs/core/strategy.cpp2
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;
}