diff options
author | Kaushik Kanetkar <kaushikk@codeaurora.org> | 2015-08-29 20:16:54 -0600 |
---|---|---|
committer | Kaushik Kanetkar <kaushikk@codeaurora.org> | 2015-09-10 12:07:12 -0600 |
commit | 4cb337cbfd234417bd9094b7d42455a02bc14542 (patch) | |
tree | 82174ea4968808e95c42c32681474bfe029bfec2 /libgralloc/alloc_controller.cpp | |
parent | 5ea144d2235971be9ffda5989e2a1b999cf04d37 (diff) | |
download | android_hardware_qcom_display-4cb337cbfd234417bd9094b7d42455a02bc14542.tar.gz android_hardware_qcom_display-4cb337cbfd234417bd9094b7d42455a02bc14542.tar.bz2 android_hardware_qcom_display-4cb337cbfd234417bd9094b7d42455a02bc14542.zip |
gralloc: Add HAL_PIXEL_FORMAT_BGR_565 format
- Define new format in gralloc_priv.h header
- Add support for HAL_PIXEL_FORMAT_BGR_565 while allocating buffers
CRs-fixed: 904907
Change-Id: I2cf3cdcfc5c89b11abc4ceb4daba77a5123ecf67
Diffstat (limited to 'libgralloc/alloc_controller.cpp')
-rw-r--r-- | libgralloc/alloc_controller.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp index e6693c9d6..1b59fde10 100644 --- a/libgralloc/alloc_controller.cpp +++ b/libgralloc/alloc_controller.cpp @@ -183,6 +183,7 @@ bool isUncompressedRgbFormat(int format) case HAL_PIXEL_FORMAT_RGBX_8888: case HAL_PIXEL_FORMAT_RGB_888: case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: case HAL_PIXEL_FORMAT_BGRA_8888: case HAL_PIXEL_FORMAT_RGBA_5551: case HAL_PIXEL_FORMAT_RGBA_4444: @@ -330,6 +331,7 @@ void AdrenoMemInfo::getGpuAlignedWidthHeight(int width, int height, int format, bpp = 3; break; case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: case HAL_PIXEL_FORMAT_RGBA_5551: case HAL_PIXEL_FORMAT_RGBA_4444: bpp = 2; @@ -382,6 +384,8 @@ ADRENOPIXELFORMAT AdrenoMemInfo::getGpuPixelFormat(int hal_format) return ADRENO_PIXELFORMAT_R8G8B8X8; case HAL_PIXEL_FORMAT_RGB_565: return ADRENO_PIXELFORMAT_B5G6R5; + case HAL_PIXEL_FORMAT_BGR_565: + return ADRENO_PIXELFORMAT_R5G6B5; case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: return ADRENO_PIXELFORMAT_NV12; case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS: @@ -511,6 +515,7 @@ bool isMacroTileEnabled(int format, int usage) case HAL_PIXEL_FORMAT_RGBX_8888: case HAL_PIXEL_FORMAT_BGRA_8888: case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: { tileEnabled = true; // check the usage flags @@ -547,6 +552,7 @@ unsigned int getSize(int format, int width, int height, int usage, size = alignedw * alignedh * 3; break; case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: case HAL_PIXEL_FORMAT_RGBA_5551: case HAL_PIXEL_FORMAT_RGBA_4444: case HAL_PIXEL_FORMAT_RAW16: @@ -879,7 +885,7 @@ static bool isUBwcSupported(int format) // Existing HAL formats with UBWC support switch(format) { - case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: case HAL_PIXEL_FORMAT_RGBA_8888: case HAL_PIXEL_FORMAT_RGBX_8888: case HAL_PIXEL_FORMAT_NV12_ENCODEABLE: @@ -988,7 +994,7 @@ static unsigned int getUBwcSize(int width, int height, int format, unsigned int size = 0; switch (format) { - case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: size = alignedw * alignedh * 2; size += getUBwcMetaBufferSize(width, height, 2); break; @@ -1014,7 +1020,7 @@ int getRgbDataAddress(private_handle_t* hnd, void** rgb_data) int err = 0; // This api is for RGB* formats - if (hnd->format > HAL_PIXEL_FORMAT_BGRA_8888) { + if (!isUncompressedRgbFormat(hnd->format)) { return -EINVAL; } @@ -1026,7 +1032,7 @@ int getRgbDataAddress(private_handle_t* hnd, void** rgb_data) unsigned int meta_size = 0; switch (hnd->format) { - case HAL_PIXEL_FORMAT_RGB_565: + case HAL_PIXEL_FORMAT_BGR_565: meta_size = getUBwcMetaBufferSize(hnd->width, hnd->height, 2); break; case HAL_PIXEL_FORMAT_RGBA_8888: |