Freitag, 22. Februar 2013

DirectX 11.1: Hat Nvidia bewusst getrickst?


Grafikkarten mit Nvidias 28-nm-GPUs, etwa die GeForce GTX 680, sind nicht kompatibel zum Feature Level 11_1 von DirectX 11. Vergrößern
Bild: c't Wie gestern auf eine c't-Anfrage hin bekannt wurde, beherrschen die aktuellen 28-nm-GPUs auf Nvidias GeForce-600-Grafikkarten nicht alle Funktionen der Programmierschnittstelle DirectX 11.1. Sie laufen deshalb lediglich im abgespeckten Direct3D Feature-Level 11_0. Nvidia suggeriert aber sowohl in der Dokumentation zum Treiber 301.42 als auch in der Nvidia-Systemsteuerung unter Windows eine vollständige Unterstützung von DirectX 11.1.

Auch die Fachpresse sowie einige Hersteller der besagten Grafikkarten haben sie bis dato als kompatibel zu DirectX 11.1 bezeichnet. Auf der Nvidia-Webseite findet man über die Suchfunktion allerdings keine firmeneigenen Einträge zu "DirectX 11.1", sondern lediglich Pressezitate, in denen DirectX 11.1 erwähnt wird. Bei den Grafikkarten-Spezifikationen schreibt Nvidia bloß "DirectX 11" – ohne die Nachkommazahl genauer zu spezifizieren. Daher stellt sich die Frage, woher die Informationen der Presse über DirectX 11.1 stammen. Die Antwort lautet: Von Nvidia selbst.


Bis dato hatte die Fachpresse angenommen, dass Nvidias Kepler-GPUs alle von Direct3D 11.1 geforderten Funktionen unterstützen. Vergrößern
Bild: c't Bereits zum Start der GeForce GTX 680 unterstrich Nvidia sogar in der ausführlichen Presseerklärung vom 22. März 2012 die Unterstützung von DirectX 11.1: "Manufactured on TSMC's new 28-nm process, with support for PCI-E Gen 3 and DX11.1". Das Feature-Level ist dabei allerdings nicht erwähnt – es war bisher in der Branche üblich, die DirectX-Version mit dem entsprechenden Feature-Level gleichzusetzen. Wie die französischsprachige Hardware-Webseite hardware.fr nun jedoch schreibt, verwendete Nvidia während der zentralen Presseveranstaltung vor dem GTX-600-/Kepler-GPU-Marktstart explizit unterschiedliche Begriffe (englische Google-Übersetzung), wie "DirectX 11.1", die "API" oder "Feature Level 11_1". In einem Interview hatte sich der zuständige Journalist die Unterstützung des Feature-Levels 11_1 anschließend abermals von einem Nvidia-Mitarbeiter bestätigen lassen: "A l'occasion d'un entretien qui a suivi, nous avons cependant interrogé le fabricant plus spécifiquement pour nous assurer qu'il s'agissait bien du niveau 11_1 et la réponse avait été positive." Und so ging es wahrscheinlich nicht nur ihm.

Dies wirft ein schlechtes Licht auf Nvidia, denn was die tatsächlich in Hardware unterstützten Funktionen von Grafikchips angeht, müssen sowohl die Fachpresse als auch Hersteller anfangs auf die Aussagen des GPU-Entwicklers vertrauen – besonders im Fall von DirectX 11.1. Die Schnittstelle wird nämlich ausschließlich unter Windows 8 unterstützt, welches zum Marktstart der betroffenen Grafikkarten noch nicht in der finalen Version erhältlich war. Dabei spielt es keine Rolle, ob die von Nvidia nicht unterstützten Direct3D-Funktionen für Spiele relevant sind oder nicht, denn das Feature-Level 11_1 fordert einen genau spezifizierten, vollständigen Funktionssatz.

Zwar ist die Differenzierung zwischen Feature-Level und DirectX-Version zulässig, allerdings könnten dann selbst alte DirectX-9-Karten als kompatibel zu DirectX 11.1 beworben werden. Denn DirectX bietet die Direct3D Feature Levels 9_1, 9_2, 9_3, 10_0, 10_1, 11_0 und 11_1. Nvidia bediente sich also mit dem teilweisen Erwähnen von "DirectX 11.1" eines Tricks, möglicherweise um nicht schlechter als der Konkurrent AMD dazustehen, dessen aktuelle Grafikkartengeneration Radeon HD 7000 DirectX 11.1 inklusive der Funktion Target Independent Rasterization vollständig unterstützen soll.

DirectX-11.1-Funktionen von Kepler-GPUsPartial constant buffer updatesTarget-Independent Rasterization (2D-Rendering)Logic operations in the Output Merger16xMSAA Rasterization (2D-Rendering)Orthogonal Line Rendering ModeUAV in non-pixel-shader stages(Martin Fischer) / (mfi)


View the original article here

0 Kommentare:

Kommentar veröffentlichen