- Режим on-demand в 435 драйвере nVidia
- Nvidia тихо выпустила поддержку динамического режима работы Vulkan и OpenGL + GLX в PRIME на Linux
- Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)
- Введение
- 1. Устанавливаем драйвер
- 2. Настраиваем видеокарту
- 3. Запуск приложения с использованием дискретной графики
- Заключение
- How NVIDIA On-Demand option works in NVIDIA X Server Settings?
- 4 Answers 4
- Chapter 35. PRIME Render Offload
- X Server Requirements
Режим on-demand в 435 драйвере nVidia
Видали, до чего этот мир докатился? Неужели нормальный оптимус в линуксах прям от производителя? Кто-нибудь у себя уже пробовал?
Попытался огуглить тему и нифига пока нет. И непонятно — никто не заметил этих изменений или оно просто дерьмово работает?
А хотелось бы понять, как именно работает механика этого ондеманда и похожа ли она на механизм работы бамблби или оно как-то само себе там будет решать, с какой видюхой запускать то или иное ПО
О, кажется, вот как оно работает:
Configure Graphics Applications to Render Using the GPU Screen To configure a graphics application to be offloaded to the NVIDIA GPU screen, set the environment variable __NV_PRIME_RENDER_OFFLOAD to 1. If the graphics application uses Vulkan, that should be all that is needed. If the graphics application uses GLX, then also set the environment variable __GLX_VENDOR_LIBRARY_NAME to nvidia, so that GLVND loads the NVIDIA GLX driver. NVIDIA’s EGL implementation does not yet support PRIME render offload.
NVIDIA’s EGL implementation does not yet support PRIME render offload.
На Wayland не заработает. Впрочем немногие композиторы wayland вообще будут работать на блобе. Но радоваться всё равно рано.
Ну кеды пока вообще на вяленом не работают например. Так что почему бы и не порадоваться уже этому:) В контексте того, что в бамблби никто не коммитил уже пять лет, это вообще отличная новость, имо
Тем временем завезли нормальный гуй для optimus на ubuntu
Собственно, это как раз под обновление драйвера, да. Но, как по мне, довольно бесполезно, раз достаточно один раз в официальной невидеевой тулзе включить on-demand и потом пользоватьза переменными окружения при запуске конкретных программ
Стоит 465 драйвер, при включенном ондеманде приложения чет запускаются все равно на встроенной карте. Или я не понял как она работает?
Источник
Nvidia тихо выпустила поддержку динамического режима работы Vulkan и OpenGL + GLX в PRIME на Linux
Компания Nvidia без лишнего шума и анонсов добавила в драйверах версии 435.17 для Linux поддержку работы с Vulkan и OpenGL + GLX в динамическом (on-demand) режиме рендеринга PRIME. Поддержки EGL пока нет.
Вся масштабность анонса в одном скриншоте
PRIME — это Linux-реализация системы распределения рендеринга приложений по нескольким графическим процессорам известной как Nvidia Optimus, что актуально для ноутбуков, оснащенных, например, связкой из встроенного видео Intel HD Graphics и дискретным чипом Nvidia.
Режим PRIME актуален для тех, кто пытается сэкономить заряд батареи, при этом сохраняя возможность при необходимости максимально использовать ресурсы системы. Он позволяет рендерить на более производительном дискретном чипе какое-то конкретное приложение, а для работы всего остального — задействовать встроенное в CPU видео.
Для работы в режиме PRIME вам понадобится X Server, а также желание пропатчить его вручную. Коммиты, которые позволяют запустить вышеупомянутые изменения, уже есть в мастер-ветке проекта X Server на Git, но еще не вошли ни в один из релизов.
NVIDIA’s PRIME render offload support requires the following git commits in the X.Org X server:
7f962c70 — xsync: Add resource inside of SyncCreate, export SyncCreate
37a36a6b — GLX: Add a per-client vendor mapping
8b67ec7c — GLX: Use the sending client for looking up XID’s
56c0a71f — GLX: Add a function to change a clients vendor list
b4231d69 — GLX: Set GlxServerExports::
Полную информацию по сборке X Server и настройке экранов можно найти тут.
У пользователей Ubuntu 18.04 и 19.04 есть альтернатива и они могут воспользоваться собранным на стороне Nvidia ppa-репозиторием.
Также вам потребуется настроить переменные среды для выгрузки рендера разных типов приложений.
Для приложений Vulkan нужно использовать __NV_PRIME_RENDER_OFFLOAD=1
Для приложений GLX вам нужно использовать оба:
__NV_PRIME_RENDER_OFFLOAD=1 и __GLX_VENDOR_LIBRARY_NAME=nvidia .
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor .
Источник
Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)
Введение
Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным
У меня система KDE Neon 5.21 — по большому счету — Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150
1. Устанавливаем драйвер
a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:
Если у вас система на GTK то с помощью это команды:
Хотя разницы принципиальной нет
b) Затем запускаем ее с правами root
Можно так же добавить ярлык для запуска в меню приложений
Инструкция для KDE
/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием
И файл software properties qt.sh в той же папке:
После перезагрузки ярлык появится в меню
Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики
c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server
d) После установки перезагружаем устройство
2. Настраиваем видеокарту
a) Загружаем следующую программу:
b) Переходим в PRIME Profiles Здесь мы видим три пункта:
NVIDIA (Performance Mode) — работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически
NVIDIA On-Demand — некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше
NVIDIA (Power Saving Mode) — отключение дискретной графики
Выбираем второй вариант — NVIDIA On-Demand , и перезагружаем систему
3. Запуск приложения с использованием дискретной графики
Это то, что сложнее всего гуглилось.
Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:
для Vulkan только:
Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:
Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или «изменить приложение. «), перейти во вкладку «приложение» и перед командой приписать данную приставку. В других средах похожего стола примерно так же
Пример: ярлык игры Wolfenstein — Blade of Agony
Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
Заключение
Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)
Источник
How NVIDIA On-Demand option works in NVIDIA X Server Settings?
I have installed Nvidia proprietary driver on Ubuntu 19.10.
In the Prime Profiles section, there are three options:
* NVIDIA (Performance Mode)
* NVIDIA On-Demand
* Intel (Power Saving Mode)
First and last options are quite obvious, But I don’t know how the second option works. How it detects which application needs NVIDIA driver and which doesn’t?
4 Answers 4
Ok I finally figured it out. As this moment, it appears that NVIDIA can do offload rendering for OpenGL and Vulkan apps.
In order to enable this offload rendering, you have to put the Prime profile on «On-Demand», then for Vulkan offloading you have to put this variable inside your /etc/environment file:
__NV_PRIME_RENDER_OFFLOAD=1
For OpenGL apps, you have to put these variables:
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia
After a restart, it will start render offloading.
In order to check which graphic card is being used, you can enter the following command in terminal:
glxinfo | grep vendor
Chapter 35. PRIME Render Offload
PRIME render offload is the ability to have an X screen rendered by one GPU, but choose certain applications within that X screen to be rendered on a different GPU. This is particularly useful in combination with dynamic power management to leave an NVIDIA GPU powered off, except when it is needed to render select performance-sensitive applications.
The GPU rendering the majority of the X screen is known as the «sink», and the GPU to which certain application rendering is «offloaded» is known as the «source». The render offload source produces content that is presented on the render offload sink. The NVIDIA driver can function as a PRIME render offload source, to offload rendering of GLX+OpenGL or Vulkan, presenting to an X screen driven by the xf86-video-modesetting X driver.
X Server Requirements
NVIDIA’s PRIME render offload support requires the following git commits in the X.Org X server:
7f962c70 — xsync: Add resource inside of SyncCreate, export SyncCreate
37a36a6b — GLX: Add a per-client vendor mapping
8b67ec7c — GLX: Use the sending client for looking up XID’s
56c0a71f — GLX: Add a function to change a clients vendor list
b4231d69 — GLX: Set GlxServerExports::
Источник