Merge "Fix a build break due to a change in libui"
[GitHub/LineageOS/android_hardware_samsung_slsi_exynos5.git] / libhwc / hwc.cpp
index 546b047283cae6625d8dd2a94362e1b5d669d2e8..dca45ef852c63dda104e4c2c2e2308e55430bed6 100644 (file)
@@ -799,10 +799,6 @@ bool exynos5_supports_overlay(hwc_layer_1_t &layer, size_t i,
         return false;
     }
 
-    if (exynos5_visible_width(layer, handle->format, pdev) < BURSTLEN_BYTES) {
-        ALOGV("\tlayer %u: visible area is too narrow", i);
-        return false;
-    }
     if (exynos5_requires_gscaler(layer, handle->format)) {
         if (!exynos5_supports_gscaler(layer, handle->format, false)) {
             ALOGV("\tlayer %u: gscaler required but not supported", i);
@@ -814,6 +810,10 @@ bool exynos5_supports_overlay(hwc_layer_1_t &layer, size_t i,
             return false;
         }
     }
+    if (exynos5_visible_width(layer, handle->format, pdev) < BURSTLEN_BYTES) {
+        ALOGV("\tlayer %u: visible area is too narrow", i);
+        return false;
+    }
     if (!exynos5_blending_is_supported(layer.blending)) {
         ALOGV("\tlayer %u: blending %d not supported", i, layer.blending);
         return false;
@@ -1616,6 +1616,10 @@ static int exynos5_set_hdmi(exynos5_hwc_composer_device_1_t *pdev,
                     contents->retireFenceFd = merged;
                 }
             } else {
+                if (layer.acquireFenceFd >= 0) {
+                    close(layer.acquireFenceFd);
+                    layer.acquireFenceFd = -1;
+                }
                 hdmi_hide_layer(pdev, pdev->hdmi_layers[1]);
             }
         }