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
next 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.