O OpenGL é um ambiente para desenvolvimento de aplicações móveis e interativas, com gráficos 2D e 3D.
Desde sua introdução, em 1992, o OpenGL se tornou a API mais difundida na indústria de softwares — o que possibilita a criação de milhares de aplicativos em uma grande variedade de plataformas.
A escalabilidade da API do OpenGL permite que se rode aplicações em pequenos eletrodomésticos, aparelhos móveis, PCs/notebooks, workstations e supercomputadores.
Desenvolvedores podem trabalhar com e para qualquer plataforma, usando a API.
O OpenGL tem suporte para todos os UNIX, todas as versões do Windows (desde a 95), para o MacOS e, é claro, para o Linux.
A API pode ser chamada de praticamente todas as linguagens de programação importantes — Ada, C, C++, Fortran, Python, Perl, Java etc.
Neste artigo, vou mostrar como testar a performance do seu sistema Linux em relação ao OpenGL.
Para realizar os testes, usarei uma máquina com openSUSE Leap 42.1 e outra com Ubuntu 16.04 LTS.
Os aplicativos usados nos exemplos são universais e, caso sua distro GNU/Linux seja outra, não será difícil encontrá-los para baixar — se já não estiverem instalados.
A performance da sua placa gráfica no Linux
Apesar de ser famoso pela sua estabilidade e eficiência, como plataforma para realizar diversas tarefas, o Linux não é conhecido como plataforma excepcional para jogos — o que é uma injustiça.
Como consequência, não temos muitas ferramentas de benchmarking, de medição precisa da performance do hardware gráfico.
Ferramentas, estas, que poderiam nos ajudar a tirar conclusões mais sólidas e fazer comparações técnicas entre produtos e determinar exatamente o quão bem as coisas funcionam.
Enfim, todas as ferramentas de benchmarking disponíveis atualmente, para a plataforma Linux, rodam apenas sob a renderização da API do OpenGL.
Ainda que sua unidade de processamento gráfico (ou GPU) tenha compatibilidade com alguma versão do Direct3D… não será possível testá-las, neste quesito, usando Linux.
Use o GLX-Gears para experimentar o OpenGL no Linux
Este é um aplicativo popular e tradicional para testar o suporte ao OpenGL, no Linux (e em outros sistemas operacionais).
O glxgears faz parte do pacote de softwares ‘mesa-utils’.
No Ubuntu, você pode instalá-o com o apt (ou aptitude, no Debian):
sudo apt install mesa-utils
No openSUSE, use a ferramenta de gestão de pacotes, zypper para instalar o ‘mesa-demo-x’:
sudo zypper install mesa-demo-x
A partir daqui, já é possível usar as ferramentas glxinfo e glxgears.
Ao executar o comando glxgears, vai abrir uma janela, com uma renderização clássica do OpenGL, que mostra um conjunto de 3 rodas dentadas ou engrenagens.
Você pode verificar o frame rate ou FPS no terminal, em que você o executou, a cada 5 segundos.
Trata-se de uma ferramenta bastante antiga.
O aplicativo glxgears é muito básico e testa apenas uma porção pequena das possibilidades que o OpenGL oferece hoje.
Quando foi concebido, era usado para determinar se o driver proprietário da placa de vídeo estava instalado e funcionando corretamente em comparação com a versão de código aberto ou open source. Você não perceberia a diferença nos dias de hoje, contudo.
Como testar o OpenGL com o glmark2
Você pode instalar o glmark2, no Ubuntu, com o apt:
sudo apt install glmark2
Para instalar no openSUSE, siga os passos:
sudo zypper addrepo http://download.opensuse.org/repositories/home:ykoba/openSUSE_Leap_42.1/home:ykoba.repo sudo zypper refresh sudo zypper install glmark2
Para instalar o glmark2 no Debian, siga estas instruções.
Novamente, o programa deve ser executado no terminal, onde você poderá observar os resultados dos diversos testes que ele irá realizar — que podem ser vistos em uma janela à parte, tal como no glxgears.
glmark2
O aplicativo renderiza diversos tipos de imagens e gráficos em 2D e 3D, na tela e mede o desempenho em FPS.
Finalmente, calcula a média dos resultados dos testes e dá uma pontuação para a sua GPU.
Esta pontuação pode ser usada como parâmetro comparativo entre diversas máquinas/placas gráficas.
Alguns parâmetros de uso interessantes do glmark2 podem ser os seguintes:
O exemplo, que segue, apenas valida os diversos tipos de testes em relação ao seu hardware de renderização gráfica.
glmark2 --validate
O exemplo, abaixo, roda o aplicativo em tela cheia — útil quando você só deseja saber o resultado final e não tem a intenção de acompanhar os testes uma a um.
glmark2 --fullscreen
O resultado do programa executado em uma janela vai ser diferente de quando for executado em tela cheia. Resoluções diferentes tem intensidade diferente de uso do hardware, como será possível observar nos próximos testes.
Você pode rodar benchmarks específicos, se quiser.
Para rodar apenas o pulsar, use o seguinte procedimento:
glmark2 --benchmark pulsar
O resultado se refere apenas ao módulo testado:
======================================================= glmark2 2014.03 ======================================================= OpenGL Information GL_VENDOR: Intel Open Source Technology Center GL_RENDERER: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2) GL_VERSION: 3.0 Mesa 11.0.8 ======================================================= [pulsar] <default>: FPS: 1389 FrameTime: 0.720 ms ======================================================= glmark2 Score: 1389 =======================================================
Você pode usar o relatório de glmark2 --validate
para saber o nome do teste. Basta usar os nomes entre [ ], no início de cada linha.
Desta forma, para realizar o teste de refração, use o seguinte comando:
glmark2 --benchmark refract
Para rodar o teste de textura na resolução 4K (Ultra HD), use a seguinte linha de comando:
glmark2 --benchmark texture --size 3840x2160
Obviamente, se sua tela não tiver capacidade para exibir nesta resolução, a janela do glmark2 ficará um “pouco deslocada”. Mas é possível reposicioná-la com o mouse/touchpad.
Os resultados do glmark2
O glmark2 ainda não é a ferramenta completa para testes, uma vez que não cobre os recursos presentes nas versões posteriores ao OpenGL 2.0 — que já se encontra na versão 4.5 e deve começar a ser substituído pela nova API Vulkan.
Nos testes realizados, é possível ver uma progressão na contagem do FPS para cada teste, individualmente.
GPUs mais potentes são capazes de entregar taxas melhores de atualização.
Não confunda a taxa do FPS com a taxa de atualização do monitor (monitor refresh rate) que, provavelmente é 60 e não irá mudar.
O glmark não é capaz de oferecer resultados absolutos ou 100% conclusivos sobre a performance individual do hardware de exibição gráfica.
Uma máquina, por exemplo, com uma CPU de alto desempenho e sem qualquer peça de aceleração gráfica pode obter o mesmo resultado que uma outra máquina, com CPU + GPU medianas.
O motivo disto é que a renderização baseada em software, usada pela CPU de alto desempenho, equivale ao poder de processamento da combinação CPU + GPU de pequeno porte.
Esta é uma limitação do glmark2.
Fique à vontade para compartilhar com os outros leitores sobre o seu hardware gráfico e os seus resultados, na sessão de comentários.
Referências
Experimente também usar as ferramentas Unigine de teste de desempenho da placa gráfica.
Apesar de serem proprietárias, são excelentes.
OpenGL oficial page: https://www.opengl.org/about/.
Linux GPU benchmark: https://www.howtoforge.com/tutorial/linux-gpu-benchmark/.
http://www.binarytides.com/glmark-linux-gpu-performance/.