Upgrade der DirectX-Version der Grafikkarte?

Upgrade der DirectX-Version der Grafikkarte?

Wenn Sie eine Grafikkarte kaufen oder sich deren Spezifikationen ansehen, sehen Sie die von ihr unterstützte DirectX-Version (in meinem konkreten Fall unterstützt die Karte 10). Was ich wissen möchte, ist, was diese Karte daran hindern würde, den DX11-Standard zu erfüllen, wenn Microsoft ihre neue Version 11 herausbringt?

Ich vermute, dass es an der Firmware der Grafikkarte selbst liegt. Könnte diese nicht geflasht werden, um die neueste Version zu unterstützen? Oder wird diese DX10-Karte DX11 problemlos unterstützen und ausführen, es liegt nur daran, dass Nvidia sie nicht als solche kennzeichnen konnte, da DX11 noch nicht erschienen war?

Wer hierzu gute Erkenntnisse hat, soll es mich wissen lassen!

Edit: Okay, wenn Sie diesen Thread herunterstimmen oder für seine Schließung stimmen, würden Sie bitte erklären, warum Sie denken, dass es eine „dumme Frage“ ist. Ich bin ernsthaft neugierig, wie oder was der Unterschied zwischen den DX-Versionen ist, der eine komplette Hardwareänderung erfordern würde. Die GPU-Befehlssätze sind gleich, der einzige Unterschied in der Hardware ist, dass die neueren schnelleren VRAM, mehr Stream-Prozessoren usw. haben. Warum kann eine DX10-Karte also nicht aktualisiert werden, um DX11 zu unterstützen?? Geben Sie mir einen Grund.

Antwort1

Der Grund, warum DirectX 10-Karten nicht auf DirectX 11 aktualisiert werden können, liegt höchstwahrscheinlich darin, dass DirectX 11 bestimmte Funktionen erfordert, beispielsweise ein bestimmtes Maß an Präzision bei mathematischen Operationen. Derartige Dinge sind schwierig und etwas lästig, wenn man sie auf Hardware zurückportieren möchte, die nicht für die Verwendung mit DirectX 11 entwickelt wurde.

Dies wäre dasselbe, als ob eine bestimmte CPU die neuen Funktionen einer neueren CPU nicht unterstützt. Natürlich könnten die neuen Funktionen emuliert werden (und laufen möglicherweise nicht viel langsamer als eine native Implementierung), aber die CPU selbst wird die erforderlichen Funktionen trotzdem nicht wirklich unterstützen. Eine ähnliche Idee wäre die Möglichkeit, SSE-Anweisungen auf einem Nicht-SSE-Prozessor zu emulieren. Natürlich könnte man das tun, aber es ist mit viel Aufwand verbunden und wäre viel langsamer als eine vollständige Hardwareimplementierung.

Mit spezieller Software können Sie zwar durchaus erreichen, dass eine DirectX 10-Karte genauso gut aussieht wie eine DirectX 11-Karte und fast alles auf ähnliche Weise funktioniert, aber alle nativen Funktionen oder die zusätzliche Präzision, die DirectX 11 erfordert, würden fehlen und ich denke allgemein, dass die Software-/Emulationsebene um einiges langsamer wäre als ein reiner Hardwareansatz.

Antwort2

Nach (und einschließlich) DirectX 10 hat Microsoft beschlossen, die ganze Sache mit den „Kompatibilitätsbits“ einfach abzuschaffen und nur noch ein minimales DirectX-Level in der Karte festzulegen. Wenn Ihre Karte DX11-kompatibel ist, unterstützt siealle DX11-Funktionen. Dies erleichtert Entwicklern die Arbeit (Sie müssen nicht prüfen, ob eine Funktion verfügbar ist, bevor Sie sie verwenden) und sorgt für ein einheitlicheres Erlebnis.

Was würde jemand, der diesen Thread liest, aus konzeptioneller Sicht vorschlagen, was an Hardware-Modifikationen für den Übergang von DX10 zu DX11 erforderlich wäre? Die GPU und die Stream-Prozessoren hatten alle dieselben oder sehr ähnliche Befehlssätze.

Tatsächlich ist das nicht der Fall. Beachten Sie noch einmal, was ich oben gesagt habe - damit eine KarteHardwareDX11 kompatibel, esmuss alle DX11-Funktionen unterstützen. In der Vergangenheit wurden Änderungen zwischen DirectX-Versionenhabengeänderte Aspekte der GPU-Hardware selbst, einschließlich der Pipeline-Architektur, des Shader-Modells (und der unterstützten Sprachen/Shader), der Gleitkommapräzision und der Befehlssatzerweiterungen.

Währendnicht alle diesewurden beim Übergang von DX10 zu DX11 geändert, es gibt zusätzliche Funktionen, die sowohl auf der Hardware- als auch auf der Softwareseite implementiert wurden (die meisten dieser Änderungen sind Closed Source, daher kann ich mich nicht zu spezifischen Änderungen äußern).

Davon abgesehen,dürfenDirectX 11-Software mit DirectX 9/10-Hardware ausführen, allerdings ohne die Ergänzungen zu DirectX 11 (nämlich Tessellation, Multithread-Rendering und Compute Shader) und vorausgesetzt, der Entwickler hat die Anwendung richtig implementiert. Ich sehe das nichtimmerein Problem darstellt, da die Implementierung buchstäblich nichts kostet – weshalb ich die Sache mit den „Kompatibilitätsbits“ zuvor erwähnt habe.

Wenn Sie die neuen Funktionen der neuesten und besten DX-Ebene hinzufügen möchten, fragen Sie die Hardware ab, um zu sehen, ob sie die neueste DX-Ebene unterstützt. Wenn ja, aktivieren Sie sie, andernfalls greifen Sie auf die nächste DX-Ebene zurück (anstatt die Verfügbarkeit bestimmter Hardwarefunktionen zu prüfen). Aus diesem Grund können mit den Direct3D 11-Bibliotheken kompilierte Anwendungen auf Direct3D 9/10-kompatibler Hardware ausgeführt werden.

Antwort3

„Die Firmware aktualisieren“ ist nicht die Lösung für jedes Problem. Die DirectX-Anforderungen für jede Version umfassen sowohl Hardware- als auch Firmware-Lösungen.

Antwort4

Das liegt daran, dass die GPU bei der Herstellung einer Grafikkarte nur für den Betrieb innerhalb des DirectX-Standards ausgelegt ist, für den sie zertifiziert ist. Normalerweise ist DirectX abwärtskompatibel mit früheren Versionen, sodass lediglich hier und da die Präzision für einige mathematische Berechnungen erhöht werden muss. Mit neuen DX-Versionen werden jedoch manchmal auch neue Funktionen eingeführt (wie DX11, das Tessellation hinzugefügt hat), die neue Hardwareunterstützung erfordern. Die eigentlichen internen Komponenten einer Grafikkarte sind nicht programmierbar (abgesehen von den Shadern, die wiederum in der DX-Spezifikation angegeben sind). Firmware ist eine Art von Software, die sich auf einem internen Speicher befindet, den ein Allzweck-Logikchip ausführen würde. Die Stärke einer GPU besteht darin, dass sie eigentlich nicht speziell für allgemeine Zwecke, sondern für die sehr effiziente Ausführung bestimmter Aufgaben entwickelt wurde. Diese spezifischen Aufgaben sind genau die Aufgaben, die in der DX-Spezifikation beschrieben sind. Wenn also eine neue DX-Version herauskommt, müssen neue Hardware-Updates vorgenommen werden, die eine neue GPU erfordern. Ja, Kartenhersteller können schnelleren Speicher und dergleichen hinzufügen, aber sobald die GPU hergestellt ist, kann die Logik darin nicht mehr geändert werden.

verwandte Informationen