Forçar renderização opengl baseada em software

11

Como forçar um aplicativo a usar a renderização opengl baseada em software no Ubuntu?

Bobby
fonte
De que tipo de aplicativo estamos falando?
Bobby

Respostas:

20

Se você estiver usando o Mesa libGL, poderá ativar a renderização de software permanentemente executando:

sudo apt-get install libgl1-mesa-swx11

Isso removerá as libgl1-mesa-glxbibliotecas Mesa aceleradas por hardware e instalará o renderizador somente de software.

Como alternativa, você pode definir LIBGL_ALWAYS_SOFTWARE=1, o que afetará apenas os programas iniciados com essa variável de ambiente, não o sistema inteiro.

Ambas as alterações podem não funcionar se você estiver usando os drivers binários da NVidia, que fornecem seus próprios libGL.

efémero
fonte
1
Oi, onde posso definir essa variável LIBGL_ALWAYS_SOFTWARE = ​​1? Eu tenho o problema inverso, o OpenGL é sempre renderizado por software e meu laptop não suporta o Unity3D para o Ubuntu 15.04. Tenho gráficos Intel-Nvidia híbridos.
Santi
1
libgl1-mesa-swx11 não substitui mais a libgl1-mesa-glx. Portanto, ao instalá-lo, você precisa configurar uma substituição para usá-lo. Ainda assim, recomendo usar a renderização do software LLVM-Pipe usando "LIBGL_ALWAYS_SOFTWARE = ​​1". É muito mais rápido e tira proveito do hardware mais recente. Além disso, os usuários dos drivers nvidia e amd podem forçar o uso do pipeline do software mesa, se o mesa estiver instalado, usando um hack ld.so para substituir a biblioteca libGL carregada.
Robert Wm Ruedisueli 5/11
2
Isso funciona com drivers proprietários da AMD? Existe uma opção fácil na Nvidia?
Daniel M Gessel
Eu me pergunto por LIBGL_ALWAYS_SOFTWARE=1que não foi possível trabalhar com os drivers NVIDIA instalados + libgl1-mesa-glx, pois meu programa ainda está vinculado a /usr/lib/x86_64-linux-gnu/libGL.so(fornecido por libgl1-mesa-dev) e não /usr/lib/nvidia-361/libGL.so, o que parece ser carregado dlopenpelo Mesa. Ubuntu 16.04.
Ciro Santilli escreveu
1

Se for sobre o seu próprio aplicativo, você pode vincular ao software OpenGL de implementação Mesa3D .

Malte Clasen
fonte