Merge branch 'LA.BF.1.1.3_rb1.5' of git://codeaurora.org/platform/hardware/qcom/display into cm-13.0
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index 066a1fe..ff62c6e 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -93,6 +93,7 @@
{
LINK_adreno_compute_aligned_width_and_height = NULL;
LINK_adreno_compute_padding = NULL;
+ LINK_adreno_get_gpu_pixel_alignment = NULL;
libadreno_utils = ::dlopen("libadreno_utils.so", RTLD_NOW);
if (libadreno_utils) {
@@ -100,6 +101,8 @@
::dlsym(libadreno_utils, "compute_aligned_width_and_height");
*(void **)&LINK_adreno_compute_padding = ::dlsym(libadreno_utils,
"compute_surface_padding");
+ *(void **)&LINK_adreno_get_gpu_pixel_alignment =
+ ::dlsym(libadreno_utils, "get_gpu_pixel_alignment");
}
}
@@ -164,16 +167,22 @@
}
}
} else {
+ int alignment = 32;
switch (format)
{
case HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO:
- aligned_w = ALIGN(width, 32);
+ aligned_w = ALIGN(width, alignment);
break;
case HAL_PIXEL_FORMAT_YCbCr_420_SP_TILED:
aligned_w = ALIGN(width, 128);
break;
case HAL_PIXEL_FORMAT_YCbCr_420_SP:
case HAL_PIXEL_FORMAT_YCrCb_420_SP:
+ if (LINK_adreno_get_gpu_pixel_alignment) {
+ alignment = LINK_adreno_get_gpu_pixel_alignment();
+ }
+ aligned_w = ALIGN(width, alignment);
+ break;
case HAL_PIXEL_FORMAT_YV12:
case HAL_PIXEL_FORMAT_YCbCr_422_SP:
case HAL_PIXEL_FORMAT_YCrCb_422_SP:
diff --git a/libgralloc/gr.h b/libgralloc/gr.h
index ce63d42..484b980 100644
--- a/libgralloc/gr.h
+++ b/libgralloc/gr.h
@@ -120,5 +120,6 @@
int *aligned_w,
int *aligned_h);
+ unsigned int (*LINK_adreno_get_gpu_pixel_alignment) ();
};
#endif /* GR_H_ */