[Mesa-dev] How to obtain OpenGL implementation/driver information?

Jerome Glisse j.glisse at gmail.com
Fri Feb 4 08:26:15 PST 2011

On Thu, Feb 3, 2011 at 4:37 PM, Benoit Jacob <bjacob at mozilla.com> wrote:
> Hi,
> I'm trying to see how to implement selective whitelisting/blacklisting of driver versions on X11 (my use case is to whitelist drivers for Firefox). The naive approach consists in creating an OpenGL context and calling glGetString(), however that is not optimal for me, for these reasons:
>  * This has been enough to trigger crashes in the past.
>  * This can take long (this affects the startup time of the browser).
>  * This doesn't always give driver version information (at least the ATI blob doesn't seem to).
> Ideally I want to be able to know the driver name, driver version, Mesa version, and any other thing that you think may be relevant. I need to get that information in a fast and safe way.
> Is there a good solution to this problem? It might even be acceptable to assume that the X server is local, although of course I would prefer a solution that works with remote X.
> I've been told to check xdriinfo, but this seems to only give the driver name and not a driver version. I've also been told that checking for GLX >= 1.4 would already ensure Mesa >= 7.9, is that correct?
> Cheers,
> Benoit

There is no other way than glGetString if you ever experienced crash
with it, it would be because you are doing something terribly wrong
like using it without current context. glGetString is one of the most
tested gl functions with the open source stack as it's the foundation
of one of the most used gl program on linux aka glxinfo. I never did
see glxinfo trigger a crash on any released mesa.

Only other way i can think of are hackish and not reliable (like
trying to read Xorg log which you have no garantee of existence or
right to access or even place where it is or even worse when there is
several X server running).

Jerome Glisse

More information about the mesa-dev mailing list