Checando a aceleração 3D - Algumas opções

Publicado por Alberto Federman Neto. em 28/06/2013

[ Hits: 18.971 ]

Blog: https://ciencialivre.blog/

 


Checando a aceleração 3D - Algumas opções



Observação inicial: abaixo, terá comandos para placas de vídeo NVIDIA ou ATI. Isso porque dois computadores foram usados nos testes:

A. AMD Atlhon X2, duplo núcleo, 64 bits, 8 Giga de RAM, tipo DDR2, placa gráfica offboard GeForce 610, 2 G de memória e sistema operacional Sabayon Linux 13, com driver NVIDIA 319.03 e GPU-CUDA ativada.

Detalhes, instalação do driver, etc, veja:
B. AMD Phenon, FX8150 Black Edition, 8 núcleos, 64 bits, 16 Giga de RAM, tipo DDR3, placa de vídeo offboard ATI SAPPHIRE Radeon 5450, 1 G de memória e sistema operacional Sabayon Linux 13, com driver Catalyst versão 13.4 e ATI GPU ativada.

Detalhes, instalação do driver, etc, veja:
Dica: muitos usuários de GNU/Linux gostam de Compiz. Para utilizá-lo, sabe-se que é preciso ter uma boa placa de vídeo: NVIDIA, Intel ou ATI, com aceleração 3D funcionando.

Embora seja um assunto em parte bem conhecido, como é interessante e muita gente gosta, estou reportando aqui nesta dica.

São bem conhecidas as duas maneiras principais de se checar se a aceleração 3D está funcionando.

Primeira:

Instale em sua distribuição os pacotes chamados mesa e mesa-progs (o nome mais comum, mas em algumas distribuições pode ser glx-utils, mesa-utils ou mesa-demos):
Depois, verifique o funcionamento da aceleração com um dos comandos abaixo:

glxinfo -i | grep render
Ou:
glxinfo -i | grep openGL
Ou ainda:
glxinfo -i | grep direct

A saída deve ser algo que mostre a renderização e a aceleração 3D. Ex.: para uma ATI:

glxinfo -i | grep render
 direct rendering: Yes
 OpenGL renderer string: ATI Radeon HD 5450
    GL_NV_conditional_render, 
    GL_NV_copy_depth_to_color, 
    GL_NV_copy_image,

    GL_NV_conditional_render, 
    GL_NV_copy_depth_to_color, 
    GL_NV_copy_image]

Segunda:

O outro comando faz aparecerem três engrenagens rodando e medem aproximadamente a velocidade com que o sistema desenha na tela (FPS, Frames por Segundo): glxgears

Primeira coisa que me ocorre esclarecer, muitas vezes, o glxgears não apresenta um bom valor de FPS.

Ex.: só 60 FPS, 70 FPS.

A principal causa: placa de vídeo configurada para funcionar junto com o sincronismo vertical do monitor de vídeo. Isto é, sua poderosa placa de vídeo desenhará na tela, mas na velocidade máxima (que é baixa, monitor é bem mais lento) que o monitor puder mostrar!

Para corrigir isso: se você usa uma NVIDIA, abra o controlador gráfico dela (nvidia-settings), desligue o PowerMizer (ou tire-o do modo adaptativo), desative o filtro anisotrópico, a suavização e renderização de fontes, trabalhe em máxima performance e não em máxima qualidade de imagem etc... etc... Resumo: coloque tudo em máxima performance e principalmente, DESATIVE VSYNC!

No controlador Catalyst, da ATI, também é possível fazê-lo.

Outra maneira de fazê-lo, é rodando um comando antes do glxgears, ou usando este com opção, como abaixo:

export vblank_mode=0
$ glxgears

Ou:
vblank_mode=0 glxgears

Quer ver a diferença?. Abaixo, ambas as opções, em uma NVIDIA GeForce 610:

Com sincronização vertical ativada:

glxgears
 Running synchronized to the vertical refresh.  
 The framerate should be 
  approximately the same as the monitor refresh rate.
 302 frames in 5.0 seconds = 60.383 FPS
 300 frames in 5.0 seconds = 59.889 FPS
 299 frames in 5.0 seconds = 59.689 FPS
 300 frames in 5.0 seconds = 59.884 FPS

Sem a sincronização vertical:

vblank_mode=0 glxgears
 25771 frames in 5.0 seconds = 5154.162 FPS
 26014 frames in 5.0 seconds = 5202.616 FPS
 26281 frames in 5.0 seconds = 5256.074 FPS

Aqui parece pouco, mas para ilustrar, foi medido com texturas, filtro anisotrópico ativado, em modo "Performance", mas com o gerenciamento de energia "adaptativo" (PowerMizer Adptative, NVIDIA GeForce 610) e com Compiz rodando em Xfce. Regulando tudo para alta performance e desligando o Compiz, vai para cerca de 8700 FPS.

Mas lembre-se, que o glxgears não deve ser tomado como uma medida rigorosa de benchmark, porque depende de você estar com Compiz ou não, em modo de performance alto ou não, ou com muitas janelas abertas ou muito grandes, etc.

Terceira:

Mas há outros comandos interessantes, mas bem menos conhecidos. Primeiro exemplo, o próprio glxgears, com opção "info", fica mais completo:

glxgears -info

Quarta:

Segundo exemplo, variantes do glxgears, como o comando abaixo:

glxspheres

Que gera a figura mostrada no screenshot e forma variantes modificáveis dela:
Linux: Checando a aceleração 3D - Algumas opções
A figura formada é esta esfera OpenGL:
Desenhada com o algoritmo abaixo:

Quinta:

Outro exemplo, o comando abaixo pode mostrar alguma informação útil sobre o funcionamento da placa de vídeo:

xvinfo

Saída do comando:

X-Video Extension version 2.2
screen #0
  Adaptor #0: "AMD Radeon AVIVO Video"
    number of ports: 4
    port base: 143
    operations supported: PutImage
    supported visuals:
      depth 24, visualID 0x71
      ......várias linhas..........
      depth 24, visualID 0x72
    number of attributes: 10
      "XV_SET_DEFAULTS" (range 0 to 1)
              client settable attribute
      "XV_DOUBLE_BUFFER" (range 0 to 1)
              client settable attribute
              client gettable attribute (current value is 1)
      "XV_BRIGHTNESS" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_SATURATION" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_COLOR" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_HUE" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_RED_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_GREEN_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_BLUE_INTENSITY" (range -1000 to 1000)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 4096 x 4096
    Number of image formats: 4
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x59565955 (UYVY)
        guid: 55595659-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)

Sexta:

Mais um exemplo, em ATI pode-se usar:

fglrxinfo

A saída é tipo:

 display: :0  screen: 0
 OpenGL vendor string: Advanced Micro Devices, Inc.
 OpenGL renderer string: ATI Radeon HD 5450
 OpenGL version string: 4.2.12217 Compatibility 
  Profile Context 9.012

Sétima:

Ou uma versão cúbica do glxgears, para ATI:

fgl_glxgears

Veja na figura abaixo. Note que esse valor, cerca de 280 FPS, pode parecer pequeno, mas é uma ATI média, uma 5450, são 24 objetos 3D, e num computador com transparência, KDE e efeitos 3D de KWin rodando, portanto não é tão lento.
Linux: Checando a aceleração 3D - Algumas opções

Oitava:

Você ainda pode avaliar o desempenho da sua placa de vídeo com programas gráficos mais elaborados como o HardInfo.

Pode, inclusive, fazer testes Benchmark, ou com jogos, ou com GPU, CUDA e BOINC, um programa de computação distribuída.

Os vídeos abaixo mostram os aplicativos do pacote mesa-progs em ação:
  

Outras dicas deste autor

Tecla "PrintScreen" não captura mais a tela em KDE5 [Resolvido]

Instalando e rodando múltiplas interfaces gráficas em Linux tipo Debian

Multifuncional HP Deskjet 2050 - scanner não funciona no Sabayon Linux [Resolvido]

Krusader 2.0.0 Phoenix Egg - Gerenciador de arquivos completo para o KDE4 ou superior

MLDonkey - Um cliente P2P para várias redes e para compartilhamento direto

Leitura recomendada

Use e abuse do seu Gradiente Vibe

Troca-troca de identificação (placa de rede) no Linux

Placa wireless USB Multilaser Atheros Communications, Inc. AR9271 802.11n no Linux

Placa de Rede Attansic openSUSE 11.4 64 bits - Configuração

Wireless Ralink Driver

  

Comentários
[1] Comentário enviado por removido em 29/06/2013 - 12:11h

Ótima dica, Alberto.

Conheci melhor meu processador e seus limites com estes comandos.
Alguns já conhecia e outros não.


Boa!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts