Checking GLSL Driver Support

To put it simple, we often come across that a user say that they are unable to or that their computer is unable to compile our shaders, but their GPU can clearly handle it, it’s just that they are using an old driver and need to update.

The simplest way to handle this is to just tell the user when starting up the application, if she/he is unable to handle the shaders, to make sure that they are using the latest drivers for their GPU.

But the real question is not what the simplest solution is; it is rather what the best solution is.

How would you recommend me to handle this? Is there an easy way to tell if the GPU can handle the shaders with an update, or if it really is unable to handle it? Should I link the user somewhere to download drivers or, how would you recommend me to handle it?

Pleas, share your experiences with similar situations if you have any! : )

Isn’t it simpler to check GL/GLSL version (GL_VERSION/GL_SHADING_LANGUAGE_VERSION), GPU ID(for example using Registry setting, like HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\Services\nvlddmkm\Enum), and check against some database (for which GPU what are the latest drivers/GL version).

It would be nice to have some official site where NV updates GPU/Drivers/GL compatibility. :)

Thanks for the reply!

It was something like that I had in mind, but a such database feels like it quickly could get outdated. Though… the newer cards are like to support the current GLSL versions for the get go anyway… probably. It is more of a problem if old cards get added support through an update or similar. Then the database ideally should get patched if you don’t want ti to trick to the user into believing their card is incapable. A bit of a burden, and it does not feel that ideal.

Is there a way to tell how old a graphics card is or get some other stats from it? And do you know if there is a complete database somewhere with all graphics card and their capabilities when updated?

And, yeah, it would be nice to have some official site, or if everybody creating GPUs, had an official way of handling this; to check if the driver is the latest version, and what capabilities the card will have through that driver. :)