Valve: OpenGL é mais rápido do que DirectX – mesmo no Windows
Em uma assustadora reviravolta que reforça a Válvula de desagrado para o Windows 8, verifica-se que a Origem do motor — o motor 3D que os poderes de Half-Life 2, Left 4 Dead, e Dota 2 — corre mais rápido no Ubuntu 12.04 e OpenGL que o Windows 7 e DirectX/Direct3D.
A equipe do Valve Linux a quebra em seu novo blog: com um Nvidia GTX 680, Intel i7-3930k, e 32GB de RAM, Windows 7 e DirectX, deixou 4 caixas de 2 mortos em 270.6 fps. Com o mesmo hardware, mas software diferente — Ubuntu 12.04 e OpenGL — L4D2 pontua 315 fps, quase 20% mais rápido que o Windows.
estas figuras são notáveis, considerando que a Valve tem refinado o desempenho do motor de origem Sob O Windows por quase 10 anos, enquanto a equipe da Valve Linux só tem trabalhado na porta Linux do Source por alguns meses. Valve atribui a velocidade até a ” eficiência subjacente do kernel e OpenGL.”
a versão Linux do L4D2 não começou em 315 fps, é claro – a versão inicial realmente chegou ao limite de apenas 6 fps. Para realizar um ganho de desempenho tão grande, uma abordagem de três frentes é tomada: o jogo é ajustado para jogar bem com o kernel Linux, o jogo é otimizado para trabalhar com OpenGL (em vez de DirectX), e bugs nos drivers gráficos Linux são endereçados.este último ponto é interessante.: A Valve tem relações de longa data com a AMD, A NVIDIA e a Intel, onde a Valve reporta erros de driver e o fabricante da GPU corrige-os atempadamente. A Valve está levando essa relação para o Linux, o que é muito importante para o crescimento contínuo do Linux como uma plataforma de jogos. Neste caso, a Valve diz que o driver do NVIDIA Linux não tinha suporte de multithreading — e uma vez que eles adicionaram a uma versão posterior do driver, o desempenho aumentou.
mas aqui está o melhor bit: usando estas novas otimizações OpenGL, a versão OpenGL do L4D2 no Windows é agora mais rápida do que a versão DirectX. Com o mesmo hardware, o Windows 7/OpenGL/L4D2 clocks in at 303.4 fps-compared to Windows 7/DirectX / L4D2 at 270.6 fps. Em resumo: OpenGL é mais rápido que DirectX.
quanto ao porquê do OpenGL ser mais rápido que o DirectX/Direct3D, a resposta simples é que o OpenGL parece ter um oleoduto mais suave e eficiente. Em 303,4 fps, OpenGL está rendendo um quadro a cada 3,29 milisegundos; em 270,6 fps, DirectX está rendendo um quadro em 3,69 milisegundos. Essa diferença de 0,4 milissegundo deve-se à rapidez com que o pipeline DirectX pode processar e extrair dados 3D.
por que ainda usamos Direct3D?se o OpenGL é mais rápido, porque é que o DirectX ainda é a API predominante? Não é por causa da qualidade da imagem ou recursos: OpenGL 4.0 tem todos os shaders e tessellators e widgets que DX tem. Não é por causa do suporte de hardware: Todas as placas gráficas NVIDIA e AMD suportam a última versão do OpenGL junto com o DirectX.
Na verdade, tudo se resume a essa coisa velha que chamamos de efeito de rede-e, claro, heft monopolista e dólares de marketing. DirectX, porque tem uma API mais limpa e melhor documentação, é mais fácil de aprender. Mais desenvolvedores usando DirectX = mais jogos DirectX = melhor suporte ao driver. Este é um ciclo vicioso que novamente leva a mais devs DX, mais jogos DX, e melhores drivers DX/ferramentas/documentação. A Microsoft também comercializou incansavelmente o DirectX-e quem pode esquecer o lançamento do Windows Vista e da campanha de difamação OpenGL da Microsoft? A versão empacotada de Vista do OpenGL foi completamente danificada, forçando muitos devs a mudar para DirectX.
Microsoft tem boas razões para dificultar o progresso do OpenGL, é claro: Enquanto DirectX é proprietário e só funciona em Windows, Xbox e Windows Phone, OpenGL é completamente cross-platform. Existem implementações OpenGL sólidas para Mac, Linux, PlayStation 3, Nintendo Wii, e quase todos os smartphones modernos (OpenGL ES). É obviamente do interesse da Microsoft garantir que as melhores experiências de jogo são exclusivas para as suas plataformas.com o desgosto de Gabe Newell pelo Windows 8 (e Blizzard ecoando seus sentimentos), o lançamento iminente do Steam no Linux, e o crescimento contínuo dos jogos de smartphones, nós poderíamos estar à beira de uma revolução OpenGL. Se o Windows gaming crown continuar a escorregar, OpenGL pode logo se tornar a API padrão, em vez de uma reflexão posterior. Muito em breve, pode ser padrão desenvolver um jogo que funciona bem em todas as plataformas — em vez de se concentrar no Direct3D e deixar o Linux e OS X no frio.
Valve vai falar sobre seus avanços Linux / OpenGL no SIGGRAPH 2012 na próxima semana. SIGGRAPH é onde geralmente ouvimos sobre as últimas notícias OpenGL e DirectX, também-então fique atento!
actualizado @ 2:40: A história originalmente afirmou que o OpenGL spec é geralmente à frente do DirectX — mas isso não tem sido verdade por alguns anos agora.