Игровые ноутбуки на Linux могут получить поддержку Nvidia Advanced Optimus
Nvidia взялась за разработку новых API (uAPI) для поддержки динамического MUX-переключателя в Linux. На данный момент в этой ОС за переключение MUX отвечает инструмент vga-switcheroo. В сущности он разрабатывался как раз для переключения видеокарт на ноутбуках с гибридной графикой, но в Nvidia, похоже, считают, что функционал текущей реализации недостаточен для динамического MUX, который официально именуется как Advanced Optimus.
Для лучшего понимания ситуации следует напомнить, что современные ноутбуки на Windows автоматически переключаются между встроенной в процессор графикой и дискретной видеокартой (если она есть) для минимизации энергопотребления. В операционной системе данный функционал именуется MSHybrid, а свою реализацию Nvidia назвала Optimus. Последний действительно улучшает автономность, но его проблема в том, что даже при использовании дискретной видеокарты все сгенерированные кадры проходят через встроенную в процессор графику, которая выступает в роли frame-буфера. Таким образом, пропускная способность шины PCI Express используется сразу в несколько сторон, из-за чего ее становится недостаточно и частота кадров падает.
Так называемый MUX-переключатель позволил пользователям физически переключать ввод встроенного дисплея со встроенной графики на дискретную видеокарту, обходя тем самым проблему с пропускной способностью. Дополнительный плюс такого решения - появляется поддержка G-Sync и других фирменных технологий Nvidia для встроенного дисплея (если он совместим, естественно). Такие ноутбуки, как Asus ROG Strix Scar 15, позволяют управлять MUX-переключателем не только из BIOS, но и из Windows, однако при этом требуется перезагрузка.
В то же время, существуют модели вроде Alienware x15 R2, которые за счет поддержки Advanced Optimus (динамический MUX), могут переключать ввод встроенного дисплея налету без перезагрузок и выключений. Согласно Nvidia, Advanced Optimus предлагает повышенную частоту кадров в играх, снижение задержек и поддержку G-Sync и все это без какой-либо надобности для пользователя что-либо переключать в BIOS или настройках.
Теперь же в Nvidia решили добавить данную возможность и в Linux. Разработчик из Nvidia Дэниел Дадап (Daniel Dadap) опубликовал свою версию "RFC-DRM-based uAPI for Dynamic Mux Switching" на freedesktop.org. По его словам, vga-switcheroo не подходит для автоматического переключения MUX на лету, пока экран активен. Дело в том, что данный инструмент способен переключать видеокарты только тогда, когда на экран еще ничего не выводится.
Конечно, можно было бы просто усовершенствовать vga-switcheroo, но для этого понадобилась бы реализация дополнительных инструментов для пользователя. Кроме того, vga-switcheroo предполагает наличие лишь одного MUX в системе. На сегодняшний день в подавляющем большинстве систем по другому и не бывает, однако в Nvidia утверждают, что в будущем могут появиться устройства с несколькими MUX-переключателями (один для встроенного дисплея, второй для подключаемых внешних мониторов/телевизоров). По словам Дэниела, в Nvidia разработали и тестируют прототип X11/GLX с динамическим MUX для реализации бесшовного переключения в Linux.
Помимо реализации новых uAPI, разработчик предлагает связать MUX с подсистемой ядра Linux Direct Rendering Manager, которая отвечает за взаимодействие с графическим процессором современных видеокарт.
Пока-что в Nvidia собирают отзывы сообщества, но если инициатива компании получит одобрение разработчиков и пользователей, мы скоро можем увидеть нормальную реализацию современной гибридной графики в Linux, что, наконец, уберет еще один аргумент в пользу ноутбуков на Windows.