summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSkrilax_CZ <skrilax@gmail.com>2016-02-11 09:43:31 -0800
committerSkrilax_CZ <skrilax@gmail.com>2016-02-15 02:46:26 -0800
commit68a2e3a4e0b219ba302587a2f7419e3a071f3fc8 (patch)
tree0c7fa83dde3c0e8e9ee8b452744798d157634bdd
parentfc41c61f3bdc2b4d985687ebc8d0e2306948ca65 (diff)
downloadandroid_hardware_qcom_display-cm-14.0-caf-8084.tar.gz
android_hardware_qcom_display-cm-14.0-caf-8084.tar.bz2
android_hardware_qcom_display-cm-14.0-caf-8084.zip
Some devices use 16 byte pixel alignment for preview in their proprietaries. Change-Id: Ib68956d39dee1c189ce883495c361bbc65d0c2d8
-rw-r--r--libgralloc/Android.mk4
-rw-r--r--libgralloc/alloc_controller.cpp4
2 files changed, 8 insertions, 0 deletions
diff --git a/libgralloc/Android.mk b/libgralloc/Android.mk
index 18beaf22f..15157a93c 100644
--- a/libgralloc/Android.mk
+++ b/libgralloc/Android.mk
@@ -43,4 +43,8 @@ LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps) $(kernel_deps)
LOCAL_SRC_FILES := ionalloc.cpp alloc_controller.cpp
LOCAL_COPY_HEADERS := alloc_controller.h memalloc.h
+ifeq ($(TARGET_USE_COMPAT_GRALLOC_ALIGN),true)
+LOCAL_CFLAGS += -DUSE_16BYTE_GRALLOC_ALIGN
+endif
+
include $(BUILD_SHARED_LIBRARY)
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index f1bb3982c..2c1a0bb9e 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -183,7 +183,11 @@ void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format,
{
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO:
+#ifdef USE_16BYTE_GRALLOC_ALIGN
+ aligned_w = ALIGN(width, 16);
+#else
aligned_w = ALIGN(width, 32);
+#endif
break;
case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
aligned_w = ALIGN(width, 128);