Как стать автором
Обновить

Комментарии 7

Новость вышла тихо, но событие однозначно громкое.

Я, как пользователь ноутбука с Intel + NVIDIA, который всё время пользовался Bumblebee, испытывал с ним проблемы, начиная от того, что для запуска чего-либо на дискретной карте запускается отдельный Xorg и заканчивая детскими болячками, вроде тиринга и input lag, причём получается избавиться либо от одного, либо от другого.

Прочитал новость поподробнее и начал копаться в своём Arch Linux:
1. Удалил всё, что связано с Bumblebee: bbswitch, nvidia-xrun, primus и т.д;
2. Настроил TLP, убрав PCI-устройство с чёрного списка, после чего его питание начало управляться динамически, DPM;
3. Скачал слепок репозитория отсюда, скомпилировал, установил.
4. Подправил xorg.conf (пример взял с этой статьи). Так как по некоторым причинам я не использую драйвер modesetting, я изменил в конфигурационном файле на intel (xf86-video-intel);
5. Перезапустил X-сессию и добавил в ~/.zshrc такую «гениальную» строку:
alias optirun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia'

6. Проверил.

В результате я получил отсутствие тиринга, input lag'а и даже небольшое повышение FPS в 3D-приложениях.

Остаётся ждать релиза Xorg с патчами в официальных репозиториях.
Эххх, ваш бы комментарий с подробностями на арчвики…
На русской ArchWiki есть, а на англоязычной ещё нет (странно, обычно бывает наоборот). Можно попробовать перевести.
А как с выгрузкой и последующим энергопотреблением дела обстоят? Он правда перестаёт запитывать дискретку? А то даже в лучшие годы Bumblebee он, бывало, забывал её отключить.
Кстати, если бы Вы об этом не сказали — я бы и не вспомнил.

Прелесть bumblebee в том, что он полностью выгружает модули ядра, после чего bbswitch полностью отключает питание дискретной карты, и наоборот.

В нативном nvidia-prime питание дискретной карты управляется линуксовым DPM (при условии, если правильно настроен TLP/laptop-mode-tools). Тем не менее, модули ядра (nvidia, nvidia-drm etc) остаются загруженными, а к видяхе можно обратиться в любой момент.

К сожалению, после серии экспериментов я пришёл к выводу, что нативный Nvidia PRIME + DPM не обеспечивает такое энергосбережение, как bumblebee + bbswitch.

Возможно, я что-то недонастроил.
Покопался на различных форумах и после продолжительного гуглинга наткнулся на такой пост касаемо управления питанием дискретных адаптеров.

Вкратце: карты с архитектурой Turing используют более стандартные методы управления питанием, в то время как в Pre-Turing-картах используются DSM (device specific method), который и дёргается модулем bbswitch, чтобы обесточить карту. В частности, в этом посте описано.

На данный момент имеем ситуацию, когда для Nvidia PRIME требуются загруженные модули ядра nvidia и, пока они загружены — Pre-Turing-карты остаются включёнными, а DPM большой погоды тут не играет (в частности, этот метод позволяет свести энергопотребление карты к минимум, но не до нуля).

Остаётся ждать полноценного внедрения в модули nvidia возможности дёргать их же DSM-вызовы для полноценного энергосбережения.
Почему так мало комментариев под новостью? Это действительно важная веха!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий