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

Rob Clark robdclark at gmail.com
Tue Mar 13 23:47:03 UTC 2018


On Tue, Mar 13, 2018 at 7:27 PM, Rob Clark <robdclark at gmail.com> wrote:
> On Tue, Mar 13, 2018 at 7:10 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
>> Quoting Rob Clark (2018-03-13 16:04:00)
>>> ---
>>> I'm a bit unsure about the xcb-present version dependency, as that was
>>> added in a different commit.  OTOH I guess Dave is building vulkan with
>>> his patch so it is perhaps not a built-time dependency.
>>>
>>>  meson.build | 11 ++++++++---
>>>  1 file changed, 8 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/meson.build b/meson.build
>>> index c201644c372..30f1919e6f5 100644
>>> --- a/meson.build
>>> +++ b/meson.build
>>> @@ -1235,9 +1235,14 @@ if with_platform_x11
>>>      dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8')
>>>
>>>      if with_dri3
>>> -      pre_args += ['-DHAVE_DRI3', '-DHAVE_DRI3_MODIFIERS']
>>> -      dep_xcb_dri3 = dependency('xcb-dri3', version : '>= 1.13')
>>> -      dep_xcb_present = dependency('xcb-present', version: '>= 1.13')
>>> +      pre_args += '-DHAVE_DRI3'
>>> +      dep_xcb_dri3 = dependency('xcb-dri3')
>>> +      dep_xcb_present = dependency('xcb-present')
>>> +      # until xcb-dri3 has been around long enough to make a hard-dependency:
>>> +      dep_xcb_dri3_modifiers = dependency('xcb-dri3', version : '>= 1.13', required : false)
>>> +      if dep_xcb_dri3_modifiers.found()
>>
>> I think you could simplify this by doing:
>>
>>          if dep_xcb_dri3.version().version_compare('>= 1.13')
>
> ahh, yeah, and I guess that will get rid of the confusing error msg
> about xcb-dri3 1.13 not found..
>
>
>>
>> Or should we be checking for xcb_dri3 and xcb_present >= 1.13?
>
> I'm not entirely sure why we were checking for xcb-present >= 1.13..
> if that is actually a build time requirement then I think Dave's
> initial patch needs some more ifdef..  (but otoh, if it was, I guess
> he would have noticed.)
>
> Anyways, I did a build w/ anv+radv enabled with xcb-present == 1.12
> (and xcb-dri3 1.12).. and 61309c2a727d52d543207d6ae79fcb3e68b5cff3
> looks like it just cares about >= 1.12 of both of those (although not
> sure if it is a compile time dependency).
>
> So *possibly* for both meson and autotools we should require 1.12, and
> optionally 1.13 for HAVE_DRI3_MODIFIERS?
>

so mystery solved, Dave #ifdef'd out the present dependencies too ;-)

so this is what I end up with:

@@ -1235,9 +1235,14 @@ if with_platform_x11
     dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8')

     if with_dri3
-      pre_args += ['-DHAVE_DRI3', '-DHAVE_DRI3_MODIFIERS']
-      dep_xcb_dri3 = dependency('xcb-dri3', version : '>= 1.13')
-      dep_xcb_present = dependency('xcb-present', version: '>= 1.13')
+      pre_args += '-DHAVE_DRI3'
+      dep_xcb_dri3 = dependency('xcb-dri3')
+      dep_xcb_present = dependency('xcb-present')
+      # until xcb-dri3 has been around long enough to make a hard-dependency:
+      if dep_xcb_dri3.version().version_compare('>= 1.13') and
+         dep_xcb_present.version().version_compare('>= 1.13')
+        pre_args += '-DHAVE_DRI3_MODIFIERS'
+      endif
       dep_xcb_sync = dependency('xcb-sync')
       dep_xshmfence = dependency('xshmfence', version : '>= 1.1')
     endif


More information about the mesa-dev mailing list