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

Emil Velikov emil.l.velikov at gmail.com
Tue Dec 18 11:07:16 UTC 2018


On Mon, 17 Dec 2018 at 22:17, Dylan Baker <dylan at pnwbakers.com> 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.
>
Testing is already covered in the Travis configs that I've sent out ;-)
Fwiw autotools has allowed such flexible building for a while, so it
will be great if we had an equivalent.

-Emil


More information about the mesa-dev mailing list