Dri prime не работает

«Решено» — Проблемы с запуском дискретной видеокарты AMD на ноутбуке

# 3 года назад (отредактировано 3 года назад) Здравствуйте, прошу помочь с включением видеокарты, запутался
Или направить на инструкции, желательно на русском языке

Дано: ноутбук Dell Inspiron 5370 13.3″FHD Touch
i5 8250U/4Gb/SSD 256Gb/Radeon 530-2Gb
WiFi/BT/Cam/silver 5370-7291
GNU Linux Arch XFCE 64 bit system
BIOS 1.5.0

Проблемы:
1 не включается дискретная видеокарта
2 не видит дискретную как VGA (через lspci | grep VGA)
3 не переключаются видеокарты автоматически
4 непонимание что делать

Что требуется:
Работа дискретной видеокарты, пусть даже постоянно, батарея не волнует, хотя лучше по требованию запуск дискретной

Что было опробовано:
1 Запуск через DRI_PRIME=1 не помогло, не работает
2 Установка помимо XF86-video-ati, драйверы xf86-video-nouveau xf86-video-amdgpu xf86-video-intel и перезагрузка, не помогло
3 Lобавить radeon.runpm=0:
Обновил конфигурацию, в /etc/rc.local добавил
Перезапустить машину sudo shutdown -r now
Без изменений DRI_PRIME=1 glxgears и glxgears выдают почти идентичные результаты
4 Изменить настройки в BIOS/UEFI

Что ещё имеем:

Что и как можно сделать? Ноутбук если что новый, менее месяца с момента покупки

Источник

[РЕШЕНО]Ошибки DRI_PRIME

# 1 год, 2 месяца назад (отредактировано 1 год, 2 месяца назад)

Здравствуйте! Не могу заставить работать карту от nvidia, в то время как вcтройка работает

Проц: Ryzen 5 2500U Vega 8
Карта: GTX1050
Ноутбук: ASUS F570ZD-DM102

lsmod | grep nvidia

Насколько я понял, при помощи xrandr —setprovideroffloadsink можно выставить с какой карты будет отрисовка. Попробовал, пишет:

Насколько я понял проблема в иксконфиге, ибо раньше (методом научного тыка) проблема исчезала его редактированием

Mesa стоит, её удаление не даёт успехов

UPD: Её удаление привело к новой ошибке:

UPD: Я оказывается загрузился без икс конфига, с ним ошибка: Не найдены экраны

Сделал новый иксконфиг: (при помощи команды + немного отредактировал)

Всё осталось, всё те же ошибки и всё те же выводы команд

Помойму карта о амд и ей драйвер модесеттинг , а карта 1 нвидия уже ей нвидия. У вас же наоборот.
https://wiki.archlinux.org/index.php/PRIME#Closed-source_drivers
И проверьте что все от нвидии правильно стоит , а тотнуво пытается грузить. Уберите из конфига указание на путь к иксовым модулям
# 1 год, 2 месяца назад (отредактировано 1 год, 2 месяца назад)

vs220
Помойму карта о амд и ей драйвер модесеттинг , а карта 1 нвидия уже ей нвидия. У вас же наоборот.
https://wiki.archlinux.org/index.php/PRIME#Closed-source_drivers
И проверьте что все от нвидии правильно стоит , а тотнуво пытается грузить. Уберите из конфига указание на путь к иксовым модулям

Я пробовал ставить amdgpu-pro, но пропустил этот пункт «После установки драйвера не перезагружайте и не запускайте Xorg. В зависимости от конфигурации вашей системы, это может сделать вашу систему Xorg непригодной для использования до перенастройки.

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

vs220
Помойму карта о амд и ей драйвер модесеттинг , а карта 1 нвидия уже ей нвидия. У вас же наоборот.

Источник

DRI_PRIME

Не могу разобраться с DRI_PRIME, выхлоп glxinfo никак не меняется

Однако, при DRI_PRIME=1 glxgears работают без vsync, в отличии от обычного режима. Других различий обнаружить не удалось. Ведро 3.7.10, дрова xf86-video-intel-2.20.13 и xf86-video-ati-7.1.0

Ни у кого нет гибритдной графики с Radeon HD 7600M ?

Я не осилил.
cast RussianNeuroMancer

Попробуйте видеокарту для DRI_PRIME вручную указать, как здесь.

cast Novell-ch

xrandr —setprovideroffloadsink 0x55 0x7c
DRI_PRIME=1 glxinfo |grep OpenGL

Раз планируете играть, стоило бы Mesa поставить посвежее.

Что это за сабж такой DRI_PRIME? В гугле тихо по этому поводу 🙁

Переключение видеокарт на ноутбуках. Работает точно на аинтел/радеон — радеон связке, насчет интел нвидия не знаю. Работает это на свободных дровах.

Раз планируете играть, стоило бы Mesa поставить посвежее.

Да не то чтобы планирую, скорее спортивный интерес. Интеля hd4000 мне за глаза хватает.
А дискретной пока ничего кроме шестеренок не кажет, надо допил radeonsi ждать.

У вас TURKS, это не GCN. TURKS не нужен radeonsi.

Т.е. ждать больше нечего?

Да, ставьте свежую стабильную Mesa и играйте.

Кстати как производительность дискретки на свободных по сравнению с каталистом? Дискретку можно выключить, если ей не пользуешься, без перезагрузки иксов?

У меня 5750 дискретка и 4200 , если я включаю дискретку и отключаю интеграшку, t->80 градусам.
Хотя у меня рабочая t интеграшкой то 55-60. А производительность не повышается, на глаз.

А дискретка через vga_switcheroo отключается? Иксы нужно перезапускать? Просто у меня как у топикастера intel hd4000 + amd radeon 7750M. Каталист уже достал: стоит обновить интеловский драйвер, как тут же ломается переключалка между встроенной и дискретной картами.

Отключается, вроде:) Перезапускать нужно. Но я обычно прописывал все в rc.local ибо туда сюда не переключаю часто.

А дискретка через vga_switcheroo отключается? Иксы нужно перезапускать?

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

Да, ставьте свежую стабильную Mesa и играйте.

Поставил 9.1.1, кроме шестеренок все равно везде черные окна, в полном экране тоже.

madcore

кроме шестеренок все равно везде черные окна, в полном экране тоже

Такое было с какими-то из первых Иксов 1.13. С 1.13.2 и 1.14 такого нет. Иксы какой версии?

Rakot Linuxman
Перезапуск Иксов требуется только в случае MUX-ed железа, в случае MUX-less не требуется. С MUX-less дискретку можно включать/выключать в любое время (с прямым BIOS/UEFI да при исправном железе).

Linuxman

если я включаю дискретку и отключаю интеграшку, t->80 градусам

Потому что она по умолчанию стартует на high-профиле, см. здесь (не перепутайте card0 и card1).

Потому что она по умолчанию стартует на high-профиле

Об этом знаю, всегда перевожу в low, что интеграшку что дискретку.

Radeon HD 7670M

Такое было с какими-то из первых Иксов 1.13. С 1.13.2 и 1.14 такого нет. Иксы какой версии?

Может собрал чего не так? Или ведро(3.7.10) обновить?

Вроде Иксы подходящие, ядро тоже, всё должно уже работать. Попробуйте на форуме Gentoo поспрашивать, может флаг какой нужен.

Еще такой момент: после выхода из спячки радеон судя по сенсорам получаятся включенным, на OFF в /sys/kernel/debug/vgaswitcheroo/switch не реагирует, если послать ON приключается завис, только выключение помогает.
Гибридная графика зло, а без найти относительно нормальный ноут сейчас непросто.

А где вообще про это все написано хоть сколько-нибудь по человечески. Гуггль ведет сюда, на этот самый топик, когда пытаешься в нем искать dri_prime.

посоны, всем CALL STACK

Все оказалось банально — дело было в kwin: если переключить эффекты с opengl на xrender, то все рисуется.

Скачал Unigine_Tropics-1.3, на радеоне фпс чуть меньше интеловских, и при этом сплошные артефакты. Такие дела.

На счет «фпс чуть меньше» я погорячился, на радеоне скорость никакая. Кроме водички, солнышка и корявых полигонов он там ничего не рендерит. Так и должно быть?

а вот в nexuz ситуация обратная: при одинаковых насройках интел кажет темноту.

Все оказалось банально — дело было в kwin: если переключить эффекты с opengl на xrender, то все рисуется.

Это не банально, проблема всё ещё есть (ситуация с Nexuiz это подтверждает). У меня приложения, использующие DRI_PRIME, нормально рисуются хоть под KWin (движок эффектов OpenGL 2) хоть под KWin GLES (движок эффектов OpenGL ES 2).

Там какой-то баг в движке был. У вас в /etc/drirc профиль для Unigine Tropics есть?

Это не банально, проблема всё ещё есть (ситуация с Nexuiz это подтверждает).

С nexuiz другая ситуация: под интелом видны те же выстрелы, но локация не отрисована.

У меня приложения, использующие DRI_PRIME, нормально рисуются хоть под KWin (движок эффектов OpenGL 2) хоть под KWin GLES (движок эффектов OpenGL ES 2).

Тут уже не так просто установить, дело в разном железе или в баге конкретной версии/сборке kwin.
А от gles есть профит в кедах? Когда-то пробовал, но на глаз разницы не заметил.

Там какой-то баг в движке был. У вас в /etc/drirc профиль для Unigine Tropics есть?

Под интелом все идеально отрисовывается, но ворнинги в консоль сыпятся.
Heaven на открытых дровах у всех не работает, или моя личная проблема?

Кстати, почему в обоих случаях в «GPU model:» пишут про 256MB? Или эту инфу нужно игнорировать.

Да, действительно, не посмотрел сразу, что там opengl 4 нужен.
Третий uh на интеле нормально, только дым квадратиками и похоже на некоторых сценах с освещением проблемы. На радеоне все совсем печально, даже смотреть не стал.

Тут уже не так просто установить, дело в разном железе или в баге конкретной версии/сборке kwin.

Мне кажется, что если при прекращении использования OpenGL композитным менеджером проблема пропадает, то нужно смотреть в сторону дров/Иксов/Месы. Скорее всего на их стороне проблема. Чтобы убедиться, что дело не в сборке, перепроверьте на другом дистрибутиве, но обязательно со свежими Иксами (последняя openSUSE, следующая Kubuntu).

А от gles есть профит в кедах? Когда-то пробовал, но на глаз разницы не заметил.

Есть, на слабом железе.

В общем, тестируйте дальше (игры на Source Engine, Wargame: European Escalation, и т.д.) На всякий случай убедитесь, что свежую Mesa поставили как 64-разрядную, так и 32-разрядную.

Источник

Перестал работать PRIME после обновления драйвера

/etc/X11/gdm/Init/Default в конце конфига перед exit 0 :

Это полностью рабочий конфиг, который последний раз работал на версии драйвера 410.xx. После 415.xx конфиг перестал работать. Вот что в логах:

Получается, что на чипе NVIDIA графика «поднялась», а на чипе Intel графика не поднялась. Это также визуализируется тем, что экран не гаснет, и я вижу символы в VT.

Я подумал, что это в драйвере 415.xx какая-то ошибка, и решил попробовать с более новым 430.xx. Там то же самое. Теперь я попробовал с совсем новым дрйавером 460.xx. Там кое-что изменилось. Во-первых, экран теперь гаснет, что говорит о том, что на чипе Intel что-то запустилось. А вот что в логах:

После чего, в конфиге появляется огромное количество сообщений о драйвере modesetting(G0). То, что он нашёл экран, определил его разрешение, и т.д.

Но команда xrandr не пытается пробросить картинку с NVIDIA на Intel. Я запустил gnome-terminal, не видя экран, и попробовал выполнить xrandr —listproviders

(кстати, с драйвером 415.xx провайдер был только 1, и это была NVIDIA)

Пытаюсь выполнить команды проброса картинки.

А ещё я попытался сделать скриншот, не видя экрана. Скриншот полуился размером 8×8 точек, и там едва угадывается кусочек панели GNOME.

Иксы старые для этого

Вот ещё интересное:

У тебя черезжопные конфиги, причём все. Должно быть как: modesetting(0) – дисплей девайс, NVIDIA(G0) – GPU девайс, оба на screen 0.

В рабочем конфиге у тебя: modesetting(G0) – GPU девайс, NVIDIA(0) – дисплей девайс без выходов. Оба на одном screen 0, благодаря чему оба девайса активны, что даёт с помощью xrandr поменять девайсы ролями, сделать NVIDIA GPU девайсом, а modesetting дисплей девайсом.

В нерабочих конфигах NVIDIA садится на screen 0, modesetting пытается сесть на screen 1, конфигурации для screen 1 нет, он выгружается, получается скрин без выходов.

А зачем в нерабочих конфигах ядро загружено с nvidia-drm.modeset=0 ? Охота на ведьм?

А тебе обязательно нужен xorg.conf? Сто лет как устарел он. У меня в /usr/share/X11/xorg.conf.d/10-intel-nvidia-drm-outputclass.conf такое содержимое:

> А зачем в нерабочих конфигах ядро загружено с nvidia-drm.modeset=0? Охота на ведьм?

Забыл убрать. Это я пытался пофиксить другую проблему, ещё несколько лет назад.

Сейчас попробую твой конфиг.

Кстати, придумал, как решить проблему с моим имеющимся конфигом. Нужно просто запустить команду, добавляющую новое разрешение экрана 1600×900, а затем пробросить картинку.

С твоим конфигом вот так. Ещё и VT повис через несколько секунд после старта «иксов», пришлось ребутаться.

Пробовал с ним, ошибка была. У меня старые «иксы».

После ребута, перестал появляться modesetting(G0)

Ну вот, а счастье было так близко

Попробовал nvidia-drm.modeset=1, не помогло.

Сейчас буду смотреть логи .bash_history, чтобы понять, а что это я такое делал, что у меня начало появляться устройство modesetting(G0), чего раньше не было.

Попробуй заменить GPUDevice на Device. Вроде в старом сервере первый Device становился дисплей девайсом, остальные Device становились GPU девайсами.

Попробовал, теперь в логе вообще нет драйвера modesetting.

Возможно, в драйвере NVIDIA — ошибка. Регрессия, появившаяся в нём в драйвере версии 415.xx. Из-за которой не появляется устройство modesetting(G0), хотя в предыдущих версиях драйвера оно появлялось.

В результате моих каких-то манипуляций, устройство появилось, но после ребута исчезло.

Попробуй автоматическое добавление девайсов и GPU девайсов:

А за них ты держишься из-за чего? Не пытайся строить замк на песке, просто плыви по течению. Обновляй весь стэк.

Кажется этот господин коллекционер компьютерного хлама. Ноутбук с престарелой гентушечкой и xorg-server-1.14.4 (релиз 2013.11) наверное экспонат того же музея.

У меня в /usr/share/X11/xorg.conf.d/10-intel-nvidia-drm-outputclass.conf

Неплохо так, особенно при наличии каталога /etc/X11/xorg.conf.d/, куда и надо пихать system-wide конфиги для своего компа.

И он не устарел, что за глупость. Иксы просто без него могут запускаться и обнаруживать много чего сами, просто с помощью файлов в /etc/X11/xorg.conf.d/ им надо помочь в случае проприетарщины.

Нет. в /usr/share/X11/xorg.conf.d/ идут дефолтные, дистрибутивные, устанавливаемые из пакетов. А в /etc/X11/xorg.conf.d/ уже пихают кастомизированые, которые для системы будут предпочтительнее. Посмотри в свой /usr/share/X11/xorg.conf.d/ и удивись.

А xorg.conf сто лет назад был объявлен иксоразрабами устаревшим, но поддерживается исключительно из-за тормознутых проприетастов (энвидии). Хотя даже энвидия уже несколько лет назад объявиля о перезоде на xorg.conf.d.

в /usr/share/X11/xorg.conf.d/ идут дефолтные, дистрибутивные, устанавливаемые из пакетов.

Я знаю. Твой файл /usr/share/X11/xorg.conf.d/10-intel-nvidia-drm-outputclass.conf дистрибутивный или самописный?

Дистрибутивный. Там ещё вариант для амд, амд+нвидия и пр.

А xorg.conf сто лет назад был объявлен иксоразрабами устаревшим

Ну нет же, откуда такое взялось то. Если у тебя неизменная конфигурация мониторов и устройств ввода (типа того же kiosk), то гораздо предпочтительнее xorg.conf. В остальных случаях, конечно, его отсутствие.

А, ок, перепутал, значит.

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

> А за них ты держишься из-за чего?

Попробую установить 1.18.4. Я эту версию уже собирал, когда в прошлый раз были проблемы.

Я заспавнил modesetting(G0) как-то по-читерски. С файлом libGL от старого драйвера, оно заспанилось. Потом прибиваю gdm и кладу новый libGL на место. modesetting(G0) спавнится.

В общем, это явно какая-то регрессия. Не знаю с чем связанная, может со старыми «иксами», может со старым ядром. Попробую обновить и то, и другое, ну и по результатам сообщу разработчикам драйвера.

от того, что считают разработчики иксов.

Лень искать статьи десятилетней давности с пруфами.

Тогда остались при своих.

Вообще, вынужден признать. На странице https://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml он никоим образом не ущемляется. То ли разрабы в конце концов образумились, то ли это написано нде-то ещё. Надо читать релизнотесы.

А это не у тебя натуральные кде3? Если из-за них, то понятно.

У тебя же в первом логе неуспешного запуска написано modesetting(1) . Значит девайс был добавлен не в screen 0, а в screen 1. А для screen 1 конфиг отсутствует, и поэтому модуль выгружается. Потому что тебе не нужен screen 0 + screen 1, тебе нужен screen 0 с двумя девайсами modesetting(0) и NVIDIA(G0).

Во втором логе неуспешного запуска у тебя написано modesetting(1) и modesetting(G0) . Значит девайс был добавлен в screen 1 как дисплей девайс и в screen 0 как GPU девайс. Для screen 1 конфиг отсутствует, поэтому modesetting(1) удалён, но modesetting(G0) остался.

Надо разобраться, почему modesetting девайс добавляется как GPU девайс, а не как дисплей девайс. Должно быть наоборот, видеоадаптер, который используется биосом, должен добавиться как дисплей (primary) девайс, остальные видеоадаптеры должны добавиться как GPU (secondary) девайсы.

Начни с конфига, в котором есть только Device секции, сначала для драйвера modesetting, затем для драйвера nvidia. Всё остальное сервер должен сделать сам: добавить все девайсы в screen 0, выбрать правильный дисплей девайс.

Спасибо за подробный разбор. Я бы не распарсил сам. Буду делать то, что ты предлагаешь.

Кстати, я так и не понял, как я всё-таки заспавнил устройство modesetting(G0) . После перезагрузки, оно перестало появляться.

Вот логи с драйвером 410.xx. С последним драйвером, с которым работает. И там тоже modesetting(1) и modesetting(G0) . Потом первый удаляется, а второй работает.

А в исходном посте, там логи с драйвером 352.xx. Я этот лог приложил, не заметив, что он старый. И да, там нет никакого modesetting(1) , есть только modesetting(G0) .

В данный момент я снова заспавнил modesetting(G0) с драйвером 460.xx. Могу запустить gnome-terminal и что-то в нём понабирать. Например glxinfo, чтобы убедиться, что всё работает.

Только пробросить на экран не могу. Судя по выводу xrandr , разрешение экрана — только 8×8.

Я попробовал запустить скрипт:

Судя по ошибкам вывод LVDS-0 отсутствует. А что говорят xrandr —verbose xrandr —verbose —listproviders ?

Сначала надо «перенаправлять» (–setprovideroutputsource), тогда становятся доступны выходы GPU девайса.

А конфига и лога от этого запуска не будет?

Сейчас выполню эти команды.

Конфиг и лог я добываю примерно так:

У провайдера NVIDIA-0 отсутствует capability Source Output. Из-за этого xrandr —setprovideroutputsource modesetting NVIDIA-0 не работает.

А я тут пытаюсь добавить разрешение экрана 1600×900. Пока не получается, он игнорит.

Здесь вроде описан твой конфиг. Там есть опция AllowEmptyInitialConfiguration в скрине. Может быть она важна?

Попробовал с этой опцией. Не получается.

Ладно, не мучайся. Зарепорчу баг на сайте NVIDIA. Там разберутся.

> У провайдера NVIDIA-0 отсутствует capability Source Output

The NVIDIA driver currently only supports the Source Output capability. It does not support render offload and cannot be used as an output sink.

Это в драйвере до появления поддержки PRIME Offload.

Нет, я туплю. Даже со старым драйвером 319.xx должно выглядеть вот так:

И по-моему до меня дошло. Проблема не в том, что нет «Source Output». А в том, что устройство modesetting(G0) не появляется для меня начиная с драйвера 415.xx. Я сумел заспавнить его как-то по-читерски, удаляя и устанавливая старый и новый драйвер, и подставляя старый libGL к новому драйверу. Возможно, modesetting(G0) не должен был появиться.

Надо решать первопричину проблемы. Понять, почему после драйвера 415.xx стало так. Пойду почитаю Release Notes.

Есть небольшой прогресс.

У меня в драйвере 361.xx перестал работать PRIME. Выяснилось, что модуль ядра nvidia-drm не был загружен в память. Для драйвера 358.xx и более старых, этот модуль не был нужен для PRIME. Начиная с драйвера 361.xx, он нужен для PRIME. Об этом даже писали в Release Notes к драйверу 364.xx.

Добавлен модуль ядра nvidia-drm.ko, предоставляющий поддержку PRIME и KMS

Reworked how the NVIDIA driver registers with the Linux kernel’s DRM subsystem for PRIME support. As a result, PRIME support requires Linux kernel version 3.13 or newer (previously, PRIME support required Linux kernel version 3.10 or newer).

NVIDIA’s implementation of PRIME requires support for DRM render nodes, a feature first merged in Linux 3.12. However, the feature was not enabled by default until Linux 3.17. To enable it on earlier supported kernels, specify the drm.rnodes=1 kernel boot parameter.

В тот раз, я подгрузил драйвер nvidia-drm, и всё запустилось.

Копаясь с драйвером 460.xx, я обнаружил строчки в логе:

Неужели не подгружен драйвер nvidia-drm? Проверяю по lsmod. Действительно не подгружен. Подгружаю. Теперь при старте иксов экран не гаснет, и я по-прежнему вижу VT.

Так вот как я заспавнил modesetting(G0) . В процессе жонглирования драйверами, я просто выгрузил драйвер nvidia-drm. И без него спавнится нужное устройство modesetting(G0) , но нельзя выполнить проброс изображения, потому что, начиная с драйвера 361.xx, для этого нужен драйвер nvidia-drm. А если подгрузить драйвер nvidia-drm, то не спавнится устройство modesetting(G0) . Вернее, оно спавнилось до драйвера 410.xx, а после — перестало.

Источник

Читайте также:  Моя жена не работает она беременна
Оцените статью