Fala, pessoal! Já faz um tempo que não posto aqui.
Bem, ultimamente eu tenho tido problemas com o sistema operacional da Microsoft, e eu dependo dele um pouco para jogos, mas acabei descobrindo que conseguia rodar meu jogo favorito *cof*League of Legends*cof* usando o PlayOnLinux e alguns atalhos e patches diferentes do Wine dentro do meu querido Ubuntu 14.04.2 LTS.
Nessa minha jornada pra fazer o jogo funcionar bem, acabei descobrindo que era melhor utilizar os drivers open source da Radeon, que possuem módulos do Gallium, e descobri um Patch do Wine que possuía suporte especial ao Gallium, um patch conhecido como Gallium-Nine (
https://wiki.ixit.cz/d3d9) ou como wine-d3dadapter. Esse patch possui uma funcionalidade especial que permite uma interação muito mais fluida do Wine com o Direct3D, e que tem ligação direta com o driver Gallium. Assim, os jogos conseguem rodar com FPS mais alto e mais próximos do que rodariam no Windows.
Isso é extremamente animador, e eu segui todas as instruções possíveis para poder executar o Wine-Gallium-Nine com sucesso. (
https://launchpad.net/~commendsarnex/+archive/ubuntu/winedri3) Até instalei o ppa e os drivers mais novos xserver-xorg-video-ati e xserver-xorg-video-radeon como dizem os ppas do Oibaf (
https://launchpad.net/~oibaf/+archive/ubuntu/gallium-nine).
Entretanto existe um pequeno problema. Existe um framework nesses drivers conhecido como DRI3 (
https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure), que dá um suporte muito melhor ao Direct3D, e ele precisa ser ativado nos drivers. Eu percebi através do depurador do PlayOnLinux que ele procura pelo DRI3 ativado, mas quando não acha, volta ao DRI2:
err:x11drv:DRI3CheckExtension DRI3 advertised, but not working
err:d3dadapter:has_d3dadapter Unable to query DRI3. Trying DRI2 fallback (slower performance).
Os ppas sugerem que eu tente colocar a seguinte configuração no meu /etc/X11/xorg.conf (arquivo que não existe por padrão no meu Ubuntu):
Section "Device"
Identifier "radeon"
Driver "radeon"
Option "DRI3"
EndSection
Entretanto, ao fazer isso e reiniciar o meu computador, a tela do PC buga, fica toda preta, ou às vezes até toda embaralhada e é impossível usar o sistema. Eu tive de deletar o arquivo que criei com apenas essas informações para poder voltar a utilizar o sistema.
Abri o xorg.0.log que achei em /var/log e vi que ele inicializava o DRI3:
[ 24.204] Initializing built-in extension DRI3
E também carregava varios outros drivers:
[ 24.204] (II) LoadModule: "glx"
[ 24.268] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 24.648] (II) Module glx: vendor="X.Org Foundation"
[ 24.648] compiled for 1.15.1, module version = 1.0.0
[ 24.648] ABI class: X.Org Server Extension, version 8.0
[ 24.648] (==) AIGLX enabled
[ 24.648] Loading extension GLX
[ 24.648] (==) Matched fglrx as autoconfigured driver 0
[ 24.648] (==) Matched ati as autoconfigured driver 1
[ 24.648] (==) Matched fglrx as autoconfigured driver 2
[ 24.648] (==) Matched ati as autoconfigured driver 3
[ 24.648] (==) Matched modesetting as autoconfigured driver 4
[ 24.648] (==) Matched fbdev as autoconfigured driver 5
[ 24.648] (==) Matched vesa as autoconfigured driver 6
[ 24.648] (==) Assigned the driver to the xf86ConfigLayout
[ 24.648] (II) LoadModule: "fglrx"
[ 24.649] (WW) Warning, couldn't open module fglrx
[ 24.649] (II) UnloadModule: "fglrx"
[ 24.649] (II) Unloading fglrx
[ 24.649] (EE) Failed to load module "fglrx" (module does not exist, 0)
[ 24.649] (II) LoadModule: "ati"
[ 24.649] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
[ 24.666] (II) Module ati: vendor="X.Org Foundation"
[ 24.666] compiled for 1.15.1, module version = 7.5.99
[ 24.666] Module class: X.Org Video Driver
[ 24.666] ABI class: X.Org Video Driver, version 15.0
[ 24.666] (II) LoadModule: "radeon"
[ 24.667] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
[ 24.749] (II) Module radeon: vendor="X.Org Foundation"
[ 24.749] compiled for 1.15.1, module version = 7.5.99
[ 24.749] Module class: X.Org Video Driver
[ 24.749] ABI class: X.Org Video Driver, version 15.0
E pra ter certeza, vi que ele não rodava o fglrx (driver proprietário da ati):
[ 24.790] (II) LoadModule: "fglrx"
[ 24.790] (WW) Warning, couldn't open module fglrx
[ 24.790] (II) UnloadModule: "fglrx"
[ 24.790] (II) Unloading fglrx
[ 24.790] (EE) Failed to load module "fglrx" (module does not exist, 0)
[ 24.790] (II) LoadModule: "ati"
[ 24.790] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
[ 24.790] (II) Module ati: vendor="X.Org Foundation"
[ 24.790] compiled for 1.15.1, module version = 7.5.99
[ 24.790] Module class: X.Org Video Driver
[ 24.790] ABI class: X.Org Video Driver, version 15.0
E em um certo ponto, ele desabilita o DRI3:
[ 25.054] (II) RADEON(0): [DRI2] Setup complete
[ 25.054] (II) RADEON(0): [DRI2] DRI driver: r600
[ 25.054] (II) RADEON(0): [DRI2] VDPAU driver: r600
[ 25.054] (II) RADEON(0): Front buffer size: 4224K
[ 25.054] (II) RADEON(0): VRAM usage limit set to 935856K
[ 25.054] (==) RADEON(0): DRI3 disabled
Acredito que haja alguma opção, alguma forma de habilitar o DRI3. Se alguém souber mexer com isso, me ajude. Não quero ter que compilar todo o driver do MESA novamente só para habilitar do DRI3 (ou acabar descobrindo que eu não consegui habilitá-lo mesmo assim).
Um abraço!
OBS.: Ah, sim, também estou ciente que existe um patch do Wine conhecido como Wine-staging que possui a opção de ativar CSMT e melhorar performance em jogos. O problema é que o CSMT causa travamentos no League of Legends, e não melhora tanto a performance como o Wine-Gallium.
Minhas configurações:
Ubuntu 14.04 (trusty) 3.13.0-63-generic (#103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015)
Xorg version 1.15.1 (12 February 2015 02:49:29PM)
Intel Core 2 Duo E7400 @ 2.80 GHz
4 GB RAM
ATI Radeon HD 4650
Mecanismo de renderização: Gallium 0.4 on AMD RV730 (DRM 2.36.0, LLVM 3.6.2)
wine1.7.49-gallium-nine instalado do PPA, utilizado no PlayOnLinux 4.2.2 como versão do Sistema (não é um gallium-nine instalado do PlayOnLinux)