hwc: Add support for RGBA_4444 and RGBA_5551 formats

1. Modify gralloc library to allocate buffers for RGBA_4444 and
   RGBA_5551 formats
2. Modify copybit library to add composition support for RGBA_4444
   and RGBA_5551 layers
3. Modify hwc library to add MDP composition and rotator support for
   RGBA_4444 and RGBA_5551 layers.

Change-Id: I30dbc4e5e2c010835fa7e7663f996f67779a1803
This commit is contained in:
Ramkumar Radhakrishnan
2014-10-09 13:54:07 -07:00
parent 964395241b
commit b8eb16d792
4 changed files with 16 additions and 3 deletions

View File

@@ -126,6 +126,8 @@ static void intersect(struct copybit_rect_t *out,
static int get_format(int format) {
switch (format) {
case HAL_PIXEL_FORMAT_RGB_565: return MDP_RGB_565;
case HAL_PIXEL_FORMAT_RGBA_5551: return MDP_RGBA_5551;
case HAL_PIXEL_FORMAT_RGBA_4444: return MDP_RGBA_4444;
case HAL_PIXEL_FORMAT_RGBX_8888: return MDP_RGBX_8888;
case HAL_PIXEL_FORMAT_BGRX_8888: return MDP_BGRX_8888;
case HAL_PIXEL_FORMAT_RGB_888: return MDP_RGB_888;

View File

@@ -1154,6 +1154,8 @@ bool isRotatorSupportedFormat(private_handle_t *hnd) {
if(hnd != NULL) {
switch(hnd->format) {
case HAL_PIXEL_FORMAT_RGBA_8888:
case HAL_PIXEL_FORMAT_RGBA_5551:
case HAL_PIXEL_FORMAT_RGBA_4444:
case HAL_PIXEL_FORMAT_RGB_565:
case HAL_PIXEL_FORMAT_RGB_888:
case HAL_PIXEL_FORMAT_BGRA_8888:

View File

@@ -93,6 +93,10 @@ int getMdpFormat(int format) {
return MDP_RGB_888;
case HAL_PIXEL_FORMAT_RGB_565:
return MDP_RGB_565;
case HAL_PIXEL_FORMAT_RGBA_5551:
return MDP_RGBA_5551;
case HAL_PIXEL_FORMAT_RGBA_4444:
return MDP_RGBA_4444;
case HAL_PIXEL_FORMAT_BGRA_8888:
return MDP_BGRA_8888;
case HAL_PIXEL_FORMAT_BGRX_8888:
@@ -126,9 +130,6 @@ int getMdpFormat(int format) {
return MDP_Y_CBCR_H2V2_VENUS;
default:
//Unsupported by MDP
//---graphics.h--------
//HAL_PIXEL_FORMAT_RGBA_5551
//HAL_PIXEL_FORMAT_RGBA_4444
//---gralloc_priv.h-----
//HAL_PIXEL_FORMAT_YCrCb_420_SP_ADRENO = 0x7FA30C01
//HAL_PIXEL_FORMAT_R_8 = 0x10D
@@ -180,6 +181,10 @@ int getHALFormat(int mdpFormat) {
return HAL_PIXEL_FORMAT_RGB_888;
case MDP_RGB_565:
return HAL_PIXEL_FORMAT_RGB_565;
case MDP_RGBA_5551:
return HAL_PIXEL_FORMAT_RGBA_5551;
case MDP_RGBA_4444:
return HAL_PIXEL_FORMAT_RGBA_4444;
case MDP_BGRA_8888:
return HAL_PIXEL_FORMAT_BGRA_8888;
case MDP_Y_CR_CB_GH2V2:

View File

@@ -432,6 +432,8 @@ inline bool isRgb(uint32_t format) {
case MDP_BGRA_8888:
case MDP_RGBX_8888:
case MDP_RGB_565:
case MDP_RGBA_4444:
case MDP_RGBA_5551:
return true;
default:
return false;
@@ -443,6 +445,8 @@ inline const char* getFormatString(int format){
#define STR(f) #f;
static const char* formats[MDP_IMGTYPE_LIMIT + 1] = {0};
formats[MDP_RGB_565] = STR(MDP_RGB_565);
formats[MDP_RGBA_5551] = STR(MDP_RGBA_5551);
formats[MDP_RGBA_4444] = STR(MDP_RGBA_4444);
formats[MDP_XRGB_8888] = STR(MDP_XRGB_8888);
formats[MDP_Y_CBCR_H2V2] = STR(MDP_Y_CBCR_H2V2);
formats[MDP_Y_CBCR_H2V2_ADRENO] = STR(MDP_Y_CBCR_H2V2_ADRENO);