OSDN Git Service

Add Support for 32bit RGB format
authorpyn1 <poornima.y.n@intel.com>
Wed, 28 Feb 2018 09:06:41 +0000 (14:36 +0530)
committerKalyan Kondapally <kalyan.kondapally@intel.com>
Fri, 2 Mar 2018 03:39:42 +0000 (19:39 -0800)
i.e. To add support for HAL_PIXEL_FORMAT_RGBA_1010102

Jira: https://jira01.devtools.intel.com/browse/OAM-58928
Tests: Test Passes for the intended format
Signed-off-by: Poornima <poornima.y.n@intel.com>
cros_gralloc/i915_private_android.cc
i915_private.c

index d8f585c..115a9ef 100644 (file)
@@ -36,6 +36,8 @@ uint32_t i915_private_convert_format(int format)
                return DRM_FORMAT_P010;
        case HAL_PIXEL_FORMAT_RGBA_FP16:
                return DRM_FORMAT_XBGR161616;
+       case HAL_PIXEL_FORMAT_RGBA_1010102:
+               return DRM_FORMAT_ABGR2101010;
        }
 
        return DRM_FORMAT_NONE;
@@ -81,6 +83,8 @@ int32_t i915_private_invert_format(int format)
                return HAL_PIXEL_FORMAT_YCbCr_422_888;
        case DRM_FORMAT_XBGR161616:
                return HAL_PIXEL_FORMAT_RGBA_FP16;
+       case DRM_FORMAT_ABGR2101010:
+               return HAL_PIXEL_FORMAT_RGBA_1010102;
        default:
                cros_gralloc_error("Unhandled DRM format %4.4s", drmFormat2Str(format));
        }
index b1921c6..f32fcbc 100644 (file)
@@ -24,7 +24,8 @@ static const uint32_t private_linear_source_formats[] = { DRM_FORMAT_R16,    DRM
                                                          DRM_FORMAT_YUV420, DRM_FORMAT_YUV422,
                                                          DRM_FORMAT_YUV444, DRM_FORMAT_NV21,
                                                          DRM_FORMAT_P010, DRM_FORMAT_RGB888, DRM_FORMAT_BGR888,
-                                                         DRM_FORMAT_XRGB161616, DRM_FORMAT_XBGR161616 };
+                                                         DRM_FORMAT_XRGB161616, DRM_FORMAT_XBGR161616,
+                                                         DRM_FORMAT_ABGR2101010 };
 
 static const uint32_t private_source_formats[] = { DRM_FORMAT_P010, DRM_FORMAT_NV12_Y_TILED_INTEL };
 
@@ -154,6 +155,8 @@ uint32_t i915_private_bpp_from_format(uint32_t format, size_t plane)
         case DRM_FORMAT_XRGB161616:
         case DRM_FORMAT_XBGR161616:
                 return 64;
+        case DRM_FORMAT_ABGR2101010:
+                return 32;
        }
 
        fprintf(stderr, "drv: UNKNOWN FORMAT %d\n", format);
@@ -180,6 +183,7 @@ size_t i915_private_num_planes_from_format(uint32_t format)
        case DRM_FORMAT_R16:
         case DRM_FORMAT_XRGB161616:
         case DRM_FORMAT_XBGR161616:
+       case DRM_FORMAT_ABGR2101010:
                return 1;
        case DRM_FORMAT_NV12_Y_TILED_INTEL:
        case DRM_FORMAT_NV16: