Гибридная графика nvidia intel linux

Hybrid graphics laptop intel+nvidia

Ноутбук DNS 0156798 с гибридной графикой. Вывод идёт на Intel HD3000, дисплей LDVS подключен к ней же.
Проблема, собственно, такая: после установки проприетарного драйвера на nvidia отпадает поддержка GLX на X.org, так как nvidia заменят библиотеки на свои.
/usr/lib64/xorg/modules/extensions/libglx.so указывает на libglx.so.331.20 от nvidia.
В логах /var/log/Xorg.0.log пишет:
Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
Что, конечно логично, так как в конфиге иксов прописаны 2 девайса и скрина и вывод идёт на интел, а драйвер nvidia загружается по требованию через optirun(bumblebee). Кто знает, как сделать так, что бы по умолчанию использовалось GLX расширение от intel, а с optirun от nvidia? Вот конфиг иксов:
xorg.conf

Bumblebee. Кривое, но работающее решение.

А есть не кривое и работающее? или способ выпрямить bumblebee?

напрямую юзать nvidia, интеграшку вырубить

А ты пытался перед установкой проприетарного драйвера пользоваться Nouveau? А то оно иногда работает.

ноут ДНС, там биос залочен, видимо, что бы отрубить, надо его разлочить сначала, если вообще возможно её на нём отключить.

Ага, пытался, в Counter-Strike: Source играл, но чёт криво тоже работало как то. Спарйты поверх стен рисовались, ФПС тоже слабенький был, да и чувствуется, что как то не так играется. Вот и решил от производителя попробовать дрова, сегодня снова игры скачаю, потестирую, потом напишу результат.

А ты пытался перед установкой проприетарного драйвера пользоваться Nouveau? А то оно иногда работает.

Хотя если честно, не уверен что именно на Nouveau запускал, возможно это на интегрированном видео так работало. Bumblebee вроде устанавливал, а вот запускал возможно без него.
Я так понимаю, что даже с Nouveau, запускать игры на ней в моём случае можно только с помощью Bumblebee? Или есть другой способ?
Установил Bumblebee, потом primus. Запускаю optirun glxgears, всё работает. primusrun glxgears, выдаёт ошибку, что GLX не найдено. Игры в стиме запускаются и выходят с ошибкой, что окно не найдено. Пока разбираюсь с этим.

напрямую юзать nvidia, интеграшку вырубить

Вспомнил, что взялся за Bumblebee из-за Optimus, так как батареи хватало максимум на 2 часа, с Bumblebee хватает на 4-5 часов, это в принципе была основная задача.

В 3.12 можно уже запускать, как я понял, и без шмеля. Но проблема в том, что для игр нува просто непригодна никак.

Ставь винду или жди Wayland/mir/etc. Шмель актуален был только для второго поколения optimus (ручное переключение). Сейчас третье поколение, когда включение/отключение рулится в автоматическом режиме (причем скорость переключения достигает тысячных долей секунды). Ломание биоса это ссзб и врядли поможет. Но попробуй, потом расскажешь.

А дистрибутив какой?

Зачем драйвер устанавливал с официального сайта, а не из своего дистрибутива?

В Debian wheezy + backports (версия nvidia 304) без бубна работает bumblebee.

второе поколение optimus? это как?! разъясните

Первое: карты переключались только через биос. Второе: карты переключались в ос. Третье: карты переключаются автоматом в зависимости от требований ПО.

Умник, иди терминологию подучи. Есть два режима, muxless, и muxed. Откуда ты третье поколение взял? Наверное из своей дурной головы.

Лолкс, сам иди учи матчасть. То, что ты назвал это как устроено физически, я же говорю о софтверной части.

Винда не катит, ждать тоже не вариант. Хочу разобраться с проблемой, а не уйти от неё.

Ломание биоса это ссзб и врядли поможет. Но попробуй, потом расскажешь.

От разблокировки всех функций bios Я ожидал только отключения интегрированной карты и переход на дискретную, но это не лучший вариант.

Fedora 19 x86_64 3.11.9-200.fc19.x86_64

Зачем драйвер устанавливал с официального сайта, а не из своего дистрибутива?
В Debian wheezy + backports (версия nvidia 304) без бубна работает bumblebee.

пробовал ставить kmod304, игры не запускал, но были аналогичные проблемы с иксами, как и с версией 331.20. Если есть опыт использования, хотелось бы услышать, что за видеокарта, гибрид или нет, результат запуска игр или тестов. Ну и если гибрид, то как работала технология Optimus, дискретная карта подключалась только в момент использования или работала постоянно?
Ну и честно говоря у меня с детства замечена тяга к бубну. После него становится яснее как всё должно работать.

Может есть те, у кого всё заработало без конфликтов GLX?

Попробуй откатиться на 325-ую версию, у меня такое впечатление что они там что-то сломали. Нуво тут не нужен в принципе, 3000hd и то будет быстрее.

Читайте также:  Как проверить работоспособность ключа windows

А, ну и к тому же твой конфиг это какой-то бред, должно быть что-то типа такого:

Если Intel работать не будет ставь modesetting. Если опять не будет попробуй почитать что написано в доках к nvidia что-то в районе xrandr1.4

Пробовал по этой инструкции всё делать, иксы загружались, но на монитор ни чего не выводилось, вводил пароль, видно было, что авторизовался и загрузка шла дальше (судя по индикатору HDD).

А у тебя заработало? Тут основной GPU будет nvidia, он будет работать постоянно, или только когда будет нужен сильный GPU?

Ты не должен устанавливать драйвера к nvidia, только bumblebee. Так как в бамблиби уже встроен драйвер, а обычный (что с сайта, что из репозитория без приставки bumblebee) устанавливает себя из расчета существования одной карты.

От разблокировки всех функций bios Я ожидал только отключения интегрированной карты и переход на дискретную, но это не лучший вариант.

Забудь про биос и почитай в википедии/гугле что такое оптимус. Если кратко, то выводом изображения на экран всегда занимается intel, а рендерингом либо intel, либо nvidia. Отлючить встроенную невозможно.

Таким образом получается, что поумолчанию должен быть установлен драйвер intel, а сверху прикручен bumblebee с nvidia.

Если есть опыт использования, хотелось бы услышать, что за видеокарта, гибрид или нет, результат запуска игр или тестов. Ну и если гибрид, то как работала технология Optimus, дискретная карта подключалась только в момент использования или работала постоянно?

Поумолчанию всегда работает intel. Если запустишь приложение как

Запускал A Slower Speed of Light: на интел тормозила в меню и зависла(но тихо, без включения вентилятора), на nvidia быстро и без ошибок (но сразу включился вентилятор, и пошел горячий воздух).

Резюмирую. Тебе нужно востановить работоспособность intel драйвера и нормальный запуск X: удалить nvidia-драйвера, удалить xorg.conf, переустановить драйвер intel и mesa-библиотеки (drm, glx и т.д.), загрузиться без ошибок и получить нормальный рабочий стол.

По ссылке выше установить bublebee. Если ты еще не прочитал, то там немного (у меня не fedora, поэтому может быть что-то лишнее):

Источник

Включение гибридной графики в 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 нужно нажать на него ПКМ, открыть свойства (или «изменить приложение. «), перейти во вкладку «приложение» и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Читайте также:  Windows boot repair software

Пример: ярлык игры Wolfenstein — Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

Заключение

Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)

Источник

Linux: все, что я хотел знать про гибридную графику и производительность игр

Про производительность игр под Linux написано очень много. Но, во-первых, Linux быстро развивается (то есть что-то уже банально устарело), а во-вторых, многое, что написано на эту тему — написано на игровых и линуксовых форумах ярыми линуксоидами, у которых, конечно «все летает лучше чем в виндах». Поймите меня правильно, не то, чтобы я не верю 😉 Но лично я сам не видел, чтобы что-то работало быстрее… Главное — я понял, что не смогу сложить у себя в голове целостную картину, пока не попробую сам. Вопрос для меня не праздный — я использую Linux на ноутбуке, причем уже «не молодом», так что, как говорится, каждый FPS на счету.

А еще вопрос стоит гораздо шире, нежели банальное сравнение Linux — Windows:

  • в Linux можно запускать нативные игры или игры в Wine;
  • Wine бывает разных версий — как сильно это влияет на производительность?
  • добавим сюда гибридную графику — ее можно задействовать с помощью Nvidia Prime или Bumblebee;
  • c Bumblebee мы можем использовать VirtualGL или Primus.

В общем, есть из чего выбирать. Вот я и занялся тестами. Исходные данные:

Ноутбук Acer V3-772G:

Процессор: Core i7 4702MQ

Видеокарта: Intel HD 4600 \ NVIDIA GeForce GTX 760M, Nvidia Optimus.

Остальное, говоря серьезно, несущественно — здесь главное то, что сравнение будет проводится на одном и том же железе.

В качестве «осей» выступят:

Windows 10, драйвер Nvidia 388.31;

Ubuntu 16.04.3, драйвер Nvidia 384.90.

Тестирование в Wine проводилось на двух версиях — 2.0.3, которая на момент написания статьи считалась стабильной и Wine Staging 2.20. Для последней отдельно измерялись результаты с включенным и выключенным CSMT.

Обе системы перед тестами устанавливались «начисто». Ну а для тестирования я использовал бенчмарк от Unigine — Valley 2013. Именно его я выбрал, так как по «году рождения» он гармонирует с ноутбуком — модель 2012 года. Кроме того, бенчмарк работает в Windows, нативно в Linux, а так же под Wine.

Другие бенчмарки я задействовать не стал. В конце концов, мне не нужен точный до единиц результат, интересует общая картина. Даже и при таком раскладе на установку систем и тесты ушел целый день.

Производительность измерялась в OpenGL и DirectX 9. DirectX 11 я трогать не стал, так как не смотря на усилия разработчиков Wine, он еще мало где нормально работает. Не ходя далеко — выбранном бенчмарке он работал некорректно.

Бенчмарк всегда запускался c одними и теми же настройками, которые можно увидеть на скриншоте ниже (менялся только API):

Теперь про гибридную графику — Nvidia Optimus. В Windows все просто — все необходимое устанавливается вместе с драйвером видеокарты, запуск определенных приложений на высокопроизводительной карточке происходит автоматически. Проблемы и сбои в этом механизме бывают, но не часто.

В Linux, как водится, вариантов больше. Судя по форумам, самое популярное решение, чтобы заставить Nvidia Optimus работать в свободной ОС называется Nvidia Prime. Сам долго пользовался именно им. В отличие от «уютной винды», Nvidia Prime позволяет запускать в Linux весь сеанс с той или иной карточкой — то есть используем Intel, если стала нужна карточка Nvidia — ткнули нужную галочку \ ввели команду в терминале, перезагрузились или перелогинились, и весь сеанс работает на Nvidia. Чтобы перейти назад на Intel надо повторить операцию. Многие пишут, что в этом нет никаких неудобств, но это верно лишь отчасти. Точнее для тех, у кого работа и развлечения жестко разделены по времени. Если же вы захотели запустить что-нибудь ненадолго среди рабочего дня… То Nvidia Prime уже далеко не так удобен. Потому что — будьте любезны закрыть все свои рабочие дела и перелогиниться \ перезагрузиться. А потом назад. Ну или сидите целый день используя карточку Nvidia — что мне тоже не очень по душе, учитывая возможность использовать более экономичную видеокарту.

В минусы Nvidia Prime стоит записать и то, что он есть не для всех дистрибутивов. В плюсы — простоту настройки (собственно, она не требуется, в Ubuntu достаточно установить проприетарный драйвер, пакет nvidia-prime, и, для управления всем этим счастьем — пакет nvidia-settings). Какие есть альтернативы?

Читайте также:  Чем увидеть файлы linux

Альтернатива — Bumblebee (а для многих дистрибутивов — вообще единственный вариант задействовать гибридную графику). «Шмель» позволяет запускать приложения используя специальную команду, что заставляет их выполняться на мощной видеокарте. Перезагружаться не нужно. На мой вкус — самое оно, не хуже, чем в Windows. Платой за всю эту красоту называют производительность. Действительно, изначально для вывода изображения с мощной видеокарты использовали VirtualGL, что достаточно негативно влияло на производительность. Затем появилось еще одно решение — Primus, более быстрое. Хотя про «шмеля» до сих пор можно увидеть жалобы на то, что он медленный. Например, потому, что во многих «гайдах по настройке» упорно советуют использовать VirtualGL. Забегая вперед скажу, что при использовании Primus производительность, как раз, очень хорошая.

Но есть у Bumblebee и минус — его надо настраивать, и да, придется лезть в конфигурационные файлы, хоть и совсем немного. У начинающих линуксоидов это может вызвать некоторые проблемы.

Однако, довольно лирики. Предлагаю сравнить все три варианта — Nvidia Prime и Bumblebee в связке с VirtualGL (приложения при этом запускаются с командой optirun) и Primus (команда primusrun). В конечном итоге, сравним лучшие результаты с Windows — для контраста. Поехали.

Тесты

Windows 10

Возьмем за эталон Windows. Результаты прогонов бенчмарка:

Посмотрели, запомнили, переходим к Linux.

Ubuntu 16.04.3

OpenGL: Nvidia Prime, VirtualGL, Primus

  • Nvidia-Prime — 846;
  • VirtualGL — 667;
  • Primus — 882.

Ого! Мало того, что VirtualGL в явных аутсайдерах, но и Primus демонстрирует производительность близкую к Windows. Не придираясь к единицам, можно даже сказать «одинаковую». Придираясь — отстает всего на 0,8%.

Схожая ситуация наблюдается и при использовании Wine:

Nvidia Prime:

Wine Staging 2.20 — 831.

VirtualGL:

Wine Staging 2.20 — 612.

Primus:

Wine Staging 2.20 — 881.

Опять связка Bumblebee и Primus «впереди планеты всей». В свою очередь, VirtualGL, выводящий изображение «через альпы» (если интересно — загуглите), прилично просаживает производительность даже несмотря на то, что это OpenGL, а значит, программа запущенная в Wine взаимодействует с ним напрямую.

DirectX 9: Wine + Nvidia Prime, VirtualGL, Primus

Nvidia Prime:

Wine Staging 2.20 — 542;

Wine Staging 2.20 CSMT — 576.

VirtualGL:

Wine Staging 2.20 — 537;

Wine Staging 2.20 CSMT — 564.

Primus:

Wine Staging 2.20 — 570;

Wine Staging 2.20 CSMT — 603.

Результаты очевидны. Уточню, что результат в 603 «попугая» у сочетания Bumblebee + Primus + Wine Staging 2.20 CSMT — лучший результат для Wine, который удалось получить.

И да, выгода от использования Wine Staging и включения CSMT — очень ощутимая. Если используете Wine для игр — обязательно стоит установить именно эту версию. Про версии Wine у меня есть отдельная статья.

Но насколько мы теряем по сравнению с Windows? Даже в лучшем варианте — около 25%. Очень много. Остается лишь надеяться на дальнейшее развитие и без того быстро развивающегося Wine. Я не замерял производительность для какого-нибудь Wine 1.6, но по своим прошлым ощущениям при использовании, могу предположить, что речь запросто может идти о потере 50% и более.

Подводим итоги

Итак, игры, которые используют OpenGL, по результатам тестов, должны работать в Linux не хуже, чем в Windows, ну или хуже совсем чуть-чуть. Этот результат радует, потому что около года назад пронеслась волна ропота, что-де даже нативные игры работают медленнее, чем в Windows (видим, что нет). Причем, благодаря усилиям программистов Wine, даже запущенные через него игры должны сохранять этот уровень производительности. Кстати, если озадачиться, взять какой-нибудь Gentoo, все оптимизировать… Может быть удастся и превзойти «винду», не исключаю!

Слухи же о медленно работающих нативных играх, я думаю, пошли от того, что далеко на каждая такая игра использует OpenGL, многие представляют из себя виндовый вариант, как говорят, «обернутый» в Wine. А как работает Wine мы уже видели.

Будем надеяться, что разработчики будут чаще выбирать этот API (ну или Vulkan, ситуация с которым, по идее, как минимум не хуже). Особенно учитывая тот факт, что с DirectX 9, к сожалению, все не так гладко. Да, Wine совершенствуется, но…

Даже в фигурирующем на графике варианте Bumblebbe + Primus + Wine Staging 2.20 CSMT, отставание от Windows составляет 26,2%, то есть, больше, чем на четверть. Этого, однако, совершенно достаточно для «поиграть между делом» и уж тем паче для не самых свежих игр.

Что касается гибридной графики, как видите, Bumblebee вкупе с Primus продемонстрировал лучшую производительность. Здесь даже и написать еще что-то сложно. Ну, если Bumblebee не получается настроить — можете использовать Nvidia Prime, отстает он совсем немного.

Что же, кажется ответы на все поставленные в начале вопросы — получены. В конце, для интересующих, выкладываю таблицу, в которой сведены результаты всех тестов:

Источник

Оцените статью