diff options
author | Tharaga Balachandran <tbalacha@codeaurora.org> | 2018-11-09 15:03:02 -0500 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-11-14 07:38:10 -0800 |
commit | c87e2b02e2e5ca160e6a6439b1a12898ffeba858 (patch) | |
tree | 8906bd922a3cad17884b2e60a363bbe1d8702305 | |
parent | 42881b1ca8d58a4c49d209a23f0434e982ebf5b5 (diff) | |
download | android_hardware_qcom_sdm845_display-c87e2b02e2e5ca160e6a6439b1a12898ffeba858.tar.gz android_hardware_qcom_sdm845_display-c87e2b02e2e5ca160e6a6439b1a12898ffeba858.tar.bz2 android_hardware_qcom_sdm845_display-c87e2b02e2e5ca160e6a6439b1a12898ffeba858.zip |
sdm: Clear solid fill stages upon flush
Solid fill stages persist after empty commit because the property
DIM_STAGES_V1 is set during solid fill creation but not cleared
by HWDeviceDRM::Flush(). This commit clears solid fill stages and
updates the property.
CRs-Fixed: 2348615
Change-Id: I017b44094286f89c315d16e0de6717f6ffae7b76
-rw-r--r-- | sdm/libs/core/drm/hw_device_drm.cpp | 6 | ||||
-rw-r--r-- | sdm/libs/core/drm/hw_device_drm.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp index 627e0080..40e0b220 100644 --- a/sdm/libs/core/drm/hw_device_drm.cpp +++ b/sdm/libs/core/drm/hw_device_drm.cpp @@ -1047,6 +1047,11 @@ void HWDeviceDRM::SetSolidfillStages() { } } +void HWDeviceDRM::ClearSolidfillStages() { + solid_fills_.clear(); + SetSolidfillStages(); +} + DisplayError HWDeviceDRM::Validate(HWLayers *hw_layers) { DTRACE_SCOPED(); @@ -1184,6 +1189,7 @@ DisplayError HWDeviceDRM::AtomicCommit(HWLayers *hw_layers) { DisplayError HWDeviceDRM::Flush() { DTRACE_SCOPED(); + ClearSolidfillStages(); int ret = drm_atomic_intf_->Commit(false /* synchronous */, false /* retain_planes*/); if (ret) { DLOGE("failed with error %d", ret); diff --git a/sdm/libs/core/drm/hw_device_drm.h b/sdm/libs/core/drm/hw_device_drm.h index 63853c4a..c4f06c35 100644 --- a/sdm/libs/core/drm/hw_device_drm.h +++ b/sdm/libs/core/drm/hw_device_drm.h @@ -126,6 +126,7 @@ class HWDeviceDRM : public HWInterface { void UpdateMixerAttributes(); void SetSolidfillStages(); void AddSolidfillStage(const HWSolidfillStage &sf, uint32_t plane_alpha); + void ClearSolidfillStages(); void SetBlending(const LayerBlending &source, sde_drm::DRMBlendType *target); void SetSrcConfig(const LayerBuffer &input_buffer, const HWRotatorMode &mode, uint32_t *config); void SelectCscType(const LayerBuffer &input_buffer, sde_drm::DRMCscType *type); |