All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Stultz <john.stultz@linaro.org>
To: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Rob Herring <rob.herring@linaro.org>,
	Matt Szczesiak <matt.szczesiak@arm.com>,
	Dmitry Shmidt <dimitrysh@google.com>,
	Sean Paul <seanpaul@google.com>,
	Robert Foss <robert.foss@collabora.com>,
	Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>,
	Liviu Dudau <Liviu.Dudau@arm.com>,
	Marissa Wall <marissaw@google.com>,
	David Hanna <david.hanna11@gmail.com>
Subject: [RFC][PATCH 1/2] drm_hwcomposer: Error out on YUV layer as it would fail for single planes
Date: Tue,  6 Mar 2018 15:19:11 -0800	[thread overview]
Message-ID: <1520378352-31260-1-git-send-email-john.stultz@linaro.org> (raw)

As suggested by Alexandru-Cosmin Gheorghe:

ConvertHALFormatToDrm logic would work only for 1 plane formats,
and probably gets rejected by drmModeAddFb2, but to save
debugging time  maybe it worth removing DRM_FORMAT_YVU420 from
ConvertHALFormatToDrm and checking it's return code.

So this patch tries to do this.

Cc: Marissa Wall <marissaw@google.com>
Cc: Sean Paul <seanpaul@google.com>
Cc: Dmitry Shmidt <dimitrysh@google.com>
Cc: Robert Foss <robert.foss@collabora.com>
Cc: Matt Szczesiak <matt.szczesiak@arm.com>
Cc: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: David Hanna <david.hanna11@gmail.com>
Cc: Rob Herring <rob.herring@linaro.org>
Cc: Alexandru-Cosmin Gheorghe <Alexandru-Cosmin.Gheorghe@arm.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 platformdrmgeneric.cpp | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/platformdrmgeneric.cpp b/platformdrmgeneric.cpp
index 741d42b..33f1ea0 100644
--- a/platformdrmgeneric.cpp
+++ b/platformdrmgeneric.cpp
@@ -76,8 +76,6 @@ uint32_t DrmGenericImporter::ConvertHalFormatToDrm(uint32_t hal_format) {
       return DRM_FORMAT_ABGR8888;
     case HAL_PIXEL_FORMAT_RGB_565:
       return DRM_FORMAT_BGR565;
-    case HAL_PIXEL_FORMAT_YV12:
-      return DRM_FORMAT_YVU420;
     default:
       ALOGE("Cannot convert hal format to drm format %u", hal_format);
       return -EINVAL;
@@ -88,10 +86,15 @@ EGLImageKHR DrmGenericImporter::ImportImage(EGLDisplay egl_display, buffer_handl
   gralloc_drm_handle_t *gr_handle = gralloc_drm_handle(handle);
   if (!gr_handle)
     return NULL;
+
+  EGLint fmt = ConvertHalFormatToDrm(gr_handle->format);
+  if (fmt < 0)
+	return NULL;
+
   EGLint attr[] = {
     EGL_WIDTH, gr_handle->width,
     EGL_HEIGHT, gr_handle->height,
-    EGL_LINUX_DRM_FOURCC_EXT, (EGLint)ConvertHalFormatToDrm(gr_handle->format),
+    EGL_LINUX_DRM_FOURCC_EXT, fmt,
     EGL_DMA_BUF_PLANE0_FD_EXT, gr_handle->prime_fd,
     EGL_DMA_BUF_PLANE0_OFFSET_EXT, 0,
     EGL_DMA_BUF_PLANE0_PITCH_EXT, gr_handle->stride,
@@ -112,10 +115,14 @@ int DrmGenericImporter::ImportBuffer(buffer_handle_t handle, hwc_drm_bo_t *bo) {
     return ret;
   }
 
+  uint32_t  fmt = ConvertHalFormatToDrm(gr_handle->format);
+  if (fmt < 0)
+        return fmt;
+
   memset(bo, 0, sizeof(hwc_drm_bo_t));
   bo->width = gr_handle->width;
   bo->height = gr_handle->height;
-  bo->format = ConvertHalFormatToDrm(gr_handle->format);
+  bo->format = fmt;
   bo->usage = gr_handle->usage;
   bo->pitches[0] = gr_handle->stride;
   bo->gem_handles[0] = gem_handle;
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2018-03-06 23:19 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-06 23:19 John Stultz [this message]
2018-03-06 23:19 ` [RFC][PATCH 2/2 v4] drm_hwcomposer: Add platformhisi buffer importer for hikey and hikey960 John Stultz
2018-03-08 11:16   ` Robert Foss
2018-03-08 22:08     ` John Stultz
2018-03-12 23:53       ` Robert Foss
2018-03-08 11:10 ` [RFC][PATCH 1/2] drm_hwcomposer: Error out on YUV layer as it would fail for single planes Robert Foss
2018-03-08 19:43   ` John Stultz
2018-03-09  9:28     ` Alexandru-Cosmin Gheorghe
2018-03-09  9:29     ` Daniel Stone
2018-03-09  9:55       ` Alexandru-Cosmin Gheorghe
2018-03-09 11:06         ` Robert Foss
2018-03-12 10:48           ` Alexandru-Cosmin Gheorghe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1520378352-31260-1-git-send-email-john.stultz@linaro.org \
    --to=john.stultz@linaro.org \
    --cc=Alexandru-Cosmin.Gheorghe@arm.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=david.hanna11@gmail.com \
    --cc=dimitrysh@google.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=marissaw@google.com \
    --cc=matt.szczesiak@arm.com \
    --cc=rob.herring@linaro.org \
    --cc=robert.foss@collabora.com \
    --cc=seanpaul@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.