AMD/AMD Dual Graphics

Iniciado por giovanni94, 13 de Julho de 2016, 19:39

tópico anterior - próximo tópico

giovanni94

Boa noite galera,

Comprei um laptop (MSI GX70) p/ jogos a algum tempo atrás com as seguintes configurações:
Processador: A10 5750m 2.5Ghz (3.5 boost)
Placa de vídeo integrada: HD 8650g
Placa de vídeo dedicada: HD 8970m

Como sabemos que os drivers flgrx da AMD pra linux nunca estiveram muito bons, resolvi deixar no Gallium mesmo (open source) e consegui iniciar jogos como CS:GO numa boa.
O problema é que a placa dedicada não é utilizada. Nem mesmo colocando como argumentos DRI_PRIME=1 antes de iniciar o jogo (andei pesquisando em uns sites e dizem pra fazer isso, e, para muitos essa tática funciona)

Por exemplo:
Citarenv DRI_PRIME=1 steam steam://rungameid/ID_DO_JOGO

Quando eu rodo o glxgears sem o DRI_PRIME consigo aproximadamente 60 FPS; com DRI_PRIME=1 consigo 2500FPS...
No entanto para todos os outros programas e jogos nativos o comando não surte efeito, fazendo com que apenas minha placa integrada seja utilizada.
Alguém tem alguma idéia?

A propósito, estou no Ubuntu 16.04



druidaobelix

O que era ruim ficou pior, no momento a situação anda muito complicada em relação a ATI/Radeon.

Talvez esse tópico ajude a esclarecer um pouco, no que diz respeito especialmente ao suporte para esse tipo de gpu.

http://ubuntuforum-br.org/index.php/topic,120102.msg659644.html#msg659644

Mas também não sei dizer se já há alguma novidade super-hiper-recente, desses dias mesmo.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

giovanni94

Primeiramente desculpem a falta de acentos nesse post, estou em um LiveUSB do fedora

A principio o processo inteiro de utilizacao do DRI_PRIME precisa redirecionar o output de uma placa para a outra usando o xrandr:

Citar$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x7e cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 4 associated providers: 0 name:ARUBA @ pci:0000:00:01.0
Provider 1: id: 0x46 cap: 0x0 crtcs: 6 outputs: 1 associated providers: 0 name:PITCAIRN @ pci:0000:01:00.0

Ai eu tento fazer um sink da placa integrada pra dedicada:
Citar$ xrandr --setprovideroffloadsink 1 0

E da o seguinte erro: (N era pra aparecer nada)
CitarX Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  139 (RANDR)
  Minor opcode of failed request:  34 (RRSetProviderOffloadSink)
  Value in failed request:  0x46
  Serial number of failed request:  16
  Current serial number in output stream:  17

Mas, apesar de tudo isso, o sistema esta reconhecendo ambas as placas, como posso ver pelo comando:
Citar$ sudo cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:Pwr:0000:00:01.0
1:DIS: :DynOff:0000:01:00.0

Ou seja, a integrada esta ligada (PWR) e a dedicada esta desligada (DynOff).
Minha maquina nao tem um switch de hardware pra utilizar o vgaswitcheroo, portanto preciso do DRI_PRIME pra usar a dedicada pra alguma aplicacao
O problema eh que eu n estou conseguindo redirecionar o trafego de uma pra outra, dando aquele erro la de cima...
Ha algumas pessoas que dizem que eh um bug de kernel e eh pra usar radeon.nopm=0 ou radeon.runpm=0 no boot, mas nenhum surte efeito e o erro continua aparecendo.
Se alguem souber de uma solucao, fico grato.

druidaobelix

#3
Citar[...] a integrada esta ligada (PWR) e a dedicada esta desligada (DynOff).

E por que é que a gpu dedicada está desligada?

O que estou tentando dizer é a hipótese de que o driver atualmente utilizado na versão 16.04 não está dando suporte à gpu.

Entendi perfeitamente que não há switch de hardware e que para comutar depende de comando de software, porém se o driver não der suporte para a gpu, não haverá comando que consiga comutar.

A gpu Intel, que é o standard, obviamente está ON e funcional, o problema é o driver para a dedicada que está problemático nessa versão 16.04, conforme disse naquele link antes mencionado.

Mais exatamente quais os drivers de gpu que estão sendo usados pelo sistema?

sudo lshw -c display

E usando a versão 14.04 com o driver proprietário, funciona?

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.