DX12 vs DX11 em Battlefield 1 Beta (9 GPUs)

A marca Battlefield já tem uma tremenda história de sucesso. Simplesmente é uma das franquias de maior renome nessa era online. A EA e a DICE sabem disso. Em suas últimas edições, sempre tem um período de testes beta abertos ao público e dessa vez não foi diferente. A novidade ficou por conta da possibilidade de, mesmo em beta, escolher qual API Gráfica você vai utilizar (DirectX 11 ou DirectX 12). E isso já nos dá uma boa prévia do que está por vir.

Vamos ver como que o beta de Battlefield 1 se comporta em uma gama de placas de segmentos diferentes, em Preset Médio e Ultra, em DX 11 e DX 12 (tudo em 1080p).

BANCADA

Sistema testado foi:

- CPU: Intel Core i7 5930k Stock

- RAM: 16GB DDR4 (4x4) Hyper X 3000 Mhz

- Placa Mãe: ASUS X99-a 2011v3

- SSD: SAMSUNG EVO 840 256GB (Com Windows 10 64-bit 1607 instalado)

- HDD Seagate Barracuda 3TB - 64MB Cache (com jogo instalado)

- Fonte: Corsair HX 750i

- Refrigeração: Water Cooler Corsair H105i

- AMD Driver: 16.9.1 Crimson

- NVIDIA Driver: 372.70

- Data de coleta dos dados: 6 e 7 de setembro de 2016

BASE DE PLACAS

O PC Facts conta com uma base de 9 Placas de vídeo, sendo 5 AMDs e 4 NVIDIAs para o teste:

- GTX 1060 Founders Edition

- GTX 980ti 6GB G1 Gaming

- GTX 970 4GB PNY Reference Design

- GTX 960 2GB EVGA SC

- RX 470 4GB XFX RS

- RX 460 2GB XFX

- R9 390x 8GB MSI Gaming 8G

- R9 380x 4GB PowerColor Myst Edition

- R7 360 2GB PC Yes Hammer

FPS, 1% Low e 0,1% Low

Vamos ao que interessa! A começar pelos FPS. Apesar de não ser a maneira mais correta de se medir a qualidade de nosso gameplay, a média de FPS ao menos é a forma mais simples que permite-nos agrupar a performance bruta de todas as VGAs testadas em um único gráfico. Portanto, abaixo seguem os FPS em Médio e Ultra em 1080p com DirectX 11 e 12 juntos, elencados de maior para menor performance:

Apesar de conseguirmos determinar qual maneira de se jogar melhor com cada placa ou marca, resolvemos fazer um novo gráfico com as variações de cada placa, migrando de DX11 para DX12. Veja:

SOBRE A AMD E O DIRECTX 12

Interessante salientar que em performance bruta, a série 300 da AMD teve ganhos consideráveis em ambos os presets, com interessantes 10% na 380x, mas a série 400, não. A RX 460 teve perdas de 22,44%. Isso corrobora o que já vínhamos dizendo em vídeo e nos grupos: as séries anteriores a 300 (inclusive a própria) têm uma defasagem de driver, herança dos Catalyst. Isso acarreta a errônea impressão de que as placas estão "mostrando" seu poder agora, quando na realidade, o desenvolvedor quem está tirando proveito real da placa por conta da nova API. O porquê disso é bem simples: a responsabilidade e influência do driver em DX12 é menor, afinal, estamos lidando com uma API de baixo nível. Consequentemente, quanto melhor seu driver em DX11, mais difícil fica para o dev de DX12 conseguir extrair o mesmo tanto ou mais performance do hardware. Em outras palavras, maior a dependência da competência do desenvolvedor para extrair toda a performance do seu hardware em uma API que faz pouco uso do software criado por quem de fato, mais a conhece - sua fabricante, AMD ou NVIDIA.

A nova arquitetura Polaris, entretanto, tem como diferencial a otimização de frametime e, mesmo a AMD não tendo sido clara com relação ao quê necessariamente foi aprimorado para garantir essa melhora, parece ser relacionado ao DX 11 a nível de driver. Por isso, conclui-se evidentemente que o desenvolvedor de Battlefield na API DX12 não supera a competência do engenheiro de driver da AMD em DX11. Daí essa perda na série 400. Mas mesmo com perdas, os donos de RX's 460 terão performance de 49FPS em BF1 no Ultra e de 74FPS no médio... Quer mais que isso?!

SOBRE A NVIDIA E O DIRECTX 12

Tem um bom tempo que a NVIDIA vem enfrentando "derrotas" e mais "derrotas" em DX12. Isso recai na mesma questão da série 400 da AMD. O dev em DX12 não consegue superar a competência dos engenheiros de driver da NVIDIA e da AMD para a série 400 em DX11. Daí o "fracasso". Por mais "derrotas" que a NVIDIA venha sofrendo - e agora, até a AMD - considerando que DX 12 e DX 11 tem a mesma qualidade de imagem, a NVIDIA tem duas campeãs em performance bruta: GTX 980ti (mas no nosso teste não tem a Fury X para competir, então esquece) e a GTX 1060 (que mesmo sem a RX480 para competir pelo lado da AMD, a mesma está bem representada pela R9 390x). Portanto, os usuários da NVIDIA não precisam necessariamente se preocupar. Vão rodar tudo super bem em suas Geforces.

SOBRE CPU E DIRECTX 12

Coisa interessante é essa nomenclatura "BETA". Nos remete a quase fim do desenvolvimento, mas não nos põe necessariamente a par do que pode ser ou não modificado a tempo do lançamento. O fato é que em termos de CPU, temos os seguintes resultados, que simplesmente não podemos considerar como resultados finais efetivos de um jogo pronto:

A AMD teve um uso completamente errático de CPU, Core/Thread em DX12 (no Ultra). Se isso fosse detectado apenas em uma GPU ou em uma série, poderíamos dizer que haveria algo errado com o chip específico, mas foi algo tão generalizado que não tivemos como afirmar do que se trata de maneira conclusiva. Por termos um beta em nossas mãos, rezemos para ser um problema de versão, um bug a ser corrigido. Senão, muita gente pode sofrer com isso. Na RX470, tivemos um dos cores sendo utilizado em 89,35% de média. DE MÉDIA! EM UM 5930K. Abaixo, o uso máximo de Core em DX12 e DX11 na 390x em linha:

Como vocês podem ver, um dos cores do i7 5930k foi levado inúmeras vezes ao extremo, mas apenas em DX12. Como seria de se supor, a API deveria, na verdade, reduzir o uso dos cores, gerenciar melhor as threads de uma maneira geral, mas parece que, por alguma inconsistência que cremos ser do beta de BF1, o comportamento foi bizarro. Mas apenas em AMD. Em NVIDIA seguiu dentro da normalidade. A boa notícia é que isso não pareceu afetar a performance da 390x, conforme veremos a seguir na análise dos frametimes.

FRAMETIMES

Aqui, já vem a análise de performance real. Um verdadeiro exame de qualidade do gameplay, onde se verifica que não necessariamente mais FPS significariam mais fluidez ou melhor jogabilidade. Vejamos, de maneira comparada, o Frametime das melhores VGAs de cada marca (GTX 980ti e R9 390x) e das placas de nova geração de cada marca (GTX 1060 e RX 470) em ambas as APIs:

Em TODOS os casos, o DirectX 12 foi mais lento. Teve um tempo de criação de cada frame maior. Na 390x que apresentou coisa pouco melhor. Em compensação, (principalmente em NVIDIAs) a variação desse tempo é quase nula. Perceba como na 1060 e na 980ti, por mais que sejam mais lentas, o frametime se manteve com linhas muito finas (e portanto com poucas variações) mantendo uma performance bem fluida. Infelizmente, tanto na GTX 980ti quanto na Pascal mais "humilde", houveram spikes que quebram essa fluidez de modo a estragar a experiência - na 1060 chegamos a 90ms em um frame e 40ms na 980ti. Nas AMD, a 390x tem spikes em DX11 de 55ms, o que não ocorre em DX12. Em compensação, a RX 470 tem uma consecução de spikes ao final do gameplay entre 40 e 60ms.

Interessante salientar que, mesmo com alto uso de CPU e de Cores ou Threads, a 390x não pareceu ter sido prejudicada por um gargalo de CPU ou de Thread. Na verdade, a referida placa teve uma performance melhor que a RX 470 e termos brutos e de gameplay sem maiores spikes.

SOBRE VRAM E O DIRECTX 12

Todo mundo diz que o DirectX 12 e jogos atuais são sinônimos de consumo de VRAM. Bem, isso é até tem acontecido com certa consistência, mas não foi o que ocorreu em Battlefield 1 Beta. Ao contrário de ROTTR, Doom, Mirror's Edge - que inclusive usa do motor Frostbite de BF1 - o nosso beta não chegou a marcar sequer 3,2GB de uso de VRAM. As únicas VGAs que precisaram de VRAM compartilhada com o Windows foram as de 2GB (RX 460, R7 360 e GTX 960).

Vale ressaltar que todas conseguiram puxar mais VRAM do Windows em DX12, exceto a da NVIDIA (meio estranho, mas nada de mais).

TEMPERATURA

Agora, o teste final, que posiciona todas as VGAs em um ranking baseado em quantos graus celsius elas mantiveram de média durante a rodada de testes:

Nada demais a relatar a respeito das temperaturas. Tudo dentro da normalidade. Mas que é MUITO BOM ver uma RX 470 e uma RX 460, ambas da XFX, abaixo dos 65ºC, isso é, né verdade? A GTX 980ti, aos seus 67ºC também foi muito bem.

CONCLUSÃO

Parece que os desenvolvedores e a Microsoft aprenderam a se defender das más implementações de DX 12. Basta colocar os dizeres "Beta" ou "Preview" que tá todo mundo perdoado. Antes todos os "Betas" ou "Previews" fossem com Forza Apex Beta que tem, até agora, a melhor implementação de DX12 em termos de otimização, porque em termos de recursos, faltam coisas básicas como suporte a SLI e Crossfire.

Isto posto, recomendamos que teste em sua casa o que fica melhor para você, tanto pra benchmark quanto na hora de jogar mesmo. É bem provável que se seu sistema for NVIDIA, você ficará em DX11 e se for AMD, você ficará em DX12. Mas as implementações até o momento são tão aleatórias que não podemos categorizar: use API X ou Y. Dos males, o menor.

Não esqueça de conhecer nosso grupo no Facebook (https://www.facebook.com/groups/pcfacts)

Nosso canal do Youtube (Youtube.com/pcfacts)

E nosso grupo no Telegram (telegram.me/pcfactsgroup)

#GTX980ti #GTX970 #GTX1060 #GTX960 #RX470 #RX460 #R9380x #R9390x #R7360 #Battlefield1 #Beta #DX11 #DX12 #DX11vsDX12 #DX12vsDX11