[RFC,v2] drm_hwcomposer: Rework platformdrmgeneric.cpp to use libdrm's gralloc handle

Message ID 1522727841-22086-1-git-send-email-john.stultz@linaro.org
State New
Headers show
Series
  • [RFC,v2] drm_hwcomposer: Rework platformdrmgeneric.cpp to use libdrm's gralloc handle
Related show

Commit Message

John Stultz April 3, 2018, 3:57 a.m.
Rework the platformdrmgeneric buffer importer to use the libdrm
generic gralloc handle definition.

This is just to get the drm_hwcomposer project building in AOSP
along with the libdrm freedesktop/master branch. Similar changes
may also be needed to gbm_gralloc and other projects not used
in AOSP.

Mostly just sending this out for review feedback.

Cc: Robert Foss <robert.foss@collabora.com>
Cc: Rob Herring <rob.herring@linaro.org>
Cc: Sean Paul <seanpaul@google.com>
Cc: Stefan Schake <stschake@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>

---
v2: Utilize libdrm exporting headers to avoid having to tweak
    the includes path, as suggsted by Stefan Schake
---
 platformdrmgeneric.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

-- 
2.7.4

Comments

Robert Foss April 4, 2018, 9:24 a.m. | #1
Hey,

Builds for hikey960, pushed upstream.


Rob.

On 04/03/2018 05:57 AM, John Stultz wrote:
> Rework the platformdrmgeneric buffer importer to use the libdrm
> generic gralloc handle definition.
> 
> This is just to get the drm_hwcomposer project building in AOSP
> along with the libdrm freedesktop/master branch. Similar changes
> may also be needed to gbm_gralloc and other projects not used
> in AOSP.
> 
> Mostly just sending this out for review feedback.
> 
> Cc: Robert Foss <robert.foss@collabora.com>
> Cc: Rob Herring <rob.herring@linaro.org>
> Cc: Sean Paul <seanpaul@google.com>
> Cc: Stefan Schake <stschake@gmail.com>
> Signed-off-by: John Stultz <john.stultz@linaro.org>
> ---
> v2: Utilize libdrm exporting headers to avoid having to tweak
>      the includes path, as suggsted by Stefan Schake
> ---
>   platformdrmgeneric.cpp | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/platformdrmgeneric.cpp b/platformdrmgeneric.cpp
> index 741d42b..2a6773c 100644
> --- a/platformdrmgeneric.cpp
> +++ b/platformdrmgeneric.cpp
> @@ -25,7 +25,7 @@
>   #include <xf86drmMode.h>
>   
>   #include <cutils/log.h>
> -#include <gralloc_drm_handle.h>
> +#include <gralloc_handle.h>
>   #include <hardware/gralloc.h>
>   #include <EGL/eglext.h>
>   
> @@ -85,23 +85,23 @@ uint32_t DrmGenericImporter::ConvertHalFormatToDrm(uint32_t hal_format) {
>   }
>   
>   EGLImageKHR DrmGenericImporter::ImportImage(EGLDisplay egl_display, buffer_handle_t handle) {
> -  gralloc_drm_handle_t *gr_handle = gralloc_drm_handle(handle);
> +  gralloc_handle_t *gr_handle = gralloc_handle(handle);
>     if (!gr_handle)
>       return NULL;
>     EGLint attr[] = {
> -    EGL_WIDTH, gr_handle->width,
> -    EGL_HEIGHT, gr_handle->height,
> +    EGL_WIDTH, (EGLint)gr_handle->width,
> +    EGL_HEIGHT, (EGLint)gr_handle->height,
>       EGL_LINUX_DRM_FOURCC_EXT, (EGLint)ConvertHalFormatToDrm(gr_handle->format),
>       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,
> +    EGL_DMA_BUF_PLANE0_PITCH_EXT, (EGLint)gr_handle->stride,
>       EGL_NONE,
>     };
>     return eglCreateImageKHR(egl_display, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, NULL, attr);
>   }
>   
>   int DrmGenericImporter::ImportBuffer(buffer_handle_t handle, hwc_drm_bo_t *bo) {
> -  gralloc_drm_handle_t *gr_handle = gralloc_drm_handle(handle);
> +  gralloc_handle_t *gr_handle = gralloc_handle(handle);
>     if (!gr_handle)
>       return -EINVAL;
>   
>
John Stultz April 4, 2018, 5:33 p.m. | #2
On Wed, Apr 4, 2018 at 2:24 AM, Robert Foss <robert.foss@collabora.com> wrote:
> Hey,
>
> Builds for hikey960, pushed upstream.
>

Much appreciated! Thanks so much!
-john

Patch

diff --git a/platformdrmgeneric.cpp b/platformdrmgeneric.cpp
index 741d42b..2a6773c 100644
--- a/platformdrmgeneric.cpp
+++ b/platformdrmgeneric.cpp
@@ -25,7 +25,7 @@ 
 #include <xf86drmMode.h>
 
 #include <cutils/log.h>
-#include <gralloc_drm_handle.h>
+#include <gralloc_handle.h>
 #include <hardware/gralloc.h>
 #include <EGL/eglext.h>
 
@@ -85,23 +85,23 @@  uint32_t DrmGenericImporter::ConvertHalFormatToDrm(uint32_t hal_format) {
 }
 
 EGLImageKHR DrmGenericImporter::ImportImage(EGLDisplay egl_display, buffer_handle_t handle) {
-  gralloc_drm_handle_t *gr_handle = gralloc_drm_handle(handle);
+  gralloc_handle_t *gr_handle = gralloc_handle(handle);
   if (!gr_handle)
     return NULL;
   EGLint attr[] = {
-    EGL_WIDTH, gr_handle->width,
-    EGL_HEIGHT, gr_handle->height,
+    EGL_WIDTH, (EGLint)gr_handle->width,
+    EGL_HEIGHT, (EGLint)gr_handle->height,
     EGL_LINUX_DRM_FOURCC_EXT, (EGLint)ConvertHalFormatToDrm(gr_handle->format),
     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,
+    EGL_DMA_BUF_PLANE0_PITCH_EXT, (EGLint)gr_handle->stride,
     EGL_NONE,
   };
   return eglCreateImageKHR(egl_display, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, NULL, attr);
 }
 
 int DrmGenericImporter::ImportBuffer(buffer_handle_t handle, hwc_drm_bo_t *bo) {
-  gralloc_drm_handle_t *gr_handle = gralloc_drm_handle(handle);
+  gralloc_handle_t *gr_handle = gralloc_handle(handle);
   if (!gr_handle)
     return -EINVAL;