diff options
| author | Chris Lu <luchris@google.com> | 2019-06-13 02:37:46 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-06-13 02:37:46 +0000 |
| commit | 5a70badd1de4e4e4e8aefaac7fae8fafadf28066 (patch) | |
| tree | db3ad704eedbe422ac02f613593fdc4ff1d169fd | |
| parent | cff085103df025e32f0c2294b24b601abea25e22 (diff) | |
| parent | 97b72ef81fc4bfd046d14e9ce88e036e5b8fe709 (diff) | |
Merge "hwc2: Do not skip validate for partial FB composition." into qt-dev
| -rw-r--r-- | msm8998/sdm/include/core/debug_interface.h | 1 | ||||
| -rw-r--r-- | msm8998/sdm/include/core/layer_stack.h | 3 | ||||
| -rw-r--r-- | msm8998/sdm/libs/hwc2/hwc_display.cpp | 5 |
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; } } |
