NEWS

Grafikkarten

AMD stellt eigenen Entwicklungspfad für Primitive Shader ein (2. Update)

Portrait des Authors


AMD stellt eigenen Entwicklungspfad für Primitive Shader ein (2. Update)
86

Werbung

Bereits seit einigen Tagen hält sich hartnäckig ein Gerücht, nachdem es die Primitive Shader der Vega-Architektur nicht mehr in die finale Entwicklung des dazugehörigen Treibers schaffen werden. Auf die Funktionsweise der Primitive Shader gehen wir später noch genauer ein.

Nun aber zum Gerücht, welches durch den Kollegen Marc Sauter von Golem.de im Forum des 3D-Center bestätigt wurde. Laut Aussage AMDs, die im Rahmen einer Gesprächsrunde zum CES Tech Day Anfang Januar gefallen ist, ist der alternative Treiber-Pfad für Primitive Shader verworfen worden. Stattdessen will man die Primitive Shader per API den Entwicklern anbieten. Wie die Umsetzung aber letztendlich genau aussehen soll, dazu machte AMD offenbar keinerlei Angaben.

An dieser Stelle sei angemerkt, dass AMD eine implizite Verwendung der Primitive Shader nie versprochen hat. Bisher konnte immer nur von einer Verwendung per API ausgegangen werden.

Eine explizite Unterstützung der Primitive Shader ausschließlich durch die Entwickler ist als kritisch zu betrachten. Solche expliziten Modi müssen in Form von Programmierarbeit in eine Engine oder ein Spiel eingepflegt werden. Der Explizit Mode für CrossFire in DirectX 12 beispielsweise wird derzeit nur in Ashes of the Singularity in breiter Form eingesetzt. Eine implizite Unterstützung der Primitive Shader hätte eventuell für mehre Spiele eine verbesserte Leistung bedeutet, wobei eine explizite Unterstützung durch die genauere Auslegung auf das jeweilige Spiel mehr Leistungspotenzial bietet.

Funktionsweise der Primitive Shader

Neu innerhalb der Geometry Pipeline der Vega-Architektur ist, dass Vertex Shader und Geometry Shader nicht mehr getrennt voneinander behandelt werden müssen. Stattdessen sollten die erwähnten Primitive Shader eingesetzt werden. Diese beinhalten Vertex- und Geometry-Berechnungen, lassen sich über einen verbesserten Load Balancer besser auf die zur Verfügung stehenden Hardware-Ressourcen verteilen. Damit sollen die Shadereinheiten besser ausgelastet werden. Die GPU überwacht sich, bzw. die Auslastung ständig selbst und versucht die ideale Verteilung zu erreichen.

Die Steuerung der Primitive Shader und Zuteilung der Vertex- und Geometry-Berechnungen sollte über den Treiber erfolgen. Dazu war offenbar ein alternative Treiber-Pfad in der Entwicklung, der nun eingestellt wurde. 

Wie groß der Einfluss der Primitive Shader auf die Leistung gewesen sein soll, ist nicht bekannt. Sicherlich aber haben sich einige Käufer einer Radeon RX Vega ein Leistungsplus durch den Einsatz der Primitive Shader erhofft.

Bisher hat sich AMD noch nicht zu dem Thema geäußert und daher sind auch die Gründe für die Einstellung der dazugehörigen Entwicklung unbekannt. Wir haben dazu eine Anfrage an AMD gestellt.

1. Update:

Wir haben zwei Folien erhalten, die seitens AMD zur Klarstellung zum Tech Day auf der CES 2018 verteilt wurden. In beiden geht AMD auf die erweiterte Unterstützung durch die GPUOpen-Initiative ein. Laut der zweiten der beiden Folien war und ist eine Unterstützung der Primitive Shader nur explizit durch die Entwickler geplant. Allerdings sind dazu Änderungen der API notwendig. Dies hindert AMD offenbar auch daran eine implizite Unterstützung anzubieten.

Die Verteilung der Vertex- und Geometry-Berechnungen erfolgt bereits in gewisser Weise im neuen Geometry Path. Die Primitive Shader sind nur ein weiterer Schritt dieses Prinzips. Wolfenstein 2: The New Colossus nutzt die Compute Shader für die Geometry-Berechnungen.

Außerdem ist in den Folien die Rede von einer erweiterten Unterstützung des Draw Stream Binning Rasterizer (DSBR) die Rede. Hinsichtlich des High Bandwidth Cache Controller (HBCC) gibt es keinerlei Neuigkeiten. Rapid Packed Math wird hingegen schon von einigen Spielen unterstützt.

2. Update:

Wir wollen noch einmal zurück zum Ausgangspunkt, denn nach dieser Meldung entbrannte eine Diskussion darüber, was AMD versprochen hat und was nicht. Die Frage ist, ob die Primitive Shader im impliziten Modus immer verfügbar sein sollten und damit theoretisch von jedem Spiel genutzt werden konnte oder ob es nur einen expliziten Modus geben sollte, bei dem die Entwickler für jedes Spiel eine entsprechende Optimierung vornehmen müssen.

AMD beruft sich nun auf oben gezeigte Folie, die nur von einer API für Entwickler spricht. Im Sommer hingegen sprach AMD noch von einer impliziten Unterstützung: "The driver takes care of it for you. Just render as normal."Eben diese treiberseitige Einflussnahme ist nun offiziell gestrichen worden.

Datenschutzhinweis für Twitter

An dieser Stelle möchten wir Ihnen einen Twitter Feed zeigen. Ihre Daten zu schützen, liegt uns aber am Herzen: Twitter setzt durch das Einbinden des Applets Cookies auf ihrem Rechner, mit welchen sie eventuell getracked werden können. Wenn Sie dies zulassen möchten, klicken Sie einfach auf diesen Feed. Der Inhalt wird anschließend geladen und Ihnen angezeigt.

Ihr Hardwareluxx-Team

Tweets ab jetzt direkt anzeigen

Der komplette Diskussionsverlauf findet sich auf Twitter.

Was aber bedeutet dies nun? Wollen Spiele- oder Engines-Entwickler die Primitive Shader unterstützen, müssen sie dies wohl auf direktem Wege tun. Das bedeutet zusätzlichen Aufwand für die Entwickler und dies dürften viele scheuen. Hinzu kommt, noch gibt es die dazugehörige API nicht. Es ist sogar die Rede von Änderungen in der Grafik-API selbst, die vorgenommen werden müssen. Bis sich bei DirectX oder Vulkan aber etwas in dieser Richtung tut bzw. neue Funktionen eingeführt werden, dauert es Jahre.

Für die Vega-Karten könnten die Primitive Shader damit zu einem Papiertiger werden. Da sie aber vermutlich auch bei der Navi-Generation eine Rolle spielen werden, werden wir uns 2019 erneut mit dem Thema beschäftigen.

Ein ähnliches Schicksal droht dem High Bandwidth Memory Controller (HBCC). Dieser kann zwar per Treiber aktiviert werden, ist standardmäßig aber nicht aktiv. Der Einfluss auf die Leistung hängt vom Spiel und den restlichen Komponenten des Systems ab. Doch eine Art White- und Blacklist für verschiedene Spiele plus Abhängigkeiten von der Hardware sind nicht so einfach zu realisieren. Wie viele Nutzer einer Radeon RX Vega den HBCC aktiviert haben ist unbekannt, wer sich mit dem Thema aber nicht weiter beschäftigt, dürfte es bei den Standardeinstellungen belassen.

Immerhin scheint AMD beim Thema Vulkan und Rapid Packed Math besser aufgestellt zu sein. Hier sind zumindest schon einige Spiele erschienen, haben ein Update erhalten oder sollen ein Update erhalten, um die Techniken zu unterstützen.