O que é o comando terminal que pode mostrar a versão do OpenGL?

95

Então, eu quero descobrir qual é a minha versão do OpenGL. Eu tenho acesso ao Ubuntu via SSH. Qual comando devo executar?

Kabumbus
fonte

Respostas:

122

Para verificar a versão do OpenGL,

glxinfo | grep "OpenGL version"

Você obterá a saída da seguinte forma:

glxinfo | grep "OpenGL version"
OpenGL version string: 1.4 (2.1 Mesa 7.7.1)

Editar:

Você pode ter melhor sorte com o OpenGL moderno, apenas procurando por "versão" em vez de "versão OpenGL", dadas as diferenças entre os perfis core e compat, bem como as várias versões GLSL e GLES:

glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 4.1
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.2
OpenGL core profile shading language version string: 4.10
OpenGL version string: 3.0 Mesa 11.1.2
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

Observe que a versão real é apresentada pela "versão do perfil principal" (4.1), enquanto a "versão do OpenGL" é apresentada como 3.0.

karthick87
fonte
6
Cuidado! O glxinfo está lhe dizendo a versão do OpenGL usada pelo seu DISPLAY, não a máquina remota! No entanto, ele informará a versão GLX da máquina remota (os bits "cliente").
Rich
E se você está recebendo o cartão certo, mas a versão errada do OpenGL, provavelmente são os drivers novos / de código aberto - coloque-os na lista negra ou desinstale-os.
Engenheiro
1
Fiz algumas edições para encontrar melhores informações nas versões modernas do OpenGL que apresentam vários perfis, principalmente porque esse é o resultado principal da pesquisa no Google por "Linux check opengl version".
Taywee
5
Nota: No Ubuntu 16.04, glxinfonão está disponível por padrão. Para poder usá-lo, você precisa instalar o mesa-utilspacote.
starleaf1
1
@ frank Veja a resposta abaixo, por thomasmichaelwallace na seção Bibliotecas de Desenvolvimento. Quando você executa um cliente openGL em uma máquina remota, o cliente remoto usa as bibliotecas remotas, mas é exibido no servidor, por isso às vezes é um pouco confuso
Rich
19

dependendo do que você está procurando:

Implementação Open GL

Você pode usar o glxinfo, no pacote mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Bibliotecas de Desenvolvimento

isso depende um pouco,

dpkg -s [package name]

informará as informações da versão etc. de qualquer pacote.

mas você precisará saber em qual parte / implementação específica etc. do opengl você está interessado. Eu suspeito, para você, será:

dpkg -s libglu1-mesa
thomasmichaelwallace
fonte
14

Nota: Adicionei esta resposta posteriormente, porque nenhuma das respostas existentes aborda aspectos cruciais sobre o ssh e fornecerá valores enganosos para aqueles que seguem as instruções acima.

  1. Use o encaminhamento X ao fazer a ssh. Isso está ativado com ssh -X.

    Sem encaminhamento x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    Com encaminhamento x:

    $ ssh -X MYCOMP
    $ glxinfo | grep -i opengl
    OpenGL vendor string: NVIDIA Corporation
    OpenGL renderer string: GeForce 8800 GT/PCIe/SSE2
    OpenGL version string: 2.1.2 NVIDIA 310.44
    OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
    OpenGL extensions:
    

    Devo notar aqui que esta é a placa gráfica errada e os números de versão incorretos . ('Errado' em termos do que você esperaria).

  2. Defina a DISPLAYvariável como:0 , para permitir acesso ao driver da placa gráfica a partir da sessão remota.

    $ ssh -X MYCOMP
    $ DISPLAY=:0
    $ glxinfo | grep -i opengl
     OpenGL vendor string: NVIDIA Corporation
     OpenGL renderer string: GeForce GTX 550 Ti/PCIe/SSE2
     OpenGL version string: 4.3.0 NVIDIA 310.14
     OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
     OpenGL extensions:
    

    Isso lista a placa gráfica correta (a do computador remoto), bem como os números de versão corretos.

andorinha
fonte
Para mim, localhost:10.0infelizmente, resultou X Error of failed request: GLXBadContext.
22419 phil294
4

Para aqueles que querem apenas o número da versão, por exemplo, no argumento de um programa, você pode usar

$ glxinfo | awk '/OpenGL version/ {print $4}'
3.0

Nota: optirun glxinfo | awk '/OpenGL version/ {print $4}'se você estiver usando o zangão

yakoudbz
fonte
1

Você pode obter as informações executando o seguinte comando:

DISPLAY=:0 glxgears -info | grep GL_VERSION

Isso ecoa algo como:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Também tente sem DISPLAY=:0em caso de problemas. O comando glxgearsestá no mesa-utilspacote que pode ser instalado com:

sudo apt-get install mesa-utils
Sdaskr
fonte
Este trabalho para mim. Freescale iMX6 Yocto poky 1.6.2.
Jiu-
0

Se você tiver acesso root a um computador remoto executando o Ubuntu 16.04, poderá executar

user@local_computer:~$ ssh [email protected]
root@remote:~# export DISPLAY=:0
root@remote:~# export XAUTHORITY=/var/lib/lightdm/.Xauthority
root@remote:~# glxinfo | grep -i "OpenGL version"
OpenGL version string: 3.0 Mesa 11.2.0
Erik Sjölund
fonte
0

Ubuntu 17.10, terminal aberto e tipo;

glxinfo | grep "OpenGL version"

Você receberá algo assim;

OpenGL version string: 3.0 Mesa 17.2.2

Se você receber um erro de que o programa glxinfo não está disponível, será necessário inserir o comando

sudo apt install mesa-utils
Psyduck
fonte