[Mesa-dev] [PATCH] WIP: meson: allow building DRI loaders without a DRI driver

Tobias Klausmann tobias.johannes.klausmann at mni.thm.de
Mon Dec 17 23:22:20 UTC 2018


On 17.12.18 23:16, Dylan Baker wrote:
> Quoting Tobias Klausmann (2018-12-17 14:05:13)
>> On 17.12.18 20:33, Dylan Baker wrote:
>>> Quoting Emil Velikov (2018-12-17 11:10:00)
>>>> On Fri, 14 Dec 2018 at 17:57, Dylan Baker <dylan at pnwbakers.com> wrote:
>>>>> Quoting Emil Velikov (2018-12-13 08:15:57)
>>>>>> From: Emil Velikov <emil.velikov at collabora.com>
>>>>>>
>>>>>> Reasonably often people will want to build the loader w/o any drivers.
>>>>>> Be that debugging an issue in the former, distribution bundle or other.
>>>>>>
>>>>>> Currently there is an artificial restriction preventing people to build
>>>>>> a config like the following:
>>>>>>
>>>>>>    meson build/ -Dglx=dri -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=
>>>>>>
>>>>>> Cc: Dylan Baker <dylan at pnwbakers.com>
>>>>>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>>>>> ---
>>>>>> This is a WIP, since it's obviously incomplete/wrong. Input or fix
>>>>>> would be appreciated.
>>>>>>
>>>>>> Thanks
>>>>>> Emil
>>>>>> ---
>>>>>>    meson.build | 12 +-----------
>>>>>>    1 file changed, 1 insertion(+), 11 deletions(-)
>>>>>>
>>>>>> diff --git a/meson.build b/meson.build
>>>>>> index 2aa2794f971..e1d6561c1a3 100644
>>>>>> --- a/meson.build
>>>>>> +++ b/meson.build
>>>>>> @@ -285,14 +285,6 @@ if with_glx == 'dri'
>>>>>>       endif
>>>>>>    endif
>>>>>>
>>>>>> -if not (with_dri or with_gallium or with_glx == 'xlib' or with_glx == 'gallium-xlib')
>>>>>> -  with_gles1 = false
>>>>>> -  with_gles2 = false
>>>>>> -  with_opengl = false
>>>>>> -  with_any_opengl = false
>>>>>> -  with_shared_glapi = false
>>>>>> -endif
>>>>>> -
>>>>>>    _gbm = get_option('gbm')
>>>>>>    if _gbm == 'auto'
>>>>>>      with_gbm = system_has_kms_drm and with_dri
>>>>>> @@ -352,9 +344,7 @@ if with_glx != 'disabled'
>>>>>>          error('xlib conflicts with any dri driver')
>>>>>>        endif
>>>>>>      elif with_glx == 'dri'
>>>>>> -    if not with_dri
>>>>>> -      error('dri based GLX requires at least one DRI driver')
>>>>>> -    elif not with_shared_glapi
>>>>>> +    if not with_shared_glapi
>>>>>>          error('dri based GLX requires shared-glapi')
>>>>>>        endif
>>>>>>      endif
>>>>>> --
>>>>>> 2.19.2
>>>>>>
>>>>> I'll have to think about this some more, I'm still not exactly sure why you'd
>>>>> want to build the loader without a driver (although I could see why you might
>>>>> want the driver without the loader).
>>>>>
>> Building both separate breaks away the dependency for llvm/clang while
>> building the loader package (mesa), thus eliminating the bottleneck, the
>> long build time of llvm/clang, in a complete build cycle of a whole
>> distribution rebuild for the packages "waiting" on mesa to complete. The
>> mesa-drivers package can wait for llvm/clang in the meantime. Right now
>> i have solved this by building the classic swrast with mesa and
>> instantly throwing it away after the build is finished.
>>
>> Btw: Building the drivers without a windowing system would be nice as
>> well, this applies to the above use case where the -drivers package does
>> not need a windowing system, as it is contained in the other package.
>>
>> Greetings
>>
>> Tobias
> This sounds like asking mesa to carry a lot of complexity so that distros can
> build mesa as three separate packages. I'm really not thrilled about adding
> such a feature unless someone wants to step up and be the maintainer of that
> build mode and ensure it works. All of this complexity is technical debt that
> the project is assuming, it makes the build definitions harder to read and
> modify, and unless there's someone who actually uses such a mode (ie, not a core
> developer, since no one has asked for this), it's just going to get broken. We
> already have the most complicated build system I have ever seen (excluding Linux
> and the core OS of FreeBSD) with more knobs and switches for micro tuning, let
> alone all of the different combinations of drivers, platforms, window systems,
> and APIs.

Actually splitting it even further is maybe a bit too much, yes, yet the 
usecase of splitting into two worked with autotools, may it be by design 
decision of by chance! I was just noting the second messy bit in such a 
usecase (with beeing a bit off topic: sorry for that!), as on of the 
messy bits are going to be fixed by Emils patch (or a following version)!


So, thumbs up from me building the loaders without drivers!

Greetings

Tobias



>
> Dylan


More information about the mesa-dev mailing list