sdm/gralloc: Use correct DRM format enums for RGB formats
Android/SDM formats are endian independent whereas DRM formats are little endian, so convert Android/SDM RGB formats to the correct DRM format enums and vice versa. Change-Id: I822d65eee198c8d8e2df0884b7b987ef17c0eb79 CRs-fixed: 1114808
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
7943ec969d
commit
11b5d27285
@@ -1241,55 +1241,55 @@ void getDRMFormat(int hal_format, int flags, uint32_t *drm_format,
|
|||||||
|
|
||||||
switch (hal_format) {
|
switch (hal_format) {
|
||||||
case HAL_PIXEL_FORMAT_RGBA_8888:
|
case HAL_PIXEL_FORMAT_RGBA_8888:
|
||||||
*drm_format = DRM_FORMAT_RGBA8888;
|
*drm_format = DRM_FORMAT_ABGR8888;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGBA_5551:
|
case HAL_PIXEL_FORMAT_RGBA_5551:
|
||||||
*drm_format = DRM_FORMAT_RGBA5551;
|
*drm_format = DRM_FORMAT_ABGR1555;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGBA_4444:
|
case HAL_PIXEL_FORMAT_RGBA_4444:
|
||||||
*drm_format = DRM_FORMAT_RGBA4444;
|
*drm_format = DRM_FORMAT_ABGR4444;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_BGRA_8888:
|
case HAL_PIXEL_FORMAT_BGRA_8888:
|
||||||
*drm_format = DRM_FORMAT_BGRA8888;
|
*drm_format = DRM_FORMAT_ARGB8888;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGBX_8888:
|
case HAL_PIXEL_FORMAT_RGBX_8888:
|
||||||
*drm_format = DRM_FORMAT_RGBX8888;
|
*drm_format = DRM_FORMAT_XBGR8888;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_BGRX_8888:
|
case HAL_PIXEL_FORMAT_BGRX_8888:
|
||||||
*drm_format = DRM_FORMAT_BGRX8888;
|
*drm_format = DRM_FORMAT_XRGB8888;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGB_888:
|
case HAL_PIXEL_FORMAT_RGB_888:
|
||||||
*drm_format = DRM_FORMAT_RGB888;
|
*drm_format = DRM_FORMAT_BGR888;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGB_565:
|
case HAL_PIXEL_FORMAT_RGB_565:
|
||||||
*drm_format = DRM_FORMAT_RGB565;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_BGR_565:
|
|
||||||
*drm_format = DRM_FORMAT_BGR565;
|
*drm_format = DRM_FORMAT_BGR565;
|
||||||
break;
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_BGR_565:
|
||||||
|
*drm_format = DRM_FORMAT_RGB565;
|
||||||
|
break;
|
||||||
case HAL_PIXEL_FORMAT_RGBA_1010102:
|
case HAL_PIXEL_FORMAT_RGBA_1010102:
|
||||||
*drm_format = DRM_FORMAT_RGBA1010102;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_ARGB_2101010:
|
|
||||||
*drm_format = DRM_FORMAT_ARGB2101010;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_RGBX_1010102:
|
|
||||||
*drm_format = DRM_FORMAT_RGBX1010102;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_XRGB_2101010:
|
|
||||||
*drm_format = DRM_FORMAT_XRGB2101010;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_BGRA_1010102:
|
|
||||||
*drm_format = DRM_FORMAT_BGRA1010102;
|
|
||||||
break;
|
|
||||||
case HAL_PIXEL_FORMAT_ABGR_2101010:
|
|
||||||
*drm_format = DRM_FORMAT_ABGR2101010;
|
*drm_format = DRM_FORMAT_ABGR2101010;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_BGRX_1010102:
|
case HAL_PIXEL_FORMAT_ARGB_2101010:
|
||||||
|
*drm_format = DRM_FORMAT_BGRA1010102;
|
||||||
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_RGBX_1010102:
|
||||||
|
*drm_format = DRM_FORMAT_XBGR2101010;
|
||||||
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_XRGB_2101010:
|
||||||
*drm_format = DRM_FORMAT_BGRX1010102;
|
*drm_format = DRM_FORMAT_BGRX1010102;
|
||||||
break;
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_BGRA_1010102:
|
||||||
|
*drm_format = DRM_FORMAT_ARGB2101010;
|
||||||
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_ABGR_2101010:
|
||||||
|
*drm_format = DRM_FORMAT_RGBA1010102;
|
||||||
|
break;
|
||||||
|
case HAL_PIXEL_FORMAT_BGRX_1010102:
|
||||||
|
*drm_format = DRM_FORMAT_XRGB2101010;
|
||||||
|
break;
|
||||||
case HAL_PIXEL_FORMAT_XBGR_2101010:
|
case HAL_PIXEL_FORMAT_XBGR_2101010:
|
||||||
*drm_format = DRM_FORMAT_XBGR2101010;
|
*drm_format = DRM_FORMAT_RGBX1010102;
|
||||||
break;
|
break;
|
||||||
case HAL_PIXEL_FORMAT_YCbCr_420_SP:
|
case HAL_PIXEL_FORMAT_YCbCr_420_SP:
|
||||||
*drm_format = DRM_FORMAT_NV12;
|
*drm_format = DRM_FORMAT_NV12;
|
||||||
|
|||||||
@@ -496,64 +496,64 @@ void HWInfoDRM::GetSDMFormat(uint32_t drm_format, uint64_t drm_format_modifier,
|
|||||||
vector<LayerBufferFormat> *sdm_formats) {
|
vector<LayerBufferFormat> *sdm_formats) {
|
||||||
vector<LayerBufferFormat> &fmts(*sdm_formats);
|
vector<LayerBufferFormat> &fmts(*sdm_formats);
|
||||||
switch (drm_format) {
|
switch (drm_format) {
|
||||||
case DRM_FORMAT_ARGB8888:
|
case DRM_FORMAT_BGRA8888:
|
||||||
fmts.push_back(kFormatARGB8888);
|
fmts.push_back(kFormatARGB8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBA8888:
|
case DRM_FORMAT_ABGR8888:
|
||||||
fmts.push_back(drm_format_modifier ? kFormatRGBA8888Ubwc : kFormatRGBA8888);
|
fmts.push_back(drm_format_modifier ? kFormatRGBA8888Ubwc : kFormatRGBA8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_BGRA8888:
|
case DRM_FORMAT_ARGB8888:
|
||||||
fmts.push_back(kFormatBGRA8888);
|
fmts.push_back(kFormatBGRA8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_XRGB8888:
|
case DRM_FORMAT_BGRX8888:
|
||||||
fmts.push_back(kFormatXRGB8888);
|
fmts.push_back(kFormatXRGB8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBX8888:
|
case DRM_FORMAT_XBGR8888:
|
||||||
fmts.push_back(drm_format_modifier ? kFormatRGBX8888Ubwc : kFormatRGBX8888);
|
fmts.push_back(drm_format_modifier ? kFormatRGBX8888Ubwc : kFormatRGBX8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_BGRX8888:
|
case DRM_FORMAT_XRGB8888:
|
||||||
fmts.push_back(kFormatBGRX8888);
|
fmts.push_back(kFormatBGRX8888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBA5551:
|
case DRM_FORMAT_ABGR1555:
|
||||||
fmts.push_back(kFormatRGBA5551);
|
fmts.push_back(kFormatRGBA5551);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBA4444:
|
case DRM_FORMAT_ABGR4444:
|
||||||
fmts.push_back(kFormatRGBA4444);
|
fmts.push_back(kFormatRGBA4444);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGB888:
|
case DRM_FORMAT_BGR888:
|
||||||
fmts.push_back(kFormatRGB888);
|
fmts.push_back(kFormatRGB888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_BGR888:
|
case DRM_FORMAT_RGB888:
|
||||||
fmts.push_back(kFormatBGR888);
|
fmts.push_back(kFormatBGR888);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGB565:
|
|
||||||
fmts.push_back(drm_format_modifier ? kFormatBGR565Ubwc : kFormatBGR565);
|
|
||||||
break;
|
|
||||||
case DRM_FORMAT_BGR565:
|
case DRM_FORMAT_BGR565:
|
||||||
|
fmts.push_back(drm_format_modifier ? kFormatBGR565Ubwc : kFormatRGB565);
|
||||||
|
break;
|
||||||
|
case DRM_FORMAT_RGB565:
|
||||||
fmts.push_back(kFormatBGR565);
|
fmts.push_back(kFormatBGR565);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBA1010102:
|
case DRM_FORMAT_ABGR2101010:
|
||||||
fmts.push_back(drm_format_modifier ? kFormatRGBA1010102Ubwc : kFormatRGBA1010102);
|
fmts.push_back(drm_format_modifier ? kFormatRGBA1010102Ubwc : kFormatRGBA1010102);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_ARGB2101010:
|
case DRM_FORMAT_BGRA1010102:
|
||||||
fmts.push_back(kFormatARGB2101010);
|
fmts.push_back(kFormatARGB2101010);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_RGBX1010102:
|
case DRM_FORMAT_XBGR2101010:
|
||||||
fmts.push_back(drm_format_modifier ? kFormatRGBX1010102Ubwc : kFormatRGBX1010102);
|
fmts.push_back(drm_format_modifier ? kFormatRGBX1010102Ubwc : kFormatRGBX1010102);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_XRGB2101010:
|
case DRM_FORMAT_BGRX1010102:
|
||||||
fmts.push_back(kFormatXRGB2101010);
|
fmts.push_back(kFormatXRGB2101010);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_BGRA1010102:
|
case DRM_FORMAT_ARGB2101010:
|
||||||
fmts.push_back(kFormatBGRA1010102);
|
fmts.push_back(kFormatBGRA1010102);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_ABGR2101010:
|
case DRM_FORMAT_RGBA1010102:
|
||||||
fmts.push_back(kFormatABGR2101010);
|
fmts.push_back(kFormatABGR2101010);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_BGRX1010102:
|
case DRM_FORMAT_XRGB2101010:
|
||||||
fmts.push_back(kFormatBGRX1010102);
|
fmts.push_back(kFormatBGRX1010102);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_XBGR2101010:
|
case DRM_FORMAT_RGBX1010102:
|
||||||
fmts.push_back(kFormatXBGR2101010);
|
fmts.push_back(kFormatXBGR2101010);
|
||||||
break;
|
break;
|
||||||
case DRM_FORMAT_YVU420:
|
case DRM_FORMAT_YVU420:
|
||||||
|
|||||||
Reference in New Issue
Block a user