AMD vs. Nvidia drivers: waar blijft de prestatiewinst van DirectX 12?

58 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. DirectX 11
  3. 3. Nvidia's (wonder)driver versus AMD's aanpak
  4. 4. DirectX 12 en Vulkan
  5. 5. Test
  6. 6. Resultaten API Overhead test
  7. 7. Resultaten games
  8. 8. Analyse
  9. 9. Conclusie
  10. 58 reacties

DirectX 11

De DirectX 11 api introduceerde in 2009 de mogelijkheid om draw calls te verdelen over meerdere cores en threads. Deze ondersteuning was ingebouwd om in te spelen op het toenemende aantal cores van processors. Indien de berekeningen goed verdeeld kunnen worden over meerdere threads, kan het totale aantal draw calls flink omhoog, en wordt de processor een minder beperkende factor in het renderen van grafisch complexe scénes. Een belangrijk punt is dat ondersteuning voor multithreading optioneel was, en dus niet vereist om Direct3D11-compliant te zijn.

Multithreading kan in DX11 worden bereikt door draw calls te laten uitvoeren door meerdere threads. Dat klinkt als voor de hand liggend, maar vanwege beperkingen in deze api moeten de draw calls wel altijd weer gecombineerd worden in een command list op de primaire processorthread, alvorens deze naar de gpu kan worden verstuurd. Omdat niet alles in het renderpad parallel kan worden berekend, is het niet een kwestie van elke thread een bepaald percentage van de draw calls laten afhandelen. Een voorspelbare prestatiewinst ligt met deze oplossing dus niet voor de hand.


Bij het gros van de DX11-games worden draw calls verwerkt op één thread (afbeelding: NerdTechGasm).

Inmiddels kunnen we wel stellen dat het potentieel van multithreading in games die draaien op de DX11-api door verreweg de meeste ontwikkelaars niet goed is benut. Hoewel ook op deze api in moderne games een dual core processor nauwelijks meer voldoet en een quad core cpu in sommige games zelfs als minimum wordt genoemd, wordt het klaarmaken van de draw calls nog vrijwel altijd aan een enkele thread overgelaten.


Het is mogelijk in DX11 om draw calls door meerdere threads te laten verwerken, maar ze moeten samengevoegd worden op één thread tot een command list (afbeelding: NerdTechGasm).

Advertentie
0

Hardware Info maakt gebruik van cookies

Hardware Info plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Hardware Info relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie.

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Hardware Info contextuele advertenties te tonen op basis van pagina's die je hebt bezocht.

    janee

    Hardware Info genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Hardware Info gevolgd worden. Deze data wordt maximaal 2 weken bewaard. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden.

    janee