gralloc: Modify check for uncompressed RGB buffers

The previous check for RGB formats skipped certain formats and hence
the alignment was incorrect.
Add a check for all non-compressed RGB formats before calling
getGpuAlignedWidthHeight

Acked by: Naomi Luis<nluis@codeaurora.org>

CRs-fixed: 888733
Bug: 23967172
Change-Id: Icae4cfb92ceae5e593fd6c5658999fc90ef97ea1
diff --git a/msm8994/libgralloc/alloc_controller.cpp b/msm8994/libgralloc/alloc_controller.cpp
old mode 100644
new mode 100755
index 4cb1661..bc5e68c
--- a/msm8994/libgralloc/alloc_controller.cpp
+++ b/msm8994/libgralloc/alloc_controller.cpp
@@ -137,12 +137,37 @@
 }
 
 
+bool isUncompressedRgbFormat(int format)
+{
+    bool is_rgb_format = false;
+
+    switch (format)
+    {
+        case HAL_PIXEL_FORMAT_RGBA_8888:
+        case HAL_PIXEL_FORMAT_RGBX_8888:
+        case HAL_PIXEL_FORMAT_RGB_888:
+        case HAL_PIXEL_FORMAT_RGB_565:
+        case HAL_PIXEL_FORMAT_BGRA_8888:
+        case HAL_PIXEL_FORMAT_RGBA_5551:
+        case HAL_PIXEL_FORMAT_RGBA_4444:
+        case HAL_PIXEL_FORMAT_R_8:
+        case HAL_PIXEL_FORMAT_RG_88:
+        case HAL_PIXEL_FORMAT_BGRX_8888:    // Intentional fallthrough
+            is_rgb_format = true;
+            break;
+        default:
+            break;
+    }
+
+    return is_rgb_format;
+}
+
 void AdrenoMemInfo::getAlignedWidthAndHeight(int width, int height, int format,
                             int usage, int& aligned_w, int& aligned_h)
 {
 
     // Currently surface padding is only computed for RGB* surfaces.
-    if (format <= HAL_PIXEL_FORMAT_BGRA_8888) {
+    if (isUncompressedRgbFormat(format) == true) {
         int tileEnabled = isMacroTileEnabled(format, usage);
         AdrenoMemInfo::getInstance().getGpuAlignedWidthHeight(width,
             height, format, tileEnabled, aligned_w, aligned_h);
diff --git a/msm8994/libgralloc/gpu.cpp b/msm8994/libgralloc/gpu.cpp
index 6269ee6..447dde4 100644
--- a/msm8994/libgralloc/gpu.cpp
+++ b/msm8994/libgralloc/gpu.cpp
@@ -192,12 +192,9 @@
 {
     *bufferType = BUFFER_TYPE_VIDEO;
 
-    if (inputFormat <= HAL_PIXEL_FORMAT_BGRA_8888) {
+    if (isUncompressedRgbFormat(inputFormat) == TRUE) {
         // RGB formats
         *bufferType = BUFFER_TYPE_UI;
-    } else if ((inputFormat == HAL_PIXEL_FORMAT_R_8) ||
-               (inputFormat == HAL_PIXEL_FORMAT_RG_88)) {
-        *bufferType = BUFFER_TYPE_UI;
     }
 }
 
diff --git a/msm8994/libgralloc/gr.h b/msm8994/libgralloc/gr.h
index 5ee0cf8..54202c5 100644
--- a/msm8994/libgralloc/gr.h
+++ b/msm8994/libgralloc/gr.h
@@ -75,6 +75,9 @@
 // To query if UBWC is enabled, based on format and usage flags
 bool isUBwcEnabled(int format, int usage);
 
+// Function to check if the format is an uncompressed RGB format
+bool isUncompressedRgbFormat(int format);
+
 /*****************************************************************************/
 
 class Locker {