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

Kyle Brenneman kbrenneman at nvidia.com
Tue Nov 24 12:22:33 PST 2015


On 11/13/2015 12:50 PM, Kyle Brenneman wrote:
> 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?

Does anyone have any thoughts or opinions on this?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151124/6efa0b0b/attachment.html>


More information about the mesa-dev mailing list