Merge "hwc: Check for downscale support only when needed"
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 01f4b99..7d4fa3e 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -326,23 +326,25 @@
if((crop_w < 5)||(crop_h < 5))
return false;
- const uint32_t downscale =
+ if((w_dscale > 1.0f) || (h_dscale > 1.0f)) {
+ const uint32_t downscale =
qdutils::MDPVersion::getInstance().getMaxMDPDownscale();
- if(ctx->mMDP.version >= qdutils::MDSS_V5) {
- /* Workaround for downscales larger than 4x.
- * Will be removed once decimator block is enabled for MDSS
- */
- if(!qdutils::MDPVersion::getInstance().supportsDecimation()) {
- if(crop_w > MAX_DISPLAY_DIM || w_dscale > downscale ||
- h_dscale > downscale)
- return false;
- } else {
- if(w_dscale > 64 || h_dscale > 64)
+ if(ctx->mMDP.version >= qdutils::MDSS_V5) {
+ /* Workaround for downscales larger than 4x.
+ * Will be removed once decimator block is enabled for MDSS
+ */
+ if(!qdutils::MDPVersion::getInstance().supportsDecimation()) {
+ if(crop_w > MAX_DISPLAY_DIM || w_dscale > downscale ||
+ h_dscale > downscale)
+ return false;
+ } else {
+ if(w_dscale > 64 || h_dscale > 64)
+ return false;
+ }
+ } else { //A-family
+ if(w_dscale > downscale || h_dscale > downscale)
return false;
}
- } else { //A-family
- if(w_dscale > downscale || h_dscale > downscale)
- return false;
}
return true;