Компания NVIDIA представила новую ветку проприетарного видеодрайвера NVIDIA 319.12, в которой реализована большая порция новшеств. Драйвер доступен для Linux, FreeBSD и Solaris. Ветка 319.12 пока позиционируется как бета-выпуск, придание статуса релиза ожидается после проведения дополнительного тестирования и стабилизации кода.
Наиболее заметным улучшением стала реализация технологии Optimus для платформы Linux, позволяющая на лету переключаться между встроенной энергоэффективной видеокартой на базе GPU Intel и дискретной картой NVIDIA. При незначительной нагрузке на графическую подсистему отличающаяся высоким энергопотреблением дискретная карта полностью обесточивается, а вывод перенаправляется на более энергоэффективный встроенный GPU Intel, что позволяет значительно продлить время работы портативных устройств в автономном режиме.
Вторым важным новшеством, сопутствующим поддержке Optimus, стала реализация расширения RandR 1.4, в котором добавлены объекты для выноса на дополнительные GPU операций рендеринга и отображения, что может использоваться для горячего перенаправления вывода на другое устройство или для организации совместной работы нескольких GPU, когла один GPU используется для вывода, а второй для рендеринга сцен (например, вывод осуществляется через USB-адаптер DisplayLink, а рендеринг на GPU NVIDIA). Данная возможность использована для обеспечения работы Optimus. Для работы Optimus необходимо наличие X.Org Server 1.13 и свежей версии ядра Linux, собранной с опцией CONFIG_DRM и содержащей поддержку компонентов gem_prime и gem_drm. Пример настройки конфигурации X-сервера для работы Optimus можно найти на данной странице.
Другие улучшения, добавленные в NVIDIA 319.12:
- Поддержка GPU NVIDIA GeForce GTX 650 Ti BOOST;
- Поддержка создания инсталлятором заверенных цифровой подписью модулей ядра с компонентами драйвера NVIDIA, которые можно использовать в режиме верифицированной загрузки при использовании UEFI Secure Boot;
- В состав включена новая утилита nvidia-modprobe, устанавливаемая с правами setuid root и используемая компонентами драйвера для управления загрузкой модуля ядра и создания необходимого для взаимодействия с ним символьного устройства. По умолчанию по прежнему используются штатные средства дистрибутивов по загрузке модулей и созданию устройств, а утилита позиционируется как запасной вариант при их недоступности;
- Реализация режима панорамирования RandR 1.3 и добавление MetaMode-атрибутов "PanningTrackingArea" и "PanningBorder";
- Добавление RanDR-свойств Border и BorderDimensions для регулировки края области вывода (например, можно задать область вывода меньше фактического размера экрана для компенсации забегания развёртки). Похожие настройки добавлены в конфигуратор nvidia-settings;
- Поддержка профилей приложений (Application Profiles) для клиентских компонентов GLX, позволяющих привязать к конкретному пользовательскому приложению или процессу индивидуальных набор настроек;
- В панель конфигуратора NVIDIA Settings добавлена страница для настрйки параметров VDPAU, позволяющая управлять задействованием различных особенностей GPU по декодированию видео;
- Поддержка динамического управления видеорежимами через опции RandR: "--newmode", "--rmmode" и "--delmode";
- Реализация новых опций для секции Monitor в xorg.conf: "Ignore", "Enable", "Primary" и "Rotate". Например, опцию "Rotate" можно применять для автоматического поворота вывода для монитора с заданным идентификатором EDID:
Section "Monitor" Identifier "DPY-EDID-ee6cecc0-fa46-0c33-94e0-274313f9e7eb" Option "Rotate" "left" EndSection
- Интерфейс командной строки утилиты nvidia-settings расширен поддержкой указания имён устройств вывода, например: "nvidia-settings -q [DVI-I-0]/RefreshRate" и "nvidia-settings -q [GPU-1.DVI_I-1]/RefreshRate";
- Поддержка восстановления EFIFB-консолей на системах UEFI с портами вывода VGA, DVI, HDMI, LVDS или DP;
- Добавление дополнительной отладочной информации в OpenGL библиотеки NVIDIA, в том числе информации о содержимом стека;
- Увеличена производительность HyperMesh для ряда моделей GPU серии Quadro;
- Улучшена производительность при отключенной опции Accel.