[Mesa-dev] Directly using upstream headers (Was Re: [PATCH] vulkan: Don't install vk_platform.h or vulkan.h.)
Eric Engestrom
eric.engestrom at imgtec.com
Fri Jan 27 11:39:27 UTC 2017
On Thursday, 2017-01-26 18:54:59 +0000, Emil Velikov wrote:
> On 25 January 2017 at 22:10, Chad Versace <chadversary at chromium.org> wrote:
> > On Tue 24 Jan 2017, Jason Ekstrand wrote:
> >> On Tue, Jan 24, 2017 at 11:25 AM, Emil Velikov <emil.l.velikov at gmail.com>
>
> >> > I'd rather not. That would make sense if we all lived in the open-source
> >> > world where everything is upstream all the time. Unfortunately, not all
> >> of
> >> > us have that luxury and we need to be able to work on experimental
> >> branches
> >> > of the spec that may have more extensions than are provided by any loader
> >> > version we can install. I'd be ok with a check for a particular loader
> >> > version just to force distros to update their loader but I would like to
> >> be
> >> > able to build with arbitrary XML branches without having to install a
> >> branch
> >> > of the loader.
> >> What if I tell you that you wouldn't need to install the loader ;-)
> >> More as we get a .pc patches in.
> >>
> >>
> >> A lot of extensions don't require explicit loader support. I don't want to
> >> have to update my loader (or put it in some folder and point pkg-config at it)
> >> just to hack on them.
> >
> > And, Mesa should build Vulkan against its own imported headers.
> > Otherwise, the Mesa build would effectively require version lock between
> > it and the installed loader headers; this version lock is made more
> > difficult because the loader headers aren't really versioned. Upstream
> > unintentionally breaks things. When I bisect Mesa with a git-bisect
> > script, I do not also want to hack the script to checkout and re-install
> > the loader during the bisect.
> >
> > Evidence: https://cgit.freedesktop.org/mesa/mesa/commit/?id=c085bfcec9915879e97a33c5235cf21607c72318
> >
> > A Bigger Problem: You cannot force the distro to upgrade its loader
> > headers. If the loader-provided headers on Android N differ from those
> > on Android O and Android P due to stupid upstream API breakage, and
> > those once again differ from those in Fedora 25 and Fedora 29... Despite
> > that, Mesa must continue to build on all supported platforms. Satisfying
> > that may be hellish if Mesa builds against the system's Vulkan headers
> > instead of its own.
>
> In generally it's a matter of ensuring people do the better/more
> robust (?) thing.
> Sadly that means a bit (albeit somewhat trivial) amount of work on each side.
>
> From Vulkan (Mesa in general) developers, POV:
> - to point to the specific files
>
> Distributions:
> - update regularly
>
> Khronos:
> - ensure that both headers and XML files are updated for development
> branches...
> Having the script which generates vulkan.h/other publicly accessible
> would be also nice ;-)
It is :)
https://github.com/KhronosGroup/Vulkan-Docs/blob/1.0/src/spec/genvk.py
./genvk.py -registry vk.xml vulkan.h
> - write tests and wire those to make check (or equivalent)
>
> In practise neither one is easy due to the amount if people it needs
> to be coordinated with. And considering that people are always busy
> with more important thing... I don't see it happening soon :-(
>
> Either way, I hope we don't get to a situation similar to the *GL* headers.
> Emil
More information about the mesa-dev
mailing list