Archiv verlassen und diese Seite im Standarddesign anzeigen : Was bedeutet "DirectX 12 in Software"?
Venom_INC
2015-12-08, 07:15:26
Hi, habe eine Frage interssehalber über Grafikkarten Technologie.
Wird Directx 12 in Software auf dem GPU oder CPU ausgeführt? Man kann ja auch den shader mit bestimmter shader software programmieren könnte das so was sein? Hoffe jemand kann das beantworten.
Habe übrigens eine Grafikkarte mit Tahiti Gpu. Hat bekanntlich Directx 12 in software. Daher das interesse.
seba86
2015-12-08, 08:53:12
"in Software" = zu mind. 95% auf CPU
"in Hardware" = zu mind. 95% auf GPU
Leonidas
2015-12-08, 09:58:25
Trifft auf diesen Fall nicht zu.
"DirectX 12 in Software" bedeutet, daß man die Hardware-unabhängigen Verbesserungen von DirectX 12 nutzen kann. Kein einziges der Hardware-Features von DirectX 12 wird deswegen aber in Software auf der CPU ausgeführt werden.
seba86
2015-12-08, 11:45:07
Danke Leo, hast natürlich Recht.
Venom_INC
2015-12-11, 08:21:59
Hi,
Welche diectx12 funktionen werden vom software renderpfad denn nicht unterstützt? Was ich noch wissen wollte, wo eigentlich die fehlenden schaltkreise emuliert werden? Auf derm cpu oder als shaderprogramme auf der gpu? Das war übrigens meine ursprüngliche frage.
Novum
2015-12-11, 08:32:27
Es wird gar nichts emuliert. DirectX 12 ist einfach eine effizientere Anbindung an GPUs - auch mit altem Featureset.
und deswegen ist "DX 12 in Software" afaik einfach Quatsch und eine ungerechtfertigte Abqualifizierung
Leonidas
2015-12-12, 09:28:42
Bin offen für bessere Formulierungen. Allerdings drückt es "DX12 FL_11" auch nur höchst technisch aus.
Locuza
2015-12-12, 16:52:38
Bin offen für bessere Formulierungen. Allerdings drückt es "DX12 FL_11" auch nur höchst technisch aus.
DX12 FL_11.x drückt es wenigstens zu einem gewissen Grad korrekt aus.
"DX12 in Software" ist eine verwirrende Formulierung.
Wenn ein Entwickler für sein Spiel DX12 FL11.0 verwendet, dann macht es natürlich keinen Unterschied, ob jetzt GCN1, Maxwell oder Skylake verwendet wird.
Die Anwendung wird unter jeder GPU gleich berechnet.
Bei einigen GPUs fehlen nur wenige Features bis zum nächsten FL, die Entwickler können aber nicht nur einzelne FLs abfragen, sondern auch einige Features selber.
Es ist insofern möglich mit FL11.0 TR1 zu verwenden oder ROVs oder alles was FL12.0 anbietet, außer ein paar Sachen, die eben nicht benötigt oder unterstützt werden von gewissen GPUs, wie z.B. TR2.
Dann hat man unter GCN1 alle Features zur Hand, die man auch unter FL12.0 hat, bloß eben ohne TR2.
Es gibt in dem Fall keine harte Abgrenzung zwischen FL11 und FL12 bzw. "DX12 in Software/Hardware".
Doof wird es nur, wenn die Entwickler das Feature-Level selber abfragen, dann sind die GPUs die es nicht unterstützen logischerweise draußen.
Aber dann schreibt man auch lieber DX12 FL12.x und nicht DX12 in Hardware.
Es macht einem auf den ersten Blick gar nicht klar, was DX12 in Software oder DX12 in Hardware bedeuten soll und es gibt zwischen beiden noch eine kleine Abstufung.
Eine andere "Baustelle" ist DX11.2a und DX11.2b.
1. Inoffizielle Bezeichnung
2. Auch nicht korrekt
Wie bei DX12 gibt es unter DX11.2 unterschiedliche Feature-Levels FL11.0 und FL11.1.
Zusätzlich gibt es optionale Features, die GPUs eben unterstützen können oder nicht.
DX12 FL12.1 schließt auch nicht alle optionalen Features mit ein.
Skylake z.B. unterstützt alle optionalen Features von DX12.
Sollen wir jetzt bei Skylake DX12.1 b) schreiben, weil er im Gegensatz zu Maxwell v2. nicht nur FL12.1 unterstützt, sondern auch alle Optionalen?
Halt, Maxwell v2 unterstützt noch TR3, dass ist auch optional.
Also Maxwell v2 DX12.1 b) und Skylake 12.1 c) und das a) steht dann einfach nur für FL12.1 ohne optionale Features?
Und wie bei DX11.x davor, trennen wir überhaupt nicht zwischen der API-Nomenklatur und den enthaltenen Feature-Levels, mixen alles grob zusammen und dann viel Spaß beim Verstehen.
Man kann es gar nicht direkt und ersichtlich für den Leser ausdrücken, ohne wenigstens etwas erklärende Sätze einzufügen.
Was man aber immerhin machen kann, ist sich an die offiziellen Bezeichnungen zu halten und kein Kauderwelsch parallel zu erfinden, der dem Verständnis nicht hilft und die Thematik nur noch mehr aufsplittet.
Ich bin dafür nach den offiziellen Feature-Levels zu trennen, damit bleibt man offiziell und korrekt auf FL-Ebene.
Die optionalen Dinge werden entweder per Textform etwas aufgelöst oder eben gar nicht erst betrachtet.
Geschenkt, um nicht noch mehr für Verwirrung zu sorgen.
Venom_INC
2015-12-13, 08:40:05
Hi,
Mit tr2 und 3 meint ihr sicher die tiers oder? Nach meinen infos unterstützen GCN1 gpus auch tier 3 also auch mein tahiti. Wass bedeutet das? Was sind eigentlich tiers? Kann mir das jemand brühwarm erklären? Bitte keine links. Ich hatte schonmal gefragt, da gab mir einer einen link zu microsoft über tier. Habe ich trotzdem nicht verstanden.
Troyan
2015-12-13, 13:24:45
Tiers sind Abstufungen des Hardwarekapazitäten von "Funktion", die die API spezifiert.
GCN unterstützt daher nicht "Tier 3", sondern es unterstützt das "Ressource Binding Model" in Form von Tier 3.
Locuza
2015-12-13, 13:46:34
Und es gibt viele Features mit Tiers und viele ohne.
Resource Binding Tier 1-3 (RB 1-3)
Tiled Resources Tier 1-3 (TR1-3)
Conservative Rasterization Tier 1-3 (CR1-3)
Resource Heap Tier 1-2 (RH1-2)
ROVs unterstützt man oder eben nicht usw.
Leonidas
2015-12-13, 16:46:26
... womit das Tier-Level nur eine Teilmenge der Gesamtsumme darstellt und daher kaum eine echte Betrachtung verdient. IMO werden sich die Spieleentwickler an FL12_0 und FL_12_1 halten. Extrawürste wegen verschiedener Tier-Level lohnen kaum.
Locuza
2015-12-13, 17:05:26
Sie werden sich zuerst an FL11_0 halten und falls nötig doch Extra-Würste machen.
Ohne FL11_x ist GCN1, Haswell/Broadwell und Kepler bis Maxwell v1 draußen.
Ashes of the Singularity verwendet FL11_0 und fragt zusätzlich das Resource-Binding-Tier ab.
Sie werden sich zuerst an FL11_0 halten und falls nötig doch Extra-Würste machen.
Ohne FL11_x ist GCN1, Haswell/Broadwell und Kepler bis Maxwell v1 draußen.
...
Denke ich mal auch, wäre logisch.
Bin offen für bessere Formulierungen. Allerdings drückt es "DX12 FL_11" auch nur höchst technisch aus.
Trotzdem würde ich die offiziellen Bezeichnungen nehmen, so bleibt man absolut korrekt. Ganz klar kann bspw die erste GCN-Generation von DX12 profitieren.
Daß das ganze für Nichtexperten ziemlich verworren ist, kann man nicht so einfach auflösen aber fügt mit "DX 12 in Software" nur weitere Verwirrung hinzu. Viele Leser werden denken, daß DX12 von diesen Karten gar nicht unterstützt wird und irgendwie emuliert werden muß.
-/\-CruNcher-/\-
2015-12-13, 18:53:12
... womit das Tier-Level nur eine Teilmenge der Gesamtsumme darstellt und daher kaum eine echte Betrachtung verdient. IMO werden sich die Spieleentwickler an FL12_0 und FL_12_1 halten. Extrawürste wegen verschiedener Tier-Level lohnen kaum.
Das sieht Nvidia bei GameWorks aber ganz anders ;)
seba86
2015-12-16, 21:58:14
Ashes of the Singularity verwendet FL11_0 und fragt zusätzlich das Resource-Binding-Tier ab.
Kann man sowas selbst ermitteln / analysieren oder ist man auf die Plausibilität externer Informationen angewiesen? Kann man überhaupt zu einer Engine/dem Spiel den gerade verwendeten DirectX-Pfad ermitteln (von 7 über 9.0a-c, 10,10.1,11 usw.)??
Novum
2015-12-16, 22:51:08
Technisch moeglich ist es, ja. Aber ein Tool, dass es einfach ausgibt kenne ich nicht.
Venom_INC
2015-12-18, 08:32:37
Hi nochmal,
Habe folgende frage: welches shadermodel hat directx 12 eigentlich? Ist es nach wie vor 5.0 oder schon sm 6? Und was sind die neuen funktionen von directx 12? Warum wird eigentlich zwischen software und hardware unterschieden, wenn beides sowieso auf das selbe hinausläuft, nämlich, dass die gpus nicht mit directx 12 kompatibel sind?
Locuza
2015-12-18, 11:06:08
1.) Shader-Model 5.1.
Dabei hat es wie der Name schon andeutet, insgesamt nur kleine Anpassungen gegeben.
https://msdn.microsoft.com/en-us/library/windows/desktop/dn933277%28v=vs.85%29.aspx
2.) Sehr viel.
Das Speichermanagement wird jetzt explizit vom Entwickler verwaltet, unter DX11 läuft vieles implizit durch den Treiber.
Befehle an die GPU können nur von mehreren CPU-Kernen in Command-Buffers gefüllt werden, die Multi-Core-Skalierung verbessert sich teils dramatisch.
Allgemein ist eines der größten Highlights von DX12 das neue Resourcen/Speicher-Modell und die Overhead-Reduktion und Multi-Core-Skalierung der CPU.
Dennoch gibt es auch neue Rendering-Features, für welche man teils auch neue Hardware braucht.
- Rasterizer Ordered Views
- Conservative Rasterization
- Tiled Resources Tier 3
- und noch einige Sachen mehr
Zusätzlich gibt es noch ExecuteIndirect, Async Compute und noch mehr.
Generell kann man ja Googel bemühen, aber wer es ausführlicher mag und eine eine einfache Erklärung mit Halb,Viertel oder Achtelwissen haben möchte, einfach Hand strecken.
3.) Das macht gerade nur der News-Bereich vom 3DCenter.
Eine klare Definition steht nicht.
Es läuft nicht darauf hinaus, dass die GPUs nicht mit DX12 kompatibel sind.
Die meisten DX11 GPUs sind mit DX12 kompatibel und supporten die neue API mit vielen Verbesserungen
Aber eben nicht unbedingt alle Verbesserungen.
DX12 support bedeutet nicht 100% vom Standard zu erfüllen, sondern "nur" die Kernfunktionalität.
Kartenlehrling
2015-12-18, 11:18:50
Wie sieht es eigentlich mit der gtx480 DX12 Unterstützung?
Haben nun alle Fermi Chips das DX12 Siegel?
Ich meine in einer Quadro-Serie Treibernote eine abfuhr gelesen zu haben.
Locuza
2015-12-18, 11:23:59
Das ist glaube ich immer noch der aktuelle Status:
Which NVIDIA GPUs will support DX12?
NVIDIA will support the DX12 API on all DX11-class GPUs it has shipped; these belong to the Fermi, Kepler and Maxwell architectural families. At launch, DirectX 12 is supported by all Maxwell and Kepler GPUs. Fermi will receive DX12 support later this year (expected around the first wave of DX12 content).
http://nvidia.custhelp.com/app/answers/detail/a_id/3711/~/which-nvidia-gpus-will-support-dx12%3F
Falls Nvidia das noch durchzieht, bekommt auch die Fermi-Reihe das DX12-Siegel.
In dem Fall DX12 mit FL11.0 Support.
Venom_INC
2015-12-27, 08:32:25
Hi,
ich würde folgendes gerne noch wissen. Bringen die neuen verbesserungen auch neue bildverbesserungs funktionen und neue spezialeffekte mit oder dienen die neuen erweiterungen nur der höheren geschwindigkeit?
Locuza
2015-12-29, 07:13:16
Beides.
Die Antwort wird aber natürlich nicht für jeden Fall eindeutig sein.
Theoretisch kann man natürlich auch schon jetzt viele Effekte realisieren, welche man praktisch aber nicht umsetzt, weil es zu große Einschränkungen gibt, sei es Performance oder Programmierbarkeit.
Neue Hardware erschließt dann theoretisch nicht unbedingt neue Effekte, praktisch aber schon möglich, wenn man davor wegen den Einschränkungen darauf verzichtet hat.
Entsprechend ist "neue Effekte" keine eindeutige Definition, aber wenn man es relaxed definieren möchte, dann sind Features wie Conservative Rasterization, ROVs und Tiled Resources Tier 3 neues Spielzeug für Eye-Candy, neben weiteren Dingen.
Hilfreich bei Voxel-Berechnungen, für Flüssigkeiten, sei es Wasser, Rauch/Dampf-Simulation, für das Rendering von Gras, Haaren, Transparenzen.
Material zu Anwendungsfällen von Conservative Rasterization und Tiled Resources Tier 3 findet man bei Nvidia eine Menge.
http://www.pcgameshardware.de/DirectX-12-Software-255525/News/Nvidia-Techdemo-Mecha-Hybrid-Raytracing-Sparse-Fluid-1161311/
https://developer.nvidia.com/content/dont-be-conservative-conservative-rasterization
Intel hat eine große Präsentation zu den ROVs gehalten.
http://www.benicourt.com/blender/wp-content/uploads/2015/03/OIT-to-Volumetric-Shadow-Mapping.pdf
Vielleicht sollte man hier noch anmerken, dass die Features in unterschiedlichen Stufen abgefragt werden können und neben der Abstufung könnte auch die Hardware Implementierung unterschiedlich gut oder schlecht sein, ähnlich wie bei Tessellation.
Wenn Vendor A sagt, Feature X ist 3 mal schneller, gilt das vielleicht nur für seine Hardware.
seba86
2016-01-01, 23:57:51
Technisch moeglich ist es, ja. Aber ein Tool, dass es einfach ausgibt kenne ich nicht.
Etwas spät, aber ich habe eine Möglichkeit gefunden: After-Burner bzw. dessen Riva-Tuner zeigt bei den FPS automatisch die verwendete API samt Version an :)
Leonidas
2016-01-02, 04:48:55
Ich hab bei der letzten entsprechenden News:
http://www.3dcenter.org/news/amd-liefert-die-radeon-r7-360e-japan-aus
dann das ganze doch als "DirectX 12 Feature-Level 12_0" beschrieben. Zumindest wenn ich Platz habe, werde ich in Zukunft diese Langform benutzen. Im Text kann euch das "DX12 in Software" aber immer noch einmal begegnen, das ist dann schreiberische Freiheit oder so ;)
Locuza
2016-01-02, 11:17:22
:eek:
God is real. ;D
Ich hoffe die Kurzform in einer Tabelle ist dann aber nicht DX12 in Software, sondern DX12 FL11.x.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.