Tutoriais

▷ Directx 12 vs vulkan: a luta pelo melhor mecanismo gráfico?

Índice:

Anonim

Atualmente, no mundo dos PCs, existem duas APIs gráficas de primeira classe que gerenciam o mercado com autoridade. Por esse motivo, apresentamos a comparação do DirectX 12 Vs Vulkan.

Ambos têm uma longa história por trás deles e uma horda inteira de defensores e detratores. Hoje veremos as diferenças, as chaves de cada uma e tentaremos oferecer alguma luz sobre elas.

Índice de conteúdo

API gráfica de baixo nível e "sobrecarga do driver"

API significa "interface de programação de aplicativos" e é um conjunto de sub-rotinas que podem ser usadas por um desenvolvedor que também inclui protocolos de comunicação e utilitários que facilitam o desenvolvimento de software. Podemos encontrá-los para quase tudo e é comum que cada provedor de serviços tenha esse tipo de auxílio para implementar seus sistemas de maneira simples e acessível.

APIs de baixo nível aproveitam melhor os recursos da GPU, aliviando a CPU, mas também podem aproveitar melhor os processadores com vários núcleos que temos hoje.

O DirectX 12 e o Vulkan 1.1 são APIs orientadas para o desenvolvimento de jogos e aplicativos que requerem a assistência de mecanismos gráficos modernos. Ao mesmo tempo, são APIs suportadas pelos drivers dos mais importantes designers de chipsets gráficos e, portanto, uma maneira rápida e econômica de acessar seus recursos sem precisar conhecer seu design em um nível muito baixo.

Uma API de baixo nível, como essas, permite trabalhar com o hardware com uma camada de interpretação muito leve, que permite ao desenvolvedor aproveitar melhor o hardware, obtendo melhores resultados em termos de desempenho e eficiência, permitindo também que outros subsistemas sejam liberados de carga adicional. No mundo do PC, ou telefones celulares, é menos dependente da CPU geral do sistema.

As duas APIs sobre as quais falaremos hoje podem ser consideradas APIs de baixo nível e ambos os desenvolvimentos resultaram em uma dependência cada vez menor da CPU do sistema, alcançando melhores resultados no nível de desempenho e acesso a funções mais gráficas. avançado. São duas APIs ativas que recebem atualizações anualmente para mantê-las alinhadas com o que o público em geral e os desenvolvedores esperam.

APIs de baixo nível têm efeito direto em outro conceito computacional que conhecemos como "sobrecarga de driver", que é, em suma, os recursos secundários necessários para executar certos tipos de operações em um computador. No caso de gráficos, refere-se aos recursos extras que a placa gráfica requer para realizar seu trabalho e, neste caso, são tempos de processo da CPU fundamentalmente centrais. As APIs de baixo nível que descreveremos aqui reduzem essa dependência e, de fato, a dependência tende a 0.

Microsoft DirectX

O DirectX surge como uma necessidade para padronizar diferentes subsistemas multimídia do Windows e é o substituto do WinG para Windows 3.1. É adotado no Windows 95 como um pacote complementar e sua segunda versão, DirectX 2.0, torna-se um componente fundamental do Windows 95 OSR2.

No DirectX, encontramos várias APIs independentes, como Direct3D, que é realmente a que está em questão, DirectDraw, DirectMusic, DirectPlay e DirectSound. O DirectX era uma maneira de nomear avanços comuns em todas essas sub-APIs. É uma API para Windows, mas também é usada para o desenvolvimento de jogos em seus consoles Xbox, para que possamos considerá-la uma API Multiplataforma, mas não gratuita, como é o caso do Vulkan.

O DirectX 12, sua versão mais recente, está conosco desde 2014 e não parou e, há alguns meses, recebeu melhorias importantes, como a sub-rotina Direct Ray Tracing (DXR), incluída na versão de atualização de outubro de 1809 do Windows 10.

APIs de baixo nível como o DirectX 12 têm uma vantagem fundamental, que é a redução da sobrecarga do driver. Os programadores agora têm o poder de projetar como a GPU se comportará em seus programas e podem gerenciar melhor os recursos da GPU, especialmente aproveitando a paralelização de processos. Isso inclui um melhor suporte para várias GPUs em um sistema e mesmo que não sejam do mesmo fabricante.

Eles podem executar diferentes tipos de operações, geralmente "número inteiro" ou "ponto flutuante", aproveitando os recursos dos gráficos compatíveis e também dividindo operações complexas em operações mais simples, processando-as em paralelo nos barramentos maiores. Um bom exemplo é como a AMD ou a Nvidia agora podem processar operações de 16 bits em seus barramentos de 32 bits, melhorando substancialmente a eficiência de seus gráficos.

Essa API aproximou a eficiência do uso de uma GPU de console, onde os desenvolvedores conhecem perfeitamente o hardware disponível, até o ecossistema heterogêneo que forma um PC com infinitas possibilidades de hardware.

Atualmente, o DirectX 12 está disponível, de surpresa, para Windows 7 e Windows 10 e, embora não seja diretamente compatível com o Xbox One, a verdade é que praticamente 90% de sua funcionalidade é usada no PC, as diferenças são mínimas e isso permitiu desenvolvedores adaptações rápidas de seus jogos de PC para Xbox One e vice-versa.

Vulkan of Khronos

Vulkan é a evolução da API de baixo nível do OpenGL e é suportado pela Khronos Corporation. No mundo dos PCs, eles têm um papel secundário sobre o DirectX 12, mas suas diferentes adaptações a diferentes plataformas, como o Android, fizeram dele uma referência em gráficos para mobilidade. Também é compatível com o Linux, sendo a ótima alternativa de jogo em sistemas livres.

Sua grande virtude é sua grande capacidade de processamento paralelo, sendo extremamente eficiente em CPUs e GPUs modernas, alcançando baixos usos do primeiro e ótimo uso do hardware do último. Ele foi especialmente projetado para tirar proveito dos processadores com vários núcleos e obter uma excelente distribuição de carga nesse tipo de processador; na verdade, é muito mais eficiente para os núcleos que podemos oferecer.

A história da Vulkan remonta a um ano depois que o DirectX 12 e a Khronos, uma empresa sem fins lucrativos, a mantém com a mesma frequência ou com mais freqüência do que a Microsoft com sua própria API. É baseado no API Mantle que a AMD desenvolveu para sua arquitetura GCN e essa foi outra API de baixo nível para um "driver adicional" reduzido. A AMD doou seus desenvolvimentos à Khronos e essas são as bases de uma das melhores APIs gráficas do mercado.

Além da paralelização superior, esse design também permite eliminar a pré-compilação das operações de sombreamento na GPU, podendo ter mais efeitos e na tela com maior velocidade de carregamento, além de um ajuste mais detalhado de como o hardware processa as operações ou como acessamos o buffer de quadro disponível. Certamente, é a API para PC mais próxima do hardware, ainda melhor que o DirectX 12.

A Vulkan também apresenta melhorias de API de baixo nível no Android e em outras plataformas.

Sua versão mais recente, o Vulkan 1.1, introduzida no final de 2018, inclui grandes melhorias, como o suporte a HLSL, que é a alternativa do DirectX 12 para gerenciar operações de shader sem a necessidade de pré-compilação, melhor compatibilidade com o DirectX 12 (para suas muitas sub-rotinas) além dos gráficos), suporte explícito aos sistemas Multi-GPU, independentemente do fabricante e, é claro, suporte ao RayTracing.

Pontos fortes e fracos do DirectX 12 vs Vulkan

Além dos recursos comuns já descritos, como melhor uso do hardware, maior controle sobre ele e melhor uso da paralelização da GPU e da CPU, essas duas APIs também adicionam a possibilidade de realizar operações gerais de computação com chips gráficos com que são compatíveis. Isso permite que mecanismos gráficos compatíveis, já há várias gerações, sejam capazes de executar operações matemáticas complexas que podem ser exploradas por programas de todos os tipos, incluindo aqueles sem componentes gráficos.

Nos jogos, eles também podem ser usados ​​para operações secundárias cada vez mais importantes, como o cálculo da física realista, inteligência artificial, efeitos sonoros posicionais etc.

Ambas as APIs têm grande suporte pelos grandes gráficos, tanto a AMD quanto a Nvidia se esforçam para oferecer a essas APIs os drivers apropriados para alcançar, oferecendo aos usuários as melhorias mais recentes e fortalecendo o desempenho e a estabilidade dos jogos que usam um. ou outra API.

A "sobrecarga do driver" de ambos é muito baixa, na verdade, como você verá em nossos testes, quase não existem diferenças entre eles, o que também é um sinal da importante otimização dos drivers de ambos os fabricantes.

Limitamos a taxa de quadros a 120FPS para uma demonstração do Driver Overhead. No Dota 2, o consumo de CPU é substancialmente reduzido com o mesmo FPS.

A única diferença mais óbvia é que o Vulkan tem um pouco menos de dependência da CPU, com menor consumo médio e também é muito mais aberto a diferentes plataformas, incluindo Windows e Linux e sua homogeneização com o OpenGL ES, que é sua versão móvel, está a caminho de unificar ainda mais as plataformas em que se move.

O DirectX 12 tem a seu favor a grande aceitação pelos desenvolvedores, que parecem encontrar nesta API o ecossistema perfeito para reduzir seus custos, uma vez que possui uma grande integração em estruturas tão difundidas quanto a.NET Framework, onde se integra com milhares de maravilhas. com pouca perda de desempenho.

Diferenças de desempenho em jogos com API dupla

Como o movimento é demonstrado ao caminhar, realizamos alguns testes de desempenho em diferentes jogos e benchmarks que têm a capacidade de usar essas duas APIs para execução.

Teste de sobrecarga do driver 3DMark. Resultados em milhões de solicitações, mais é melhor.

Cinzas da singularidade. Resultados no FPS, mais é melhor.

Brigada estranha. Resultados no FPS, mais é melhor.

Resumimos os melhores guias de hardware que lhe interessam:

  • Melhores processadores no mercado Melhores placas-mãe no mercado Melhor memória RAM no mercado Melhores placas gráficas no mercado Melhores SSDs no mercado Melhores gabinetes de chassi ou PC Melhores fontes de alimentação Melhores dissipadores de calor e resfriadores de líquidos

Como você pode ver, os resultados são pares e vemos diferenças entre os programas a favor e contra um e o outro. Isso nos deixa com a questão de qual é melhor e a resposta é clara, depende do programa e de como o desenvolvedor sabe ou deseja tirar proveito de seus benefícios. O que resta é pensar que em cada jogo os desenvolvedores usarão precisamente a API que melhor aproveita os benefícios de nossos gráficos, embora seja claro que ambas as opções pareçam mais do que competentes. O que você achou do nosso artigo sobre o Directx 12 vs Vulkan ? Queremos saber sua opinião!

Tutoriais

Escolha dos editores

Back to top button