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

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 met. 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. Thanks Emil