LINUX.ORG.RU

Не работает DRI_PRIME с Intel + AMD в openSUSE

 


0

1

Здравствуйте уважаемые форумчане. Столкнулся с проблемой при попытке использовать дискретную видео карту в opensuse leap 15 и tumbleweed. DRI_PRIME=1 не видит мою видео карту. Если сделать так, выводится сообщение об ошибке:

jekka@linux-i6kh:~> xrandr --listproviders Providers: number : 2 Provider 0: id: 0x67; cap: 0xf (Source Output, Sink Output, Source Offload, Sink Offload); crtcs: 3; outputs: 5; associated providers: 0; name: modesetting output eDP-1 output DP-1 output HDMI-1 output DP-2 output HDMI-2 Provider 1: id: 0x3f; cap: 0x0 (); crtcs: 0; outputs: 0; associated providers: 0; name: HAINAN @ pci:0000:01:00.0

jekka@linux-i6kh:~> xrandr --setprovideroffloadsink 1 0 X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 34 (RRSetProviderOffloadSink) Value in failed request: 0x3f Serial number of failed request: 16 Current serial number in output stream: 17

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

Ответ на: комментарий от Samsky

Использую свободный radeon, amdgpu в играх глючит и фпс скачет сильно.

fox_mulder ()

Provider 1: id: 0x3f; cap: 0x0

У тебя дискретная видеокарта не предоставляет ни source, ни sink, не удивительно, что не работает. Скорее всего, это из-за того, что твоя модель нормально не поддерживается в протухшими Mesa/libdrm/ядром, что поставляется с дистрибутивом.

Khnazile ★★★★★ ()

Где-то года три назад, когда я ещё сидел на openSUSE - у меня тоже Prime не заводился, только шмель. Спустя столько лет, видать, так и не пофиксили. Зато в Ubuntu работает, практически из коробки.

th3m3 ★★★★★ ()
Ответ на: комментарий от Khnazile

Сейчас mesa 18.0.2, libdrm 2.4.91, ядро 4.12. В дебиане работало нормально, хотя там вообще mesa 13 и ядро 4.9. Есть странность - дискретная карта работает когда подключаю внешний монитор, работает даже если просто переходник HDMI подключить.

fox_mulder ()
Ответ на: комментарий от th3m3

Шмель может работать с AMD? Я просто слыхал что он для работы дискретных карт от nVidia с проприетарным драйвером, больше ничего о нем не знаю.

fox_mulder ()
Ответ на: комментарий от sloan

Простите за возможную тупость, но что вы имели ввиду? У меня карта AMD, вы мне дали ссылку на руководство по nVidia, это разве работает с AMD? И что значит «переходи на светлую сторону»?

fox_mulder ()
Ответ на: комментарий от ZenitharChampion

Я ввел людей в заблуждение ошибочным заголовком темы. Сейчас исправил. Я имел ввиду DRI_PRIME, не nVIDIA PRIME.

fox_mulder ()
Ответ на: комментарий от fox_mulder

В таком случае, это скорее всего баг в драйвере ядра.

Khnazile ★★★★★ ()

Много чего гуглится по словам DRI_PRIME "id: 0x3f" HAINAN, похоже проблемный GPU.

anonymous ()
Ответ на: комментарий от Samsky

Не помогло. У меня такая идея появилась: если дискретка заводится с подключенным внешним монитором - значит DRI_PRIME или что-то другое опрашивает порты к которым подключены дисплеи. А если достаточно даже переходника HDMI без самого монитора - значит можно просто замкнуть цепь в HDMI порту. Можно ли правкой какого-нибудь конфига дать системе понять что в порт подключено устройство?

fox_mulder ()
Ответ на: комментарий от fox_mulder

По идее, можно через параметр ядра video= принудительно включить видеовыход, но скорее всего это приведет к непредвиденным последствиям.

Khnazile ★★★★★ ()
Ответ на: комментарий от Khnazile

Установлю для опытов еще одну систему и можно попробовать. Заодно испытаю с ванильным ядром.

fox_mulder ()

Ну и что. А ты подумай, чё там у оптимуса.

anonymous ()

DRI_PRIME=1 не видит мою видео карту.

Как вы это определили?

Оформленный вывод DRI_PRIME=1 glxinfo сюда выложите пожалуйста.

xDShot ★★★★★ ()
Ответ на: комментарий от xDShot

Определял так:

jekka@linux-i6kh:~> DRI_PRIME=0 inxi -G

Graphics: Card-1: Intel Atom/Celeron/Pentium Processor x5-

E8000/J3xxx/N3xxx Integrated Graphics Controller

Card-2: Advanced Micro Devices [AMD/ATI] Sun XT

[Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520]

Display Server: x11 (X.Org 1.19.6 ) drivers:

modesetting,ati,radeon (unloaded: fbdev,vesa)

Resolution: 1366x768@60.02hz

OpenGL: renderer: Mesa DRI Intel HD Graphics 405

(Braswell) version: 4.5 Mesa 18.0.2

jekka@linux-i6kh:~> DRI_PRIME=1 inxi -G

Graphics: Card-1: Intel Atom/Celeron/Pentium Processor x5-

E8000/J3xxx/N3xxx Integrated Graphics Controller

Card-2: Advanced Micro Devices [AMD/ATI] Sun XT

[Radeon HD 8670A/8670M/8690M / R5 M330 / M430 / R7 M520]

Display Server: x11 (X.Org 1.19.6 ) drivers:

modesetting,ati,radeon (unloaded: fbdev,vesa)

Resolution: 1366x768@60.02hz

OpenGL: renderer: N/A version: N/A

fox_mulder ()
Ответ на: комментарий от xDShot

Вот результат DRI_PRIME=1 glxinfo:

jekka@linux-i6kh:~> DRI_PRIME=1 glxinfo

name of display: :0.0

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeonsi: Failed to create a context.

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

radeon: Failed to allocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: alignment : 4096 bytes

radeon: domains : 4

radeon: va : 0x0000000000800000

radeon: Failed to deallocate virtual address for buffer:

radeon: size : 65536 bytes

radeon: va : 0x800000

fox_mulder ()
Ответ на: Вот результат DRI_PRIME=1 glxinfo: от fox_mulder

Окончание вывода по DRI_PRIME=1 glxinfo

radeonsi: Failed to create a context.

X Error of failed request: GLXBadContext

Major opcode of failed request: 154 (GLX)

Minor opcode of failed request: 6 (X_GLXIsDirect)

Serial number of failed request: 47

Current serial number in output stream: 46

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

fox_mulder ()
Ответ на: комментарий от xDShot

Удивительно, но с amdgpu загрузилось как положено. INXI опредилил рендерер как radeon r5m330/r5 m430, glxinfo ошибок не насыпал. Запускал blender с glxgears и смотрел что покажет radeontop - все работает.

fox_mulder ()
Ответ на: комментарий от xDShot

Я тут заглянул в /etc/X11/xorg.conf.d/. Там нет конфига для radeon, только для amdgpu. Может ли отсутствие этого конфига объяснить неправильную работу видеокарты?

fox_mulder ()

Видеокарты AMD семейств Southern Islands / Sea Islands нормально работают только с непротухшими ядрами! Желательно 4.17 и выше. Диву даюсь что некоторые ненужные дистры до сих пор юзают старьё вроде 4.9/4.12

SakuraKun ★★★★ ()
Ответ на: комментарий от SakuraKun

Ох уж это амуде. Шаг влево, шаг вправо — расcтрел. Специальные дистрибутивы, специальные ядра.

anonymous ()
Ответ на: комментарий от anonymous

Дело в том что хорошие опенсорсные драйвера сразу под все GCN видеокарты сделать не хватило ресурсов, поэтому начали с более новых видеокарт GCN а старые GCN 1.0/1.1 оставили на десерт. Дистрибутивы со старыми ядрами не нужны, да и просто старыми ядрами пользоваться - себя и Линуса не уважать! Может этот дополнительный стимул проапгрейдиться даже к лучшему

SakuraKun ★★★★ ()
Ответ на: комментарий от SakuraKun

Из личного опыта

Я ставил зюзю leap 15 с ядром 4.12 и tumbleweed c ядром 4.18 кажется. Этот баг с неработающим свободным radeon воспроизводится в обеих версиях дистрибутива. А свободный amdgpu, как выяснилось, работает в зюзе нормально. В дебиан, с ядром 4.9, radeon работает нормально. В федоре 27-29 работают оба драйвера. В убунту с 14.04 по 18.10 не работает ни radeon ни amdgpu. В минте с 17 по 19 работает radeon, в 18-19 работают оба драйвера. Думаю дело не в ядрах, а в каких-то косяках при сборке дистрибутивов. Ну не может один и тот же баг воспроизводиться 4 года подряд в одном и том же дистрибутиве (убунту) и в тоже время отсутствовать в других дистрибутивах с такими же версиями ядер (минт), а то и более старыми как в дэбиан.

fox_mulder ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.