Alerta! Glxgears não é teste de desempenho

Publicado por ronnie peterson bacelar martins em 20/12/2009

[ Hits: 21.710 ]

Blog: http://dbahiaz.blogspot.com/

 


Alerta! Glxgears não é teste de desempenho



Ultimamente vejo muitos usuários reclamando do desempenho 3D dos drivers de vídeo, e em particular do da o Intel. Muitas dessas "reclamações" podem não ser culpa do driver, mas sim um erro induzido pelo tipo de testes utilizado para tal constatação. Claro que há os bugs conhecidos, mas gostaria de alertar para os testes feitos com o comando glxgears.

Há algum tempo eu venho desconfiando desse teste, por isso fiz uma pequena pesquisa na internet e cheguei a conclusão que o comando glxgears não deve ser usado para teste de desempenho da placa de vídeo ou de drivers de vídeo.

GLX (OpenGL Extensions to the X Window System) é uma interface que proporciona a conexão entre a biblioteca OpenGL e o X Window System. Ele permite que programas utilizem o OpenGL junto com as janelas do X Window System.

GLX consiste de três partes:
  • Uma API que proporciona funcionalidades para uma aplicação X Window System.
  • Uma extensão do protocolo X, que permite ao cliente (a aplicação OpenGL) enviar comandos de renderização para o servidor X (o software responsável pela exibição). O cliente e o servidor podem rodar em computadores diferentes.
  • Uma extensão do protocolo X que recebe o comandos de renderização do cliente e os repassa para a biblioteca OpenGL instalada (se a aceleração por hardware não está disponível normalmente é utilizada a biblioteca Mesa 3D, que emula este comportamento em software).

O GLX por sua vez traz um utilitário chamado "glxgears", uma demonstração que traz 3 engrenagens e fornecendo uma estimativa grosseira da velocidade da configuração de renderização em 3D e relatórios de FPS (frames por segundo). Entretanto ele é muito limitado:
  • Tem um vértice extremamente baixo / contagem de polígonos;
  • Não faz nenhuma texturização;
  • Apenas um simples sombreamento plano é usado;
  • Todos os dados do vértice é armazenado em uma lista de exibição, assim quase nada passa entre o host da CPU, e o processamento da placa de vídeo é iniciado. Isto implica principalmente numa limitação da taxa de preenchimento da placa de vídeo na tela;
  • O tamanho da tela padrão é de 300x300, portanto, não é mesmo um bom teste para taxa de preenchimento em tela;
  • Todos os passos de renderização OpenGL consiste em apenas 21 funções de chamadas, das quais apenas 6 são únicas. Não sendo um bom teste de stress OpenGL API.

Para uma simples confirmação do pesquisei repare o retorno do comando glxgears no "terminal" do openSUSE 11.2:

glxgears
*** NOTE: Don't use glxgears as a benchmark.
OpenGL implementations are not optimized for frame rates >> 60fps, thus these numbers are meaningless when compared between vendors.

Algo como:

*** NOTA: Não utilize glxgears como referência.
Implementações OpenGL não são otimizados para taxas de quadros>> 60fps, Assim, estes números são insignificantes quando comparados entre os fornecedores.
Linux: Alerta! Glxgears não é teste de desempenho.
Outra constatação que fiz é que, mesmo tendo um desempenho baixo mostrado no comando glxgears, consigo rodar normalmente todos os aplicativos que necessitam de aceleração sem travamentos ou lentidão, incluindo o composite nativo do kde 4 e jogos 3D.

Por isso o comando pode mostrar um valor baixo mesmo tendo um desempenho normal e vice-versa. Embora o comando glxgears muitas vezes seja utilizado para teste de desempenho, não é uma ferramenta de benchmark. Entretanto ele pode ser utilizado para verificar se o hardware possui bibliotecas de aceleração e se elas estão instaladas corretamente.

Como dica eu deixo o site http://www.phoronix-test-suite.com/?k=downloads, que tem uma ferramenta adequada para testes de desempenho de vídeo.

Referências:
Um abraço e boas festas à toda comunidade!

Ronnie Peterson

Outras dicas deste autor

Alterando o tema do plasma no OpenSuSE 11

Central de controle do Ubuntu

LiveUSB OpenSUSE 11.2

Lendo mensagens de log no openSUSE 11.3

Configurando Velox ou Speedy no OpenSuSE Linux 11

Leitura recomendada

Extraindo arquivos de um .rpm sem instalá-lo

Utilizando o comando cat

Verificar o tempo de execução de um comando

Utilizando o Alien

SSH - Apagando conflitos de chaves RSA no arquivo known_hosts

  

Comentários
[1] Comentário enviado por albfneto em 21/12/2009 - 07:59h

sim, o glxgears tem resultados não reprodutíveis exatamente, e é muito dependente da resolução, de qunatas coisas que usam 3D que estão rodando e até da regulagem dos parâmetros nvidia....
por ex. se a pessoa usa a regulagem Vsync do nvidia-settings, que é default no nvidia-settings instalado, vão baixar sempre os valores.
Ele realmente não é um teste rigoroso, serve mais pra mostrar que sua aceleração 3D e composite estão funcionando.

[2] Comentário enviado por dbahiaz em 21/12/2009 - 14:27h

Verdade albfneto, por isso quis alertar, porque vejo muita reclamação e o pessoal sempre dizendo que o retorno do glxgears era bom em tal placa ou em tal distro e nessa ta ruim, ou coisa parecida.

[3] Comentário enviado por ulisses_c em 01/01/2010 - 10:25h

Bom vlw pela informação pois eu mesmo ja havia usado o Glxgears para comparar algumas Gpus sempre achei muito estranho os resultados quando aumentava o tamnho da janela onde algumas veses ocorria demasiada lentidão para exibir as 3 engrenagens ja que em minha placa de video roda alguma jogos inclusive em full hd (1920x1080) sem nenhum lag , eles bem que poderiam colocar junto com o GLX um bench de verdade que viesse por padrao facilitaria muito as comparações.

[4] Comentário enviado por dbahiaz em 01/01/2010 - 18:26h

Ulisses@ É verdade ,cairia bem um " testador de verdade".

Obrigado pelo comentário!

[5] Comentário enviado por removido em 07/08/2010 - 20:33h

A mais ele pode se usado para testarmos os framebuffers não o OpenGL.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts