Skip to contentSkip to conversation

drm_hwcomposer: Rework platformdrmgeneric.cpp to use libdrm's gralloc handle

RFC PATCH Superseded John Stultz 2 participants 3 messages Mar 16, 2018 – Mar 19, 2018

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 drm_hwcomposer: Rework platformdrmgeneric.cpp to use libdrm's gralloc handle

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 <[email protected]>
Cc Rob Herring <[email protected]>
Cc Sean Paul <[email protected]>
---
 Android.mk             |  2 +-
 platformdrmgeneric.cpp | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)
Android.mk +1 -1
index 1add286..383de1c 100644
@@ -47,7 +47,7 @@ LOCAL_SHARED_LIBRARIES := \
 LOCAL_STATIC_LIBRARIES := libdrmhwc_utils
 
 LOCAL_C_INCLUDES := \
-	external/drm_gralloc \
+	external/libdrm/android \
 	system/core/libsync
 
 LOCAL_SRC_FILES := \
platformdrmgeneric.cpp +6 -6
index 741d42b..2a6773c 100644
@@ -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;
 
Signature · 6 lines
2.7.4

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
#1 lore raw

Hey John,

Android.mk LOCAL_SHARED_LIBRARIES := \ · line 51

Quoted 4 lines · John Stultz

LOCAL_C_INCLUDES := \

Android.mk +1 -1
-       external/drm_gralloc \
+       external/libdrm/android \
        system/core/libsync

This shouldn't be necessary if libdrm correctly exports its headers, but it seems that it only did for the static variant of the library. I've sent a patch to fix that, then the explicit path here can be dropped.

Thanks,
Stefan
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#2 lore raw
Quoted 11 lines · Stefan Schake

Hey John,

Android.mk LOCAL_SHARED_LIBRARIES := \ · line 51

Quoted 4 lines · John Stultz

LOCAL_C_INCLUDES := \

Android.mk +1 -1
-       external/drm_gralloc \
+       external/libdrm/android \
        system/core/libsync

This shouldn't be necessary if libdrm correctly exports its headers, but it seems that it only did for the static variant of the library. I've sent a patch to fix that, then the explicit path here can be dropped.

Sounds good. I've reworked my patch stack to include your change to libdrm and dropped this bit from this patch.

thanks
-john
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel