summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLily Ouyang <lily.ouyang@intel.com>2016-06-23 13:48:26 +0800
committerThe Android Automerger <android-build@google.com>2016-06-29 19:05:45 -0700
commit1a3d791b5de5c5b9dbae70a779a1a400743755c1 (patch)
tree8ffba4732d76dc682c2bcbb248c89931e0feebcd
parent9412c79795a90a3eb66be72c342cb4ff0ce30627 (diff)
downloadhwcomposer-nougat-mr0.5-release.tar.gz
Fall back to GLES if the size isn't be supported. Bug: 29267608 BZ: IMINAN-50487 Change-Id: I542d29556d2e082c7e7630e0023bf660126b2094 Signed-off-by: Lily Ouyang <lily.ouyang@intel.com>
-rwxr-xr-xmoorefield_hdmi/ips/anniedale/PlaneCapabilities.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/moorefield_hdmi/ips/anniedale/PlaneCapabilities.cpp b/moorefield_hdmi/ips/anniedale/PlaneCapabilities.cpp
index a7fbe48..54b4aee 100755
--- a/moorefield_hdmi/ips/anniedale/PlaneCapabilities.cpp
+++ b/moorefield_hdmi/ips/anniedale/PlaneCapabilities.cpp
@@ -25,6 +25,9 @@
#define SPRITE_PLANE_MAX_STRIDE_TILED 16384
#define SPRITE_PLANE_MAX_STRIDE_LINEAR 16384
+#define SPRITE_PLANE_MAX_WIDTH 4096
+#define SPRITE_PLANE_MAX_HEIGHT 4096
+
#define OVERLAY_PLANE_MAX_STRIDE_PACKED 4096
#define OVERLAY_PLANE_MAX_STRIDE_LINEAR 8192
@@ -173,6 +176,14 @@ bool PlaneCapabilities::isScalingSupported(int planeType, HwcLayer *hwcLayer)
dstH = dest.bottom - dest.top;
if (planeType == DisplayPlane::PLANE_SPRITE || planeType == DisplayPlane::PLANE_PRIMARY) {
+ if ((dstW - 1) <= 0 || (dstH - 1) <= 0 ||
+ (dstW - 1) >= SPRITE_PLANE_MAX_WIDTH ||
+ (dstH - 1) >= SPRITE_PLANE_MAX_HEIGHT) {
+ // Should check size in isSizeSupported().
+ DLOGTRACE("invalid destination size: %d x %d, fall back to GLES", dstW, dstH);
+ return false;
+ }
+
// no scaling is supported
return ((srcW == dstW) && (srcH == dstH)) ? true : false;