[Mesa-dev] [RFC] Deprecating old DRI loaders/drivers

Emil Velikov emil.l.velikov at gmail.com
Tue May 16 13:05:58 UTC 2017

Hi all,

As many of you know the current DRI interface provides backwards
compatibility between old loaders and new drivers, and vice-versa.

Sometimes issues cannot be addressed with the existing extensions and
we need to bump the version or provide an alternative extension.
In such cases we still preserve the old buggy code path.

Even when that's not the case, we still end up with highly divergent
code, as some features are exposed only when the extension criteria is

At the moment we claim to support any loader <> driver combination in
existence, while in reality components from different Mesa versions
are rarely tested.
One noticeable exception is the legacy DRI1 drivers. Therefore this
proposal does _not_ cover any DRI1 specific changes.

To straighten the code flow and remove much of the unused code, I'm
proposing the following:

1) Establish deprecation period - keep in mind the DRI loader in Xserver.
2) Any extension that is supported on both driver and loader gets deprecated.
  A) Drivers and loaders are annotated to emit a warning when used
with 'too old' counterpart.
  B) If applicable extensions are moved out of dri_interface.h to
another header.
3) At the end of deprecation period:
  A) Cleanup all the dead code.

Personally, 1 year sounds reasonable, as that constitutes of four Mesa
major releases.
For the other actions, I have patches around that I could polish and
sending to the list.

I would greatly appreciate any input, esp. from distribution maintainers.

Should my proposal seem unsuitable, I would strongly encourage people
to provide brief action plan alongside the obstacles they see.


More information about the mesa-dev mailing list