summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <luchris@google.com>2019-06-13 02:37:46 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-06-13 02:37:46 +0000
commit5a70badd1de4e4e4e8aefaac7fae8fafadf28066 (patch)
treedb3ad704eedbe422ac02f613593fdc4ff1d169fd
parentcff085103df025e32f0c2294b24b601abea25e22 (diff)
parent97b72ef81fc4bfd046d14e9ce88e036e5b8fe709 (diff)
Merge "hwc2: Do not skip validate for partial FB composition." into qt-dev
-rw-r--r--msm8998/sdm/include/core/debug_interface.h1
-rw-r--r--msm8998/sdm/include/core/layer_stack.h3
-rw-r--r--msm8998/sdm/libs/hwc2/hwc_display.cpp5
3 files changed, 7 insertions, 2 deletions
diff --git a/msm8998/sdm/include/core/debug_interface.h b/msm8998/sdm/include/core/debug_interface.h
index f4e3fc30d..409ca418f 100644
--- a/msm8998/sdm/include/core/debug_interface.h
+++ b/msm8998/sdm/include/core/debug_interface.h
@@ -49,6 +49,7 @@ enum DebugTag {
kTagRotator, //!< Debug log is tagged for rotator.
kTagScalar, //!< Debug log is tagged for Scalar Helper.
kTagQDCM, //!< Debug log is tagged for display QDCM color managing.
+ kTagClient, //!< Debug log is tagged for SDM client.
};
/*! @brief Display debug handler class.
diff --git a/msm8998/sdm/include/core/layer_stack.h b/msm8998/sdm/include/core/layer_stack.h
index 6ee2e758d..c53ddcd79 100644
--- a/msm8998/sdm/include/core/layer_stack.h
+++ b/msm8998/sdm/include/core/layer_stack.h
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2014 - 2016, The Linux Foundation. All rights reserved.
+* Copyright (c) 2014 - 2016, 2019, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted
* provided that the following conditions are met:
@@ -98,6 +98,7 @@ enum LayerComposition {
kCompositionBlit, //!< This layer will be composed using Blit Engine.
//!< This composition type is used only if BlitTarget layer is provided
//!< in a composition cycle.
+ kCompositionNone, //!< This layer will not be composed by any hardware.
/* === List of composition types set by Client === */
/* These composition types represent target buffer layers onto which GPU or Blit will draw if SDM
diff --git a/msm8998/sdm/libs/hwc2/hwc_display.cpp b/msm8998/sdm/libs/hwc2/hwc_display.cpp
index 083b3ab4a..498c05d15 100644
--- a/msm8998/sdm/libs/hwc2/hwc_display.cpp
+++ b/msm8998/sdm/libs/hwc2/hwc_display.cpp
@@ -1882,12 +1882,15 @@ bool HWCDisplay::CanSkipValidate() {
}
for (auto hwc_layer : layer_set_) {
+ Layer *layer = hwc_layer->GetSDMLayer();
if (hwc_layer->NeedsValidation()) {
return false;
}
// Do not allow Skip Validate, if any layer needs GPU Composition.
- if (hwc_layer->GetDeviceSelectedCompositionType() == HWC2::Composition::Client) {
+ if (layer->composition == kCompositionGPU || layer->composition == kCompositionNone) {
+ DLOGV_IF(kTagClient, "hwc_layer[%d] is %s. Returning false.", hwc_layer->GetId(),
+ (layer->composition == kCompositionGPU) ? "GPU composed": "Dropped");
return false;
}
}