On 12 June 2015 at 09:48, Dave Airlie <airl...@gmail.com> wrote: > We need this for doing USB offload scenarios using glamor > and modesetting driver. > > unfortunately only gbm in mesa 10.6 has support for the > linear API. > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > configure.ac | 5 +++++ > glamor/glamor.h | 3 ++- > glamor/glamor_egl.c | 5 ++++- > glamor/glamor_egl_stubs.c | 2 +- > glamor/glamor_fbo.c | 10 +++++----- > hw/xwayland/xwayland-glamor.c | 2 +- > include/dix-config.h.in | 3 +++ > 7 files changed, 21 insertions(+), 9 deletions(-) > > diff --git a/configure.ac b/configure.ac > index f760730..d0908e5 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -2105,6 +2105,11 @@ if test "x$GLAMOR" = xyes; then > if test "x$GBM" = xyes; then > AC_DEFINE(GLAMOR_HAS_GBM, 1, > [Build glamor with GBM-based EGL support]) > + PKG_CHECK_MODULES(GBM_HAS_LINEAR, "gbm >= 10.6.0", > [GBM_HAS_LINEAR=yes], [GBM_HAS_LINEAR=no]) > + if test "x$GBM_HAS_LINEAR" = xyes; then > + AC_DEFINE(GLAMOR_HAS_GBM_LINEAR, 1, > + [Build glamor/gbm has linear support]) > + fi > fi > > fi > diff --git a/glamor/glamor.h b/glamor/glamor.h > index 0d57fff..657354d 100644 > --- a/glamor/glamor.h > +++ b/glamor/glamor.h > @@ -142,7 +142,8 @@ extern _X_EXPORT void glamor_enable_dri3(ScreenPtr > screen); > extern _X_EXPORT unsigned int > glamor_egl_create_argb8888_based_texture(ScreenPtr > > screen, > int w, > - int > h); > + int h, > + Bool > linear); > extern _X_EXPORT int glamor_egl_dri3_fd_name_from_tex(ScreenPtr, PixmapPtr, > unsigned int, Bool, > CARD16 *, CARD32 *); > diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c > index dc54561..2f22c44 100644 > --- a/glamor/glamor_egl.c > +++ b/glamor/glamor_egl.c > @@ -187,7 +187,7 @@ glamor_egl_get_gbm_device(ScreenPtr screen) > } > > unsigned int > -glamor_egl_create_argb8888_based_texture(ScreenPtr screen, int w, int h) > +glamor_egl_create_argb8888_based_texture(ScreenPtr screen, int w, int h, > Bool linear) > { > ScrnInfoPtr scrn = xf86ScreenToScrn(screen); > struct glamor_egl_screen_private *glamor_egl; > @@ -200,6 +200,9 @@ glamor_egl_create_argb8888_based_texture(ScreenPtr > screen, int w, int h) > > glamor_egl = glamor_egl_get_screen_private(scrn); > bo = gbm_bo_create(glamor_egl->gbm, w, h, GBM_FORMAT_ARGB8888, > +#ifdef GLAMOR_GBM_HAS_LINEAR > + (linear ? GBM_BO_USE_LINEAR : 0) | > +#endif
Yes I got this define wrong, will fix locally (had to hack out to build against old mesa). Dave. _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel