Wie werden Grafikkarten eigentlich optimiert?

Wellblechhuette

Cadet 4th Year
Registriert
Dez. 2018
Beiträge
71
Hallo,

also ich habe gesehen, dass Battlefield 5 z.B. für Radeon Grafikkarten besser optimiert ist als für Nvidia Grafikkarten.

Laut einem FPS Test bei Youtube, obwohl man denen ja nun nicht 100% trauen kann,
gibt es bei einer RX 580 um die 68 Fps und bei der GTX 1060 54 Fps.

Wie genau werden Grafikkarten sowohl durch Treiber als auch durch Hardware an, ja sagen wir Spiele optimiert?!

Vielen Dank
 
Na ja, erstmal entscheiden die Programmierer, ob sie Features eines einzelnen GPU Anbieters nutzen wollen bspw. Raytraycing oder Hairworks ... dann hat es natürlich die Konkurrenz erzwungenermaßen schwer eine ähnlich gute Performance ohne die entsprechenden Features hinzulegen ... Für Raytracing z.B. fehlen AMD Karten schlicht und ergreifend die Hardwareseitigen Rechenkerne die von der Nvidea RTX zum einsatz gebracht werden. Bei Nvidea Hairworks (z.B. in The Witcher 3) handelt es sich afaik um eine Software Lösung ... dh AMD kann hier auch drum herum arbeiten und wenn das Spiel erfolgreich genug wird wird der Treiber auch dafür optimiert und (mit Leitungseinbußen) funktioniert das dann irgendwann auch auf AMD.

Also afaik haben die Entwickler des Spiels den Grundstein der Optimierung in der Hand ... Der Treiber kann da nur Nachbügeln, wenn das Spiel für die Konkurenzkarten optimiert wurde.

gruß
Pyrukar
 
(Achtung: vereinfacht, damit es ohne Programmier-Erfahrung verständlich ist)

Treiber bieten Grafik-APIs wie OpenGL, DirectX oder Vulkan an. Diese bestehenden aus hunderten verschiedenen Funktionen. Je nach Spiel (und Grafikeinstellungen) werden verschiedene dieser Funktionen benutzt.
Dabei gilt: Viele Wege führen nach Rom, viele grafische Ergebnisse lassen sich durch mehrere verschiedenen Funktionen erreichen.

Wenn ein Spiel für einen GPU-Hersteller optimiert wird, dann nutzt man vorwiegend Funktionen bzw. geht auch mal Umwege um Funktionen zu nutzen, die im Treiber dieses Herstellers besonders schnell sind. Oft geht dies auf Kosten der Konkurrenz. Dies kann auch indirekt passieren durch ein Frameworks wie GameWorks, welches stark zugunsten NVIDIA-Karten optimiert ist. Die Performance-Unterschied von Funktionen sind nicht allein dem Treiber geschuldet; einige Funktionen lassen sich auf bestimmten GPU-Architekturen einfach nicht effizient umsetzen. So hatte beispielsweise DX12 eine Gruppe an Funktionen namens "Async Compute" eingeführt. Auf AMD konnten Spiele, sofern sie diese Funktionen nutzten, ein paar Prozent mehr FPS herauskitzeln. Auf NVIDIA hingegen verlor man damit oft 1-2%. Einfach weil die Architektur von NVIDIA-Karten nicht auf asynchrone Ausführung ausgelegt war und diese daher im Treiber umständlich emuliert werden mussten.

Wenn ein GPU-Hersteller seine Treiber für ein Spiel optimiert, dann analysiert er, welche Funktionen vorwiegend von diesem Spiel genutzt werden und optimiert gezielt diese. Damit lassen sich immer mal wieder ein paar Prozent rausholen.
 
Zurück
Oben