From 47bd806579dd3e7ae0e5f4830b63acf6e444e2a6 Mon Sep 17 00:00:00 2001 From: Poornima Date: Mon, 22 Jan 2018 10:27:26 +0530 Subject: [PATCH] Added Support for 64bit RGB format Jira: https://jira01.devtools.intel.com/browse/OAM-52530 Tests: Test Passes Signed-off-by: Poornima --- cros_gralloc/i915_private_android.cc | 4 ++++ i915_private.c | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cros_gralloc/i915_private_android.cc b/cros_gralloc/i915_private_android.cc index dbd2827..d8f585c 100644 --- a/cros_gralloc/i915_private_android.cc +++ b/cros_gralloc/i915_private_android.cc @@ -34,6 +34,8 @@ uint32_t i915_private_convert_format(int format) return DRM_FORMAT_YUV422; case HAL_PIXEL_FORMAT_P010_INTEL: return DRM_FORMAT_P010; + case HAL_PIXEL_FORMAT_RGBA_FP16: + return DRM_FORMAT_XBGR161616; } return DRM_FORMAT_NONE; @@ -77,6 +79,8 @@ int32_t i915_private_invert_format(int format) return HAL_PIXEL_FORMAT_YCbCr_422_SP; case DRM_FORMAT_YUV422: return HAL_PIXEL_FORMAT_YCbCr_422_888; + case DRM_FORMAT_XBGR161616: + return HAL_PIXEL_FORMAT_RGBA_FP16; default: cros_gralloc_error("Unhandled DRM format %4.4s", drmFormat2Str(format)); } diff --git a/i915_private.c b/i915_private.c index 904a7e5..b1921c6 100644 --- a/i915_private.c +++ b/i915_private.c @@ -23,7 +23,8 @@ static const uint32_t private_linear_source_formats[] = { DRM_FORMAT_R16, DRM_FORMAT_NV16, DRM_FORMAT_YUV420, DRM_FORMAT_YUV422, DRM_FORMAT_YUV444, DRM_FORMAT_NV21, - DRM_FORMAT_P010, DRM_FORMAT_RGB888, DRM_FORMAT_BGR888 }; + DRM_FORMAT_P010, DRM_FORMAT_RGB888, DRM_FORMAT_BGR888, + DRM_FORMAT_XRGB161616, DRM_FORMAT_XBGR161616 }; static const uint32_t private_source_formats[] = { DRM_FORMAT_P010, DRM_FORMAT_NV12_Y_TILED_INTEL }; @@ -150,6 +151,9 @@ uint32_t i915_private_bpp_from_format(uint32_t format, size_t plane) return 8; case DRM_FORMAT_R16: return 16; + case DRM_FORMAT_XRGB161616: + case DRM_FORMAT_XBGR161616: + return 64; } fprintf(stderr, "drv: UNKNOWN FORMAT %d\n", format); @@ -174,6 +178,8 @@ size_t i915_private_num_planes_from_format(uint32_t format) { switch (format) { case DRM_FORMAT_R16: + case DRM_FORMAT_XRGB161616: + case DRM_FORMAT_XBGR161616: return 1; case DRM_FORMAT_NV12_Y_TILED_INTEL: case DRM_FORMAT_NV16: -- 2.11.0