Мартин Грасслин (Martin Gräßlin), ведущий разработчик оконного менеджера KWin, сообщил о намерении прекратить поддержку OpenGL 1.x и удалить соответствующий код. Поддержка устаревших видеокарт в Kwin, выпущенных более шести лет назад, связана с рядом существенных технических трудностей. Кроме того, отмечается, что в настоящее время наибольшее распространение уже получила спецификация OpenGL 2.0, которую поддерживают все более-менее современные графические карты.

К подобным мыслям Мартин пришел наблюдая за стратегией компании Apple, которая прекратит поддержку большого спектра устаревшего оборудования в своей следующей версии Mac OS X 10.8. Это первый релиз, в котором Apple специально удаляет поддержку устаревших систем, отталкиваясь от возможностей GPU, а не типа центрального процессора.

Грасслин классифицирует всё существующее графическое оборудование на две группы: всё что поддерживает хотя бы OpenGL 2.0 и всё остальное. Использование устаревшего оборудования, не поддерживающего OpenGL 2.0, требует поддержки кода во многом несовместимого с первой группой устройств, а попытки его оптимизации и учета особенностей устаревших систем - приводят к "деградации качества всей системы". Попытки сохранения дальнейшей совместимости с уже редким и устаревшим оборудованием, поддерживающим только OpenGL 1.1, заметно повышает сложность сопровождения KWin, что требует дополнительных затрат, как времени, так и материальных ресурсов. Кроме того, устаревшее оборудование уже почти невозможно купить, поэтому поддержка большинства устаревших систем остаётся непротестированной.

Так, по словам Грасслина, OpenGL 2.0 поддерживается на чипах ATI/AMD начиная с R300 (Radeon 9500) и с 2002 года, в продукции NVIDIA - начиная с модели NV40 (GeForce 6), которая вышла в 2004 году, а на картах Intel начиная с модели i965, которая была выпушена в 2006 году. Таким образом, чипы с поддержкой OpenGL 2.0 доминируют на рынке уже как минимум 6 лет.

Впрочем, в таком подходе не все так просто. Например, Мартин указывает, что проприетарный драйвер AMD Catalyst (fglrx) обеспечивает приемлемую производительность операций, используемых в композитном режиме KWin, только при задействовании непрямого (indirect) рендеринга, доступ к которому возможен только через API OpenGL 1.x. Таким образом удалив поддержку OpenGL 1.x, придется отказаться от поддержки композитного режима на базе OpenGL для всех систем, использующих драйвер fglrx, даже если GPU поддерживает OpenGL 4. При этом открытый драйвер radeon не испытывает проблем с OpenGL 2 на том же оборудовании. Тем не менее, Грасслин говорит, что он не ставит перед собой цель перестать поддерживать проприетарные драйверы, поэтому поддержка Catalyst будет сохранена.

В качестве универсального решения для всех владельцев устаревшего оборудования рассматривается использование Gallium3D-драйвера llvmpipe, входящего в последние версии Mesa и предназначенного для осуществления полностью программного 3D-рендеринга (требующие привлечения GPU операции преобразуются в промежуточное представление LLVM и затем транслируются в стандартный машинный код для архитектур x86 или x86-64). В частности, данный драйвер планируется использовать в Fedora 17 для запуска GNOME Shell на устаревших картах. Грасслин собирается протестировать производительность и возможности входящего в состав Mesa 8.0 драйвера llvmpipe применительно и к KWin. Если итоговая производительность будет на приемлемом уровне, то в KWin будет обеспечена поддержка работы через llvmpipe, что облегчит принятие трудного решения по отказу от поддержки устаревшего OpenGL 1.x.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33158