Компания NVIDIA представила (https://devtalk.nvidia.com/default/topic/542748/unix-graphic.../) выпуск 319.17, который ознаменовал перевод ветки проприетарного видеодрайвера NVIDIA 319.x в разряд сертифицированных стабильных выпусков. Драйвер доступен (http://www.nvidia.com/object/unix.html) для Linux, FreeBSD и Solaris.
По сравнению с прошлой стабильной веткой в NVIDIA 319.x добавлены следующие новшества:
- Начальная реализация технологии Optimus для платформы Linux, позволяющей обеспечить работу на ноутбуках со встроенной энергоэффективной видеокартой на базе GPU Intel и дискретной картой NVIDIA. При незначительной нагрузке на графическую подсистему отличающаяся высоким энергопотреблением дискретная карта может быть полностью обесточена, а вывод перенаправлен на более энергоэффективный встроенный GPU Intel, что позволяет значительно продлить время работы портативных устройств в автономном режиме.
В текущем виде драйвер NVIDIA пока не поддерживает все возможности Optimus и позволяет только осуществлять рендегинг на GPU NVIDIA и транслировать вывод через LCD-порт, подключенный к GPU Intel. Пока не поддерживается управление питанием (невозможно обесточить карту NVIDIA), невозможен вынос отдельных операций рендеринга на GPU NVIDIA с использованием GPU Intel для рендеринга рабочего стола, невозможно без запуска отдельного X-сервера организовать горячее перенаправление вывода с порта, подключенного к GPU Intel (LCD-экран ноутбука), на порт, связанный с GPU NVIDIA (внешний монитор). По сути в настоящий момент GPU Intel в связке с проприетарным драйвером NVIDIA ограничен лишь функциями вывода, без возможности экономии энергии за счёт задействования чипа NVIDIA только при необходимости для выполнения рендеринга интенсивно манипулирующих графикой приложений.
Пример настройки конфигурации X-сервера для работы Optimus можно найти на данной странице (http://us.download.nvidia.com/XFree86/Linux-x86/319.12/READM...). Для работы Optimus необходимо наличие X.Org Server 1.13 (https://www.opennet.ru/opennews/art.shtml?num=34763) и ядра Linux 3.9, собранного с опцией CONFIG_DRM, включающей поддержку (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...) функций-хелперов gem_prime_* и gem_drm_*. Указанные хелперы внесены (https://www.opennet.ru/opennews/art.shtml?num=35531) в ядро разработчиками NVIDIA и позволяют использовать абстрактный набор простых вызовов, независимых от низкоуровневой реализации поддержки PRIME. Данные вызовы помогли организовать взаимодействие свободных драйверов с проприетарным драйвером NVIDIA без прямого обращения к API DMA-BUF, что позволило избежать нарушения лицензии GPL (стандартные функции DMA-BUF <a <a="" href="href=" http:="" www.opennet.ru="" opennews="" art.shtml?num="35067" "="">отнесены</a> в ядре Linux к категории внутренних интерфейсов, которые экспортируются в группе EXPORT_SYMBOL_GPL, ограничивающей возможность использования только для модулей ядра, распространяемых под лицензией GPL).
- Реализация расширения RandR 1.4 (http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randr...), в котором добавлены объекты для выноса на дополнительные GPU операций рендеринга и отображения, что может использоваться для горячего перенаправления вывода на другое устройство или для организации совместной работы нескольких GPU, когда один GPU используется для вывода, а второй для рендеринга сцен (например, вывод осуществляется через USB-адаптер DisplayLink, а рендеринг на GPU NVIDIA). Данная возможность использована для обеспечения работы Optimus и также пока ограничена в своих возможностях;
- Поддержка GPU NVIDIA GeForce GTX 650 Ti BOOST, GeForce GT 720M, GeForce GT 735M, GeForce GT 740M, GeForce GT 745M, GeForce GT 750M, GeForce GTX 760M, GeForce GTX 765M, GeForce GTX 770M, GeForce GTX 775M, GeForce GTX 780M;
- Поддержка создания (http://us.download.nvidia.com/XFree86/Linux-x86/319.12/READM...) инсталлятором заверенных цифровой подписью модулей ядра с компонентами драйвера NVIDIA, которые можно использовать в режиме верифицированной загрузки при использовании UEFI Secure Boot;
- В состав включена новая утилита nvidia-modprobe, устанавливаемая с правами setuid root и используемая компонентами драйвера для управления загрузкой модуля ядра и создания необходимого для взаимодействия с ним символьного устройства. По умолчанию по прежнему используются штатные средства дистрибутивов по загрузке модулей и созданию устройств, а утилита позиционируется как запасной вариант при их недоступности;
- Реализация режима панорамирования RandR 1.3 и добавление MetaMode-атрибутов "PanningTrackingArea" и "PanningBorder";
- Добавление RandR-свойств Border и BorderDimensions для регулировки края области вывода (например, можно задать область вывода меньше фактического размера экрана для компенсации забегания развёртки). Похожие настройки добавлены в конфигуратор nvidia-settings;
- Поддержка профилей приложений (http://us.download.nvidia.com/XFree86/Linux-x86/319.12/READM...) (Application Profiles) для клиентских компонентов GLX, позволяющих привязать к конкретному пользовательскому приложению или процессу индивидуальный набор настроек;
- В панель конфигуратора NVIDIA Settings добавлена страница для настройки параметров VDPAU, позволяющая управлять задействованием различных особенностей GPU по декодированию видео;
- Поддержка динамического управления видеорежимами через опции RandR: "--newmode", "--rmmode" и "--delmode";
- Реализация новых опций для секции Monitor в xorg.conf: "Ignore", "Enable", "Primary" и "Rotate". Например, опцию "Rotate" можно применять для автоматического поворота вывода для монитора с заданным идентификатором EDID:
<font color="#461b7e">
Section "Monitor"
Identifier "DPY-EDID-ee6cecc0-fa46-0c33-94e0-274313f9e7eb"
Option "Rotate" "left"
EndSection
</font>
- Интерфейс командной строки утилиты 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;
- Включение в состав процесса-демона nvidia-persistenced, предназначенный для организации предварительной загрузки модуля NVIDIA для ядра Linux ещё до запуска компонентов драйвера, работающих на уровне пользователя. Указанная возможность позволяет ускорить запуск компонентов драйвера NVIDIA;
- Директория /usr/lib/modprobe.d добавлена в список путей, в которые инсталлятор может опционально установить конфигурационные файлы для modprobe, отключающих драйвер Nouveau.
- Устранена большая порция ошибок и недоработок.
URL: https://devtalk.nvidia.com/default/topic/542748/unix-graphic.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=36848