Skip to content

driconf: allow force-enable/disable GLX extensions and indirect GL extensions

Martin Roukala requested to merge mupuf/mesa:swap_method into master

The (rather old) game Brink is currently broken on Mesa because Mesa does not expose the GLX_OML_swap_method's exchange swap method. The reason why it is not exposed is a little complex, and I suggest you check out #106 (closed) if you want more information.

In the end, this extension is actually quite harmful and has been superseded by better extensions (buffer age, ...), so working more on it feels like a waste of time. Luckily, disabling this extension fixes the game on my AMD machine (more fixes coming for Intel). Disabling it globally might have been fine (NVIDIA's blob does not expose it), but I do not have the resources to do the QA.

This MR fixes Brink by introducing a new driconf option to force-enable/disable GLX extensions, then using it for brink specifically. It will also enable fixing existing and upcoming issues of the same kind much more rapidly.

@ajax, @random2324: do you still agree with this approach?

PS: This is partly reviving one of my last patch series in mesa, from 5 years ago. Funny that I would have to resurrect that as part of my new job. I am hoping to keep on adding driconf options (GL version override, GL extension override), to easily fix all these games that don't really work on Mesa because of something rather trivial.

Edited by Martin Roukala

Merge request reports