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

Dylan Baker dylan at pnwbakers.com
Mon Dec 17 22:16:07 UTC 2018


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.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181217/e37cfcd6/attachment-0001.sig>


More information about the mesa-dev mailing list