[Mesa-dev] [RFC] Vendor-neutral dispatch library for OpenGL

Kyle Brenneman kbrenneman at nvidia.com
Fri Nov 13 11:50:53 PST 2015


On 10/08/2015 12:29 PM, Emil Velikov wrote:
> On 06/10/15 20:58, Kyle Brenneman wrote:
>> On 10/06/2015 12:43 PM, Emil Velikov wrote:
>>> On 6 October 2015 at 16:39, Kyle Brenneman <kbrenneman at nvidia.com> wrote:
>>>> On 10/06/2015 07:34 AM, Emil Velikov wrote:
>>>>> Hello Kyle,
>>>>>
>>>>> A few questions/points of discussion:
>>>>>
>>>>>    * What is your take on having a libglvnd 'package', which provides
>>>>> the headers (and maybe other materials), apart from the libraries ?
>>>>> I'm basically thinking about OpenGL.h, GLX.h, etc for programs that
>>>>> wish to use new ABI, and glvnd{Foo,Bar}.h which mesa and other GL
>>>>> implementations.
>>>> I haven't looked much into packaging yet. I'm open to any suggestions that
>>>> might make that easier, though.
>>>>
>>>> One thing that I'm planning to do but haven't gotten to yet is to move the
>>>> public headers into a separate directory. There's a couple of header files
>>>> (libglxabi.h and GLdispatchABI.h) that are intended to be used by vendor
>>>> library implementations, and the other headers are all internal.
>>>>
>>>> The headers that you'd use for compiling an application (gl.h, glx.h, etc.)
>>>> could easily go into a separate package, too.
>>>>
>>> By 'packaging' I meant that the relevant files are available after
>>> `make install'. Currently for GLdispatchABI.h and others that's not
>>> the case. We can leave it up-to the distributions to manage the actual
>>> packages (if in doubt a document to guide them), but we can make sure
>>> that the files (including pkg-config and cmake ones, separate set for
>>> user/developer) are there.
>> The 'make install' command currently doesn't do anything with the
>> regular GL headers. I would expect that if someone's building an OpenGL
>> application, then they've probably already installed some version of the
>> GL headers separately. Still, I could probably add a configure option or
>> something to include them.
>>
> Pretty much what I was wondering. Mostly as I've noticed that the
> official Nvidia driver has started shipping some headers which clash
> with mesa ones :'( Perhaps the AMD proprietary driver ships some as well ?
>
>> Including the public ABI headers in a "make install" does sound like a
>> good idea. Maybe put them next to the normal GL headers, or under a
>> GLVND subdirectory?
> A separate location sounds better imho. Then again this information will
> be made available via the .pc .cmake files. People that don't use them
> can hardcode thing as needed :)
>
> [snip]
I agree that a separate directory from the other GL headers would be 
best. I'm leaning toward putting the libglvnd headers into a sibling 
directory to the GL headers, probably /usr/include/GLVND.

Putting them in a subdirectory under GL (/usr/include/GL/GLVND) would 
also be an option. But eventually, libglvnd will have an EGL header 
there as well, and putting that under /usr/include/GL seems less 
appropriate.

Does that sound like a good place for them?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151113/04a41d14/attachment.html>


More information about the mesa-dev mailing list