Состояния разработки Nouveau. Интервью с разработчиками из компании NVIDIA

Разработчики проекта Nouveau, в рамках которого разрабатывается открытый драйвер для видеокарт NVIDIA с поддержкой 2D и 3D акселерации, представили обновленный отчет о развитии проекта и степени поддержки тех или иных технологий. В настоящий момент драйвер поддерживает для видеокарт серий NV04/05, NV10, NV20, NV30, NV40, и NV50 технологии RandR 1.2, NouveauFB, X Render, переход в режим сна (KMS Suspend). Еще до конца не реализована поддержка Gallium3D драйвера, для карт NV50 не работает TV-Out, отсутствуют средства для управления энергосберегающими режимами, нет поддержки SLI-интерфейса. Напомню, что Nouveau будет использован в качестве основного драйвера для видеокарт от NVIDIA в грядущем релизе Fedora 12.

Что касается развития проприетарного драйвера, поддерживаемого компанией NVIDIA, то многие интересные факты можно найти в недавно опубликованном интервью с Andy Ritger, возглавляющим разработку NVIDIA драйверов для Unix-подобных ОС. Разработка драйвера ведется с использованием системы управления исходными текстами Perforce, для редактирования исходников применяются Emacs или Vim, для тестирования используются внутренние OpenGL тесты, пакет glxgears и игры Maya, Viewperf, Unigine Tropics, ETQW, Doom 3, Quake 3. Более 90% кодовой базы драйверов не привязаны к платформе и едины для платформ Linux и Windows.

По поводу драйвера Nouveau заявлено, что NVIDIA занимает нейтральную позицию, т.е. не намерена препятствовать разработке, но и не собирается помогать. Открытие спецификаций, как это делает AMD, называется маловероятным, так как имеется множество сдерживающих факторов, от устоявшейся политики компании и наличия интеллектуальной собственности субподрядчиков, до необходимости значительной переработки документации, изначально ориентированной на внутренее использование.

Доля загрузок Linux драйверов с сайта nvidia.com составляет около 0.5% от числа загрузки драйверов для windows, впрочем это объясняется тем, что как правило комплект Linux драйверов устанавливается из репозитория используемого пользователем Linux дистрибутива. Из улучшений, которые можно ожидать в следующем году, отмечается реализация поддержки новых видеокарт, решение проблем с синхронизацией буферов на системах с композитным оконным менеджером, ожидается улучшение взаимодействия VDPAU с OpenGL и CUDA/OpenCL. Кроме того, планируется решить проблемы с работой драйвера на платформе FreeBSD и оформить x86_64 сборку драйвера для FreeBSD.

Andy Ritger говорит, что разработчики архитектуры Gallium3D проделали отличную работу и считает данное решение успешным, но в NVIDIA использовать Gallium3D не собираются. Поддержка RandR 1.2+ в драйвере затянулась и непонятно когда будет завершена, так как из-за присутствия режима TwinView реализация RandR 1.2+ не является первостепенной задачей. Каких-то решений по поводу реализации поддержки KMS (Kernel Mode-Setting) пока не принято, но в NVIDIA поступает очень много запросов от пользователей на эту тему, что дает повод надеется, что в будущем поддержка KMS появится. Также нет планов по добавлению поддержки ESA, средств мониторинга GPU, акселерации симуляции физических процессов (PhysX) средствами GPU. Поддержка 71.86.xx устаревшей серии не будет портирована под новые версии X Server, также в старые ветки не будут бэкпортированы новые возможности.

©  OpenNet