[Mesa-dev] [PATCH] dri3: allow building against older xcb (v3)

Rob Clark robdclark at gmail.com
Tue Mar 13 21:08:46 UTC 2018


On Tue, Mar 13, 2018 at 4:48 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> Quoting Dave Airlie (2018-03-13 13:06:00)
>> From: Dave Airlie <airlied at redhat.com>
>>
>> I'm not sure everyone wants to be updating their dri3 in a forced
>> march setting, this allows a nicer approach, esp when you want
>> to build on distro that aren't brand new.
>>
>> I'm sure there are plenty of ways this patch could be cleaner,
>> and I've also not built it against an updated dri3.
>>
>> For meson I've just left it alone, since if you are using meson
>> you probably don't mind xcb updates, and if you are using meson
>> you can fix this better than me.
>>
>> v3: just don't put a version in for dri3/present without
>> modifiers, should allow building with 1.11 as well
>>
>> (feel free to supply meson followups)
>>
>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>> ---
>>  configure.ac                             | 12 +++++++++---
>>  meson.build                              |  2 +-
>>  src/egl/drivers/dri2/platform_x11_dri3.c |  4 ++++
>>  src/loader/loader_dri3_helper.c          | 22 ++++++++++++++++------
>>  src/loader/loader_dri3_helper.h          |  3 ++-
>>  src/vulkan/wsi/wsi_common_x11.c          | 12 ++++++++++--
>>  6 files changed, 42 insertions(+), 13 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 1553ce99da..dcf3f924ee 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -92,9 +92,9 @@ WAYLAND_REQUIRED=1.11
>>  WAYLAND_PROTOCOLS_REQUIRED=1.8
>>  XCB_REQUIRED=1.9.3
>>  XCBDRI2_REQUIRED=1.8
>> -XCBDRI3_REQUIRED=1.13
>> +XCBDRI3_MODIFIERS_REQUIRED=1.13
>>  XCBGLX_REQUIRED=1.8.1
>> -XCBPRESENT_REQUIRED=1.13
>> +XCBPRESENT_MODIFIERS_REQUIRED=1.13
>>  XDAMAGE_REQUIRED=1.1
>>  XSHMFENCE_REQUIRED=1.1
>>  XVMC_REQUIRED=1.0.6
>> @@ -1851,8 +1851,14 @@ fi
>>  if test x"$enable_dri3" = xyes; then
>>      DEFINES="$DEFINES -DHAVE_DRI3"
>>
>> -    dri3_modules="x11-xcb xcb >= $XCB_REQUIRED xcb-dri3 >= $XCBDRI3_REQUIRED xcb-xfixes xcb-present >= $XCBPRESENT_REQUIRED xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
>> +    dri3_modules="x11-xcb xcb >= $XCB_REQUIRED xcb-dri3 xcb-xfixes xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
>>      PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
>> +    dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present >= $XCBPRESENT_MODIFIERS_REQUIRES"
>> +    PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], [have_dri3_modifiers=yes], [have_dri3_modifiers=no])
>> +
>> +    if test "x$have_dri3_modifiers" == xyes; then
>> +        DEFINES="$DEFINES -DHAVE_DRI3_MODIFIERS"
>> +    fi
>>  fi
>>
>>  AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11')
>> diff --git a/meson.build b/meson.build
>> index 3c63f38438..0012815254 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -1235,7 +1235,7 @@ if with_platform_x11
>>      dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8')
>>
>>      if with_dri3
>> -      pre_args += '-DHAVE_DRI3'
>> +      pre_args += '-DHAVE_DRI3 -DHAVE_DRI3_MODIFIERS'
>
> That should be `pre_args += ['-DHAVE_DRI3', '-DHAVE_DRI3_MODFIERS']`
>
> I don't personally care about libxcb < 1.13, so this approach is fine with me. I
> don't the that the version of meson that ships with any of the LTS/EL type
> releases this matters for will build mesa anyway.
>

fwiw, f27 doesn't (yet?) have xcb 1.13, which makes me wonder who else
(who isn't building their own xcb) does, other than rawhide and
similar bleeding edge distro versions.. f27 isn't exactly ancient,
which makes me think the hard dependency on xcb 1.13 is a bit
premature.

(also, as nir+clover gets a bit more functional, I could totally see
users want to build latest mesa with something that is
modern-but-not-bleeding-edge distro.. although I guess we could just
tell them to use autotools.. still annoying for me since I'd prefer to
use meson ;-))

but I can have a go at a similar patch for meson

BR,
-R


More information about the mesa-dev mailing list