Querying OpenGL version on X11 may return only the highest supported OpenGL version that provides the deprecated functionality. Since Mesa does not support (and will not support) compatibility OpenGL profiles, KInfoCenter may incorrectly show only OpenGL 3.0 as the latest supported OpenGL version. This patch queries the supported OpenGL core profiles and displays the highest supported core profile if such information is available.
The patch works as expected with my Sandy Bridge HD3000 GPU and Mesa 17.0.5. KInfoCenter correctly shows that Core profile 3.3 is supported on this GPU. Additional Testing was done on Radeon 7730LE, Mesa 17.1rc2. OpenGL 3.0 compatibility and OpenGL 4.5 core profile support is shown correctly.
v2. The code now tries to leverage GLX_MESA_query_renderer when it is available and falls back to the old-fashioned probing otherwise. As for some of the suggestions by Martin:
- The new code now uses nullptrs instead of NULLs
- qCDebug() does not seem to be used anywhere in the whole kinfocenter so I cannot simply replace qDebug()s with their qCDebug() counterparts without declaring the logging category first.
- As for the GlxContext builders, is it worth it to pull in some KWin dependencies just to query the OpenGL core profile? Currently the kinfocenter does not seem to depend of KWin in any way.