diff --git a/msm8996/sdm/libs/hwc2/hwc_display.cpp b/msm8996/sdm/libs/hwc2/hwc_display.cpp index 10b22206..507eff5e 100644 --- a/msm8996/sdm/libs/hwc2/hwc_display.cpp +++ b/msm8996/sdm/libs/hwc2/hwc_display.cpp @@ -1673,6 +1673,10 @@ std::string HWCDisplay::Dump() { } bool HWCDisplay::CanSkipValidate() { + if (solid_fill_enable_) { + return false; + } + for (auto hwc_layer : layer_set_) { if (hwc_layer->NeedsValidation()) { return false; diff --git a/msm8996/sdm/libs/hwc2/hwc_layers.cpp b/msm8996/sdm/libs/hwc2/hwc_layers.cpp index 580a59d2..71e771b8 100644 --- a/msm8996/sdm/libs/hwc2/hwc_layers.cpp +++ b/msm8996/sdm/libs/hwc2/hwc_layers.cpp @@ -165,6 +165,10 @@ HWC2::Error HWCLayer::SetLayerColor(hwc_color_t color) { } HWC2::Error HWCLayer::SetLayerCompositionType(HWC2::Composition type) { + // Validation is required when the client changes the composition type + if (client_requested_ != type) { + needs_validate_ = true; + } client_requested_ = type; switch (type) { case HWC2::Composition::Client: diff --git a/msm8998/sdm/libs/hwc2/hwc_display.cpp b/msm8998/sdm/libs/hwc2/hwc_display.cpp index 9fdaf444..6b2e39dc 100644 --- a/msm8998/sdm/libs/hwc2/hwc_display.cpp +++ b/msm8998/sdm/libs/hwc2/hwc_display.cpp @@ -1883,6 +1883,10 @@ std::string HWCDisplay::Dump() { } bool HWCDisplay::CanSkipValidate() { + if (solid_fill_enable_) { + return false; + } + // Layer Stack checks if (layer_stack_.flags.hdr_present && (tone_mapper_ && tone_mapper_->IsActive())) { return false; diff --git a/msm8998/sdm/libs/hwc2/hwc_layers.cpp b/msm8998/sdm/libs/hwc2/hwc_layers.cpp index 4ceaa632..06ec8af6 100644 --- a/msm8998/sdm/libs/hwc2/hwc_layers.cpp +++ b/msm8998/sdm/libs/hwc2/hwc_layers.cpp @@ -329,6 +329,10 @@ HWC2::Error HWCLayer::SetLayerColor(hwc_color_t color) { } HWC2::Error HWCLayer::SetLayerCompositionType(HWC2::Composition type) { + // Validation is required when the client changes the composition type + if (client_requested_ != type) { + needs_validate_ = true; + } client_requested_ = type; switch (type) { case HWC2::Composition::Client: