This is for glamor can support fd from DRM render node which is useful for a render only DDX.
Signed-off-by: Qiang Yu <qiang...@amd.com> --- configure.ac | 3 +++ glamor/glamor_egl.c | 4 ++++ include/dix-config.h.in | 3 +++ 3 files changed, 10 insertions(+) diff --git a/configure.ac b/configure.ac index 110027d..ac11e65 100644 --- a/configure.ac +++ b/configure.ac @@ -2166,6 +2166,9 @@ if test "x$GLAMOR" = xyes; then AC_MSG_ERROR([Glamor for Xorg requires $LIBGBM]) fi fi + + PKG_CHECK_MODULES(LIBDRM, "libdrm >= 2.4.74", + [AC_DEFINE(GLAMOR_HAS_DRM_NAME_FROM_FD_2, 1, [Have GLAMOR_HAS_DRM_NAME_FROM_FD_2])], []) fi AM_CONDITIONAL([GLAMOR_EGL], [test "x$GBM" = xyes]) diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 4bde637..ca94227 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -685,7 +685,11 @@ glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx) /* To do DRI3 device FD generation, we need to open a new fd * to the same device we were handed in originally. */ +#ifdef GLAMOR_HAS_DRM_NAME_FROM_FD_2 + glamor_egl->device_path = drmGetDeviceNameFromFd2(glamor_egl->fd); +#else glamor_egl->device_path = drmGetDeviceNameFromFd(glamor_egl->fd); +#endif if (!dri3_screen_init(screen, &glamor_dri3_info)) { xf86DrvMsg(scrn->scrnIndex, X_ERROR, diff --git a/include/dix-config.h.in b/include/dix-config.h.in index d357910..c3f956d 100644 --- a/include/dix-config.h.in +++ b/include/dix-config.h.in @@ -518,6 +518,9 @@ /* Build glamor/gbm has linear support */ #undef GLAMOR_HAS_GBM_LINEAR +/* Build glamor use new drmGetDeviceNameFromFD2 */ +#undef GLAMOR_HAS_DRM_NAME_FROM_FD_2 + /* byte order */ #undef X_BYTE_ORDER -- 2.7.4 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel