PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nvidia reagiert auf negative Berichte mit Informationsoffensive


Mark3Dfx
2003-10-24, 17:56:05
http://www.heise.de/newsticker/data/anw-24.10.03-004/

"Man räumt aber ein, dass die Architektur der neueren FX-Chips erheblich schwieriger zu programmieren sei. Um alle Recheneinheiten ständig auszulasten, müssen die Shaderprogramme in einem bestimmten Rhythmus abwechselnd Texturzugriffe und Rechenkommandos enthalten. Sobald der Rhythmus verlassen wird, kommt die Pipeline aus dem Tritt und der Shader-Durchsatz bricht auf die Hälfte oder noch weniger ein. Dazu trägt auch bei, dass die FX-Chips über weniger temporäre Register verfügen und man ständig zwischen Operationen mit 16 und 32-Bit-Genauigkeit entscheiden müsse (mixed mode). Die Restriktionen behindern natürlich die Shader-Programmierer erheblich und kosten Entwicklungszeit. Die Optimierungs-Regeln für die Radeon-Chips sind weniger einschränkend, sodass ein beliebiger Shader auf einer Radeon-Karte meist schneller arbeitet als auf einer GeForce-FX-Karte. Gearbox, die die PC-Portierung des X-Box-Spiels Halo durchführten, waren Nvidia daher sehr verbunden, weil Nvidia-Entwickler sämtliche DirectX-9-Shader für den FX-Pfad geschrieben haben"

ow
2003-10-24, 18:12:25
Original geschrieben von Mark3Dfx
http://www.heise.de/newsticker/data/anw-24.10.03-004/

"Man räumt aber ein, dass die Architektur der neueren FX-Chips erheblich schwieriger zu programmieren sei. Um alle Recheneinheiten ständig auszulasten, müssen die Shaderprogramme in einem bestimmten Rhythmus abwechselnd Texturzugriffe und Rechenkommandos enthalten. Sobald der Rhythmus verlassen wird, kommt die Pipeline aus dem Tritt und der Shader-Durchsatz bricht auf die Hälfte oder noch weniger ein. Dazu trägt auch bei, dass die FX-Chips über weniger temporäre Register verfügen und man ständig zwischen Operationen mit 16 und 32-Bit-Genauigkeit entscheiden müsse (mixed mode). Die Restriktionen behindern natürlich die Shader-Programmierer erheblich und kosten Entwicklungszeit. Die Optimierungs-Regeln für die Radeon-Chips sind weniger einschränkend, sodass ein beliebiger Shader auf einer Radeon-Karte meist schneller arbeitet als auf einer GeForce-FX-Karte. Gearbox, die die PC-Portierung des X-Box-Spiels Halo durchführten, waren Nvidia daher sehr verbunden, weil Nvidia-Entwickler sämtliche DirectX-9-Shader für den FX-Pfad geschrieben haben"


Das mit dem Entwicklungsaufwand ist doch Quark:)

Die Optimierung auf die Chips macht der Shader-Compiler. Aufwand gleich Null.

Für FP16 Präzision braucht´s in der Hochsprachen-Source ein paar 'Kommentare' (sinnbildlich: "hier ist FP16 erlaubt").

Aufwand = wenige Minuten bis Stunden.

Demirug
2003-10-24, 18:35:01
Original geschrieben von ow
Für FP16 Präzision braucht´s in der Hochsprachen-Source ein paar 'Kommentare' (sinnbildlich: "hier ist FP16 erlaubt").

Es gibt extra einen Datentyp (half) dafür.

Gast
2003-10-24, 18:36:48
Original geschrieben von ow
Das mit dem Entwicklungsaufwand ist doch Quark:)

Die Optimierung auf die Chips macht der Shader-Compiler. Aufwand gleich Null.

Für FP16 Präzision braucht´s in der Hochsprachen-Source ein paar 'Kommentare' (sinnbildlich: "hier ist FP16 erlaubt").

Aufwand = wenige Minuten bis Stunden.

Was willst du damit sagen. NVidia's erste Entwicklergarde quarkt daher?! Du kommentierst nicht Heise sondern, NVidia's Götter auf ihren Gebieten. Ausgesprochen mutig!!!

Mr. Lolman
2003-10-24, 18:43:33
andererseits find ichs auch lustig, dass sich die ATis bei Halo so gut schlagen, trotz dessen, das die DX9 Shader von NV kommen.

ow
2003-10-24, 18:44:36
Original geschrieben von Demirug
Es gibt extra einen Datentyp (half) dafür.

Oder so.:D

ow
2003-10-24, 18:45:40
Original geschrieben von Mr. Lolman
andererseits find ichs auch lustig, dass sich die ATis bei Halo so gut schlagen, trotz dessen, das die DX9 Shader von NV kommen.

??? Kannst du das mal erklären?

reunion
2003-10-24, 19:07:28
Original geschrieben von ow
??? Kannst du das mal erklären?

"Gearbox, die die PC-Portierung des X-Box-Spiels Halo durchführten, waren Nvidia daher sehr verbunden, weil Nvidia-Entwickler sämtliche DirectX-9-Shader für den FX-Pfad geschrieben haben"

Quelle: Nvidia!

seahawk
2003-10-24, 19:10:54
Original geschrieben von reunion
"Gearbox, die die PC-Portierung des X-Box-Spiels Halo durchführten, waren Nvidia daher sehr verbunden, weil Nvidia-Entwickler sämtliche DirectX-9-Shader für den FX-Pfad geschrieben haben"

Quelle: Nvidia!

Und die ATI Karten nutzen auch den FX-Pfad :banghead: :abgel:

KM
2003-10-24, 19:15:00
Original geschrieben von Gast
Was willst du damit sagen. NVidia's erste Entwicklergarde quarkt daher?! Du kommentierst nicht Heise sondern, NVidia's Götter auf ihren Gebieten. Ausgesprochen mutig!!!
Götter sind da, um gestürzt zu werden. :D
Außerdem ist es eher die PR-Abteilung als die Entwicklergarde.

Demirug
2003-10-24, 19:23:18
Original geschrieben von Gast
Was willst du damit sagen. NVidia's erste Entwicklergarde quarkt daher?! Du kommentierst nicht Heise sondern, NVidia's Götter auf ihren Gebieten. Ausgesprochen mutig!!!

ow, hat hier in gewisser Weisse doch Heise kommentiert. Er kommentiert das was Heise aus den Aussagen die der Reporter auf dem Event gehört hat gemacht hat.

Ich habe inzwischen mehr als einen Bericht zu diesem Event gesehen und alle haben Unterschiede darin wie die Aussagen interpretiert und gewichtet wurden. Zudem spielt auch die Erfahrung und Vorkenntnisse des entsprechenden Reporters eine grosse Rolle.

LovesuckZ
2003-10-24, 22:08:11
Original geschrieben von seahawk
Und die ATI Karten nutzen auch den FX-Pfad :banghead: :abgel:

Wenn es wirklich einen extra Nvidia Pfad gaebe, dann sind die Performancespruenge mit dem 52.16 erklaerbar.

deekey777
2003-10-24, 22:12:46
Um heise/c't zu kritisieren, muss man schon etwas mehr drauf haben, als irgendwas xxx zu posten...
Zum Thema selbst: Es ist also kein zusätzlicher Aufwand, sich mit Spieleherstellern zusammenzusetzen und einen für FX-Serie extra angepassten Pixelshadercode zu programmieren. Klar. THG, heise/c't/zdnet beschrieben in etwa gleicher Weise das kleine nVidia-Problemchen: nVidia und Spieleherstaller setzen sich extra zusammen hin, schauen sich das Spiel an und entscheiden "gemeinsam", ob die DX9-Konforme FP32 (volle Genauigkeit bei der Pixelberechnung) sein muss oder schon die FP16 (nicht DX9-Konform) schon ausreichend ist. Vorteil: Dieser Mixed Mode bringt Leistung ohne zu starke Kompromisse bei der Bilddarstellung. Nachteil: Es ist möglich, dass der an das Spiel angepasste Treiber nach dem Spiel kommt. Eins ist klar: Mixed Mode ist keine Lösung! FP32 only sieht besser aus! Einziger logischer Ausweg: entweder nur FP24 oder nur FP32 für alle!

Zu ATi's Lösung: clever und die Pixelqualität soll der FP32-Genauigkeit ebenbürtig sein (wie???), hier wird irgendwie irgendwas aufgerundet, darum kann man hier auch von 128bit-Genauigkeit sprechen wie bei der FX-Serie.

LovesuckZ
2003-10-24, 22:16:23
deekeey,

aehm, du scheinst da irgendwas durcheinander zu bringen. Liest sich aber sehr lustig!

deekey777
2003-10-24, 22:21:10
Original geschrieben von LovesuckZ
deekeey,

aehm, du scheinst da irgendwas durcheinander zu bringen. Liest sich aber sehr lustig!

Es ging um den Entwicklungsaufwand oder? Das ist doch easy, anstelle Standart-PS2.0-Pfad zu benutzen, einen extra für FX-Sub-DX9-Serie zu schreiben!

LovesuckZ
2003-10-24, 22:24:42
Original geschrieben von deekey777
Es ging um den Entwicklungsaufwand oder?

Nein, das was drin steht.

die FP16 (nicht DX9-Konform)[...]

Mixed Mode ist keine Lösung!

FP32 only sieht besser aus!

Vorteil: Dieser Mixed Mode bringt Leistung ohne zu starke Kompromisse bei der Bilddarstellung.

usw.

ow
2003-10-24, 22:28:02
Original geschrieben von deekey777
Es ging um den Entwicklungsaufwand oder? Das ist doch easy, anstelle Standart-PS2.0-Pfad zu benutzen, einen extra für FX-Sub-DX9-Serie zu schreiben!

Lies nochmal das zweite Posting in diesem Thread!

Demirug
2003-10-24, 22:36:42
Ich habe eben ehrlich langsam bis 10 gezählt.

FP16 ist und bleibt DX9 konform solange die Entwickler im Shader die entsprechende Hinweise im Code haben. Auch der Spruch das FP24 oder FP32 zwangsläufig besser als FP16 aussehen muss ist mathematisch absolut nicht haltbar. Das Rohmaterial für Berechnungen liegt nach wie vor zum grössten Teil als 32Bit-RGBA vor.

Der Aufwand für die Entwickler ist wirklich gering wenn man weiss wie man ATI und nVidia gegeneinader ausspielt. Man schreibt sich seinen Shader und schickt in dann mit dem Kommentar "läuft schlecht" zu ATI und nVidia und bekommt von beiden eine optimierte Variante zurück. Arbeitsaufwand 2 emails.

Die nVidia Jungs haben inzwischen einen guten Blick dafür zu erkennen an welchen Teilen eines Shaders man ohne Probleme eine niedrigere Genauigkeit nutzten kann ohne das Ergebniss zu verfälschen und wo man unbedingt auf der vollen Genauigkeit bleiben muss. Glücklicherweise kann man das ja selektiv innerhalb eines Shaders bestimmen und muss sich nicht für einen ganzen Shader oder gar global entscheiden.

Was nun die Geschichte mit es gibt einen "standard" DX9 Pfad und einen FX-Pfad angeht so müssen wir abwarten wie gut sich die Chips von S3 und XGI mit diesem "standard" Pfad schlagen werden oder ebenfalls von speziellen Optimierungen profitieren können.

deekey777
2003-10-24, 22:40:52
Das waren nur ein Paar gedanken, die mir/John Carmak/VALVe/Microsoft... eingefallen sind.

DX9-Konform: mindestens FP24, wie von Microsoft verlangt
FP32: jeder Pixel wird am genauesten berechnet, daher keine Abweichungen
Mixed Mode: John C. (Doom III-Guru) sagte dies, nachdem VALVe mit der Veröffentlichung der HL2-Benchmarkergebnisse die Welt schockte. Jetzt wird das noch gehen, aber es kommen bessere Spiele, die zB nur FP32 verlangen/beherrschen, und die Entwickler wären doch angepisst, wenn irgendjemand (nicht unbedingt nVidia) per Treiber oder sonst wie die FP-Genaigkeit herunterschraubt. Bei ATi's DX9-Karten ist die FP32-Genauigkeit kein Problem, da einfach aufgerundet wird. Wer weiss, vielleicht, wird die NV40-Serie auch nur FP24 beherrschen (gleiche Waffen, warum nicht?).
Mixed Mode+keine zu starke Kompromisse: Wenn ein PS 2.0-Effekt mit FP16 genauso gut aussieht wie mit FP32, warum dann nicht FP16 benutzen? Das ist aber die Denkweise eines Herstellers aus Kalifornien. Das wird eine Zeit lang gut gehen, aber: Vielleicht wird irgendwann die Bildquali (nicht nur AF&AA, sondern zB auch schöne Schatteneffekte auf einer Tasse, wo man keine Übergänge sieht), die man nur mit einer hohen FP-Genauigkeit berechnen kann, ausschlaggeben (wie jetzt Silent-PC oder Modding für alle oder... was gerade in ist und eine Kaufargument ist).

deekey777
2003-10-24, 22:44:37
Extrapost: http://www.gamersdepot.com/hardware/video_cards/nvidia/nv38_36/004.htm
"X2 is an upcoming game that relies quite heavily on DX9 shaders, and quite obviously supports NVIDIA's shader path of using both 32 and 16-bit precision."

http://www.tomshardware.de/graphic/20031023/nvidia-nv38-nv36-33.html
"X2 Rolling Demo
Dieses Demo, das über einen Benchmark-Modus verfügt, gibt einen Eindruck über Egosofts kommendes Spiel X2 - The Threat. Obwohl das Spiel kein Pixel-Shader einsetzt, ist die gebotene Grafik sehr beeindruckend"

???

LovesuckZ
2003-10-24, 22:49:37
Original geschrieben von deekey777
Mixed Mode+keine zu starke Kompromisse: Wenn ein PS 2.0-Effekt mit FP16 genauso gut aussieht wie mit FP32, warum dann nicht FP16 benutzen? Das ist aber die Denkweise eines Herstellers aus Kalifornien. Das wird eine Zeit lang gut gehen, aber: Vielleicht wird irgendwann die Bildquali (nicht nur AF&AA, sondern zB auch schöne Schatteneffekte auf einer Tasse, wo man keine Übergänge sieht), die man nur mit einer hohen FP-Genauigkeit berechnen kann, ausschlaggeben (wie jetzt Silent-PC oder Modding für alle oder... was gerade in ist und eine Kaufargument ist).

Ich, aehm, verstehe diesen Absatz nicht.
Wenn FP16 für eine Anweisung reicht, bringt FP32 keine Vorteile. Was soll sich aber an dieser Anweisung in der Zukunft aendern?
Wie gesagt, ich verstehe es nicht...

KM
2003-10-24, 23:03:14
Original geschrieben von Demirug
Ich habe eben ehrlich langsam bis 10 gezählt.
Ganz ruhig ein und ausatmen. ;)
Der Aufwand für die Entwickler ist wirklich gering wenn man weiss wie man ATI und nVidia gegeneinader ausspielt. Man schreibt sich seinen Shader und schickt in dann mit dem Kommentar "läuft schlecht" zu ATI und nVidia und bekommt von beiden eine optimierte Variante zurück. Arbeitsaufwand 2 emails.

Die nVidia Jungs haben inzwischen einen guten Blick dafür zu erkennen an welchen Teilen eines Shaders man ohne Probleme eine niedrigere Genauigkeit nutzten kann ohne das Ergebniss zu verfälschen und wo man unbedingt auf der vollen Genauigkeit bleiben muss. Glücklicherweise kann man das ja selektiv innerhalb eines Shaders bestimmen und muss sich nicht für einen ganzen Shader oder gar global entscheiden.

Was nun die Geschichte mit es gibt einen "standard" DX9 Pfad und einen FX-Pfad angeht so müssen wir abwarten wie gut sich die Chips von S3 und XGI mit diesem "standard" Pfad schlagen werden oder ebenfalls von speziellen Optimierungen profitieren können.
Das war doch früher doch nicht anders. Ich kann mich erinnern, als damals 3DFX seine Voodoos jedesmal rausbrachte, wurden die Entwickler von 3DFX ... geholfen, ihren Code zu optimieren. Und die Ergebnisse hatten mal die User entzückt. Nichts anderes ist jetzt mit NVidia und ATI, außer bei einigen "Exclusive"-Spielen.

Original geschrieben von LovesuckZ
Ich, aehm, verstehe diesen Absatz nicht.
Wenn FP16 für eine Anweisung reicht, bringt FP32 keine Vorteile. Was soll sich aber an dieser Anweisung in der Zukunft aendern?
Wie gesagt, ich verstehe es nicht...
Situationsabhängig, wenn FP16 ausreicht, warum nicht?

Demirug
2003-10-24, 23:18:53
deekey777, das kleinste zulässige DX9 Format ist FP16. FP24 ist das default datenformat für shader. Ein Shader welcher nur mit FP16 rechnet ist voll DX9 konform wenn der Programmier dies erlaubt. Ein nicht konformer Shader könnte man gar nicht durch die Runtime bekommen.

Was soll das eigentlich mit ATI hat kein Problem mit FP32? Die haben da ein grosses Problem. Sie können es einfach nicht.

KM
2003-10-24, 23:28:14
Original geschrieben von Demirug
Was soll das eigentlich mit ATI hat kein Problem mit FP32? Die haben da ein grosses Problem. Sie können es einfach nicht.
Ich weiss, das die ATI-Chips intern nur 24bit können. Könnte es nicht sein, dass aus Vorsorge entweder in den Chips oder im Treiber eine 32->24bit "Konvertierung" erfolgt aber noch nicht aktiviert ist?

LovesuckZ
2003-10-24, 23:33:29
Original geschrieben von KM
Ich weiss, das die ATI-Chips intern nur 24bit können. Könnte es nicht sein, dass aus Vorsorge entweder in den Chips oder im Treiber eine 32->24bit "Konvertierung" erfolgt aber noch nicht aktiviert ist?

Wie soll das gehen? Dazu muesste man FP32 unterstuetzen und dann waere dieser Weg überaus unlogisch.

Demirug
2003-10-24, 23:38:52
Original geschrieben von KM
Ich weiss, das die ATI-Chips intern nur 24bit können. Könnte es nicht sein, dass aus Vorsorge entweder in den Chips oder im Treiber eine 32->24bit "Konvertierung" erfolgt aber noch nicht aktiviert ist?

Es gibt natürlich eine "Konvertierung" von 32 auf 24 Bit im Treiber. Die API bekommt ja zum Beispiel alle Fliesspunktwerte mit FP32 übergeben. Bevor der Chip diese Daten verarbeiten kann müssen sie auf 24 Bit gestutzt werden. Dafür schneidet man einfach die zusätzlichen Bits ab.

Im Chip selbst gibt es auch nochmal eine "Konvertierung" wenn die Daten in ein FP32 Rendertarget gespeichert werden sollen oder aus einer FP32 Texture ausgelesen werden. Im ersten Fall werden die zusätzlichen Bits einfach aufgefüllt und im zweiten wird wieder abgeschnitten. Dadurch erreicht man aber nur das die Daten im FP32 Format im Speicher liegen. Die verwertbare Genauigkeit dieser Werte ist nach wie vor aber FP24.

PCGH_Thilo
2003-10-24, 23:45:34
Original geschrieben von deekey777
Extrapost: http://www.gamersdepot.com/hardware/video_cards/nvidia/nv38_36/004.htm
"X2 is an upcoming game that relies quite heavily on DX9 shaders, and quite obviously supports NVIDIA's shader path of using both 32 and 16-bit precision."

http://www.tomshardware.de/graphic/20031023/nvidia-nv38-nv36-33.html
"X2 Rolling Demo
Dieses Demo, das über einen Benchmark-Modus verfügt, gibt einen Eindruck über Egosofts kommendes Spiel X2 - The Threat. Obwohl das Spiel kein Pixel-Shader einsetzt, ist die gebotene Grafik sehr beeindruckend"

???

da hat gamersdepot eben nicht richtig recherchiert.

PCGH_Thilo
2003-10-24, 23:49:09
Original geschrieben von deekey777
Extrapost: http://www.gamersdepot.com/hardware/video_cards/nvidia/nv38_36/004.htm
"X2 is an upcoming game that relies quite heavily on DX9 shaders, and quite obviously supports NVIDIA's shader path of using both 32 and 16-bit precision."

http://www.tomshardware.de/graphic/20031023/nvidia-nv38-nv36-33.html
"X2 Rolling Demo
Dieses Demo, das über einen Benchmark-Modus verfügt, gibt einen Eindruck über Egosofts kommendes Spiel X2 - The Threat. Obwohl das Spiel kein Pixel-Shader einsetzt, ist die gebotene Grafik sehr beeindruckend"

???

tja, da hat gamersdepot nicht richtig recherchiert.

Gast
2003-10-25, 00:04:16
Nvidia behält sich daher weiter vor, applikationsabhängige Optimierungen in die Treiber einzubauen, und hat dafür einige Richtlinien aufgestellt. Nach diesen Regeln sind Optimierungen solange erlaubt, wie sie das "korrekte" Bild erzeugen. Korrekt bedeutet dabei, dass das Bild und die damit erzielten Bildraten "das beste Spielerlebnis" vermitteln sollen, wobei Abstriche bei der Bildqualität nicht ausgeschlossen sind. Diesen müsse der Spieleentwickler aber zustimmen. Ferner müssen Optimierungen so allgemeingültig sein, dass sie nicht nur einen Benchmark beschleunigen und dürfen nicht mit vorberechneten, statischen Geometrien oder Texturen arbeiten.

Dieser Absatz ist aber der entscheidende. Ich finde es schade, daß der Marktführer und ehemals Trendsetter diesen Weg eingeschlagen hat. Danke an Spinner wie Richthofen ( http://www.forum-3dcenter.org/vbulletin/showthread.php?postid=1300511#post1300511 http://www.forum-3dcenter.org/vbulletin/showthread.php?postid=1303795#post1303795 )

LovesuckZ
2003-10-25, 00:26:32
Original geschrieben von Gast
Dieser Absatz ist aber der entscheidende. Ich finde es schade, daß der Marktführer und ehemals Trendsetter diesen Weg eingeschlagen hat. Danke an Spinner wie Richthofen

Les alles.
Aber ey, sowas kann man doch von einen gast nicht erwarten...

Gast
2003-10-25, 01:57:35
Original geschrieben von LovesuckZ
Les alles.
Aber ey, sowas kann man doch von einen gast nicht erwarten...

lol, musst du gerade sagen, ich denke, vor allem wenn man sich deinen jetztigen Status anschaut, war antworten deine Stärke ;D

Mark3Dfx
2003-10-25, 08:27:37
Log Dich erstmal ein bevor Du hier versuchst billigst zu flamen! Anderen was vorwerfen und selbst nur rumbashen als Gast Troll, sowas lieb ich!

deekey777
2003-10-25, 11:56:24
Original geschrieben von Demirug
deekey777, das kleinste zulässige DX9 Format ist FP16. FP24 ist das default datenformat für shader. Ein Shader welcher nur mit FP16 rechnet ist voll DX9 konform wenn der Programmier dies erlaubt. Ein nicht konformer Shader könnte man gar nicht durch die Runtime bekommen.

Was soll das eigentlich mit ATI hat kein Problem mit FP32? Die haben da ein grosses Problem. Sie können es einfach nicht.

Zu FP16 und DX9: "...Dabei ging es um die Präzision, mit der Berechnungen in DirectX-9-Shadern ausgeführt werden. NVIDIAs NV30 kann diese Berechnungen in verschiedenen Präzisionsstufen durchführen: 12 Bit (Integer), 16 Bit (Floating Point) und 32 Bit (Floating Point) pro Farbkanal. Bei letzterem spricht man dann von 128 Bit Präzision oder auch "Full Floating Point Precision", mit der die Produkte - sowohl von ATI als auch NVIDIA - auch beworben werden . ATIs Radeon 9700/9800 alias R300/350 rechnet dagegen immer mit 24 Bit Präzision und rundet die Ergebnisse bei der Ausgabe praktisch auf...Die entscheidende Frage dabei lautet, was Microsofts DirectX-9-Spezifikationen vorschreiben. Diese sagen aus, dass eine Karte, die "DX9 Compliant" ist, mindestens 24 Bit FP pro Kanal beherrschen muss. Es gibt aber auch eine Historie, die ursprünglich nur 16 Bit vorschrieb..." (Geht mal auf THG)
Noch fragen?

Winter[Raven]
2003-10-25, 12:16:36
Original geschrieben von deekey777
Zu FP16 und DX9: "...Dabei ging es um die Präzision, mit der Berechnungen in DirectX-9-Shadern ausgeführt werden. NVIDIAs NV30 kann diese Berechnungen in verschiedenen Präzisionsstufen durchführen: 12 Bit (Integer), 16 Bit (Floating Point) und 32 Bit (Floating Point) pro Farbkanal. Bei letzterem spricht man dann von 128 Bit Präzision oder auch "Full Floating Point Precision", mit der die Produkte - sowohl von ATI als auch NVIDIA - auch beworben werden . ATIs Radeon 9700/9800 alias R300/350 rechnet dagegen immer mit 24 Bit Präzision und rundet die Ergebnisse bei der Ausgabe praktisch auf...Die entscheidende Frage dabei lautet, was Microsofts DirectX-9-Spezifikationen vorschreiben. Diese sagen aus, dass eine Karte, die "DX9 Compliant" ist, mindestens 24 Bit FP pro Kanal beherrschen muss. Es gibt aber auch eine Historie, die ursprünglich nur 16 Bit vorschrieb..." (Geht mal auf THG)
Noch fragen?

Hehe, du weisst aber das Demirug wohl besser weiß was DX angeht, also du dir es vielleicht denkst. Den Demirug ist kein normaler USER diesen forum, sondern ein 3D Programmerier bei einer Deutschen Spielfirma und arbeitet derzeit an einer 3D Engine.

Ich denke du solltest ihm nicht erklären was die Sache ist ;)

x-dragon
2003-10-25, 12:18:20
Original geschrieben von deekey777
...(Geht mal auf THG)
Noch fragen? Ein Link wäre nicht schlecht, damit man es auch komplett lesen kann.

Die Karten berherrschen doch zumindest alle min. 24Bit FP und erfüllen damit die DirectX9-Anforderungen, das heißt aber noch lange nicht das es in allen Spielen so berechnet werden muss, das können halt immmer noch die Programmierer entscheiden. Ausserdem glaube ich (und da bin ich bestimmt nicht der einzige) das Demirug etwas mehr Ahnung in Richtung DirectX hat als THG ...

Gast
2003-10-25, 12:27:37
Hallo!

Diese diese FP16-besser/schlechter-Geschichte sollte eigentlich nicht Gegenstand dieser Diskussion sein (wenn schon dann FX12;)).

Mir zeigt diese "Enthüllung" eher auf, wie gut Demi schon damals für seinen FX-Artikel recherchiert beziehungsweise vorgedacht hat. Eigentlich gab es ja für uns nichts neues, oder?

gruss
alfons

PCGH_Thilo
2003-10-25, 13:11:17
Original geschrieben von deekey777
Zu FP16 und DX9: "...Dabei ging es um die Präzision, mit der Berechnungen in DirectX-9-Shadern ausgeführt werden. NVIDIAs NV30 kann diese Berechnungen in verschiedenen Präzisionsstufen durchführen: 12 Bit (Integer), 16 Bit (Floating Point) und 32 Bit (Floating Point) pro Farbkanal. Bei letzterem spricht man dann von 128 Bit Präzision oder auch "Full Floating Point Precision", mit der die Produkte - sowohl von ATI als auch NVIDIA - auch beworben werden . ATIs Radeon 9700/9800 alias R300/350 rechnet dagegen immer mit 24 Bit Präzision und rundet die Ergebnisse bei der Ausgabe praktisch auf...Die entscheidende Frage dabei lautet, was Microsofts DirectX-9-Spezifikationen vorschreiben. Diese sagen aus, dass eine Karte, die "DX9 Compliant" ist, mindestens 24 Bit FP pro Kanal beherrschen muss. Es gibt aber auch eine Historie, die ursprünglich nur 16 Bit vorschrieb..." (Geht mal auf THG)
Noch fragen?

willst du hier den martyrer spielen? =)
nix für ungut, aber ich denke kaum, dass deine quoterei was daran ändert, dass demi in der sache einfach mehr plan hat.

Quasar
2003-10-25, 14:11:30
Ehrlich gesagt traue ich hier der Lesefähigkeit und vor allem Sachkenntnis von Demirug ungefähr 1.02456E24 mal mehr als der von THG.

Und DX9-Shader mit INT12 zu berechnen verstößt klar gegen die Spec, die nur FP16 erlaubt.

Unter OpenGL, bei 'normalen' Operationen etc. mag dies angehen und wäre sogar begrüßenswert, wenn dadurch Leistung frei würde, die man dann in höhere Auflösungen oder FSAA/AF stecken könnte (wobei FSAA nicht viel mit den Shadern zu schaffen haben dürfte).
Wohlgemerkt, OHNE die Bildqualität zu beeinträchtigen.

1 + 1 = 2

Wozu bräuchte ich dabei ein FP-Format???


Im Gegenteil: Eine um wieviel höhere Shaderperformance würde man bei ATi-Karten erreichen, ginge man mal davon aus, sie wären intern bei gleicher Leistung wie jetzt auf das FP32-Format mit FP16-Option ausgelegt worden.

+30% wären doch toll...

KM
2003-10-25, 15:26:36
Es spricht auch nichts dagegen DX7/8-Elemente unter DX9 zu verwenden.

deekey777
2003-10-25, 16:46:22
Mag sein, dass Demirug Ahnung hat, aber das hat doch nichts damit zu tun, dass hier verwechselt wird zw. Microsoft's DX9-Anforderungen an eine DX9-Grafikkarte mit mindestens FP24 zu rechnen und den Fähigkeiten der PS 2.0 einer FX-Karte, die unterschiedliche Genauigkeiten beherrscht. Mehr nicht.

Wenn ich eine FX-Karte als Sub-DX9-Hardware bezeichne, lästere ich nur.

PS: Es ging hier darum, dass es keinen Aufwand hat, einen speziellen PS-Code für FX-Karten zu schreiben.

ow
2003-10-25, 16:52:29
Original geschrieben von deekey777
Mag sein, dass Demirug Ahnung hat, aber das hat doch nichts damit zu tun, dass hier verwechselt wird zw. Microsoft's DX9-Anforderungen an eine DX9-Grafikkarte mit mindestens FP24 zu rechnen und den Fähigkeiten der PS 2.0 einer FX-Karte, die unterschiedliche Genauigkeiten beherrscht. Mehr nicht.

Wenn ich eine FX-Karte als Sub-DX9-Hardware bezeichne, lästere ich nur.

PS: Es ging hier darum, dass es keinen Aufwand hat, einen speziellen PS-Code für FX-Karten zu schreiben.


Es stellt sich wohl die Frage, wer hier keine Ahnung hat und da was verwechselt und das bist DU.

Also informier dich besser erst einmal bevor du weiter solchen Unsinn hier postest.

nggalai
2003-10-25, 18:10:20
Hi deekey777,

nochmals, dann genug Off-Topic:

Microsoft verlangt mindestens FP24 "default". Das heisst, wenn ein Shader nicht angibt, welche Genauigkeit er haben möchte, dann muss mit mindestens 24bit Genauigkeit gerechnet werden, damit man "auf der sicheren Seite" ist. Somit wird sichergestellt, dass die Präzision ausreichend ist. Das erfüllen sowohl GFFX als auch R3xx: GFFX rechnet in dem Fall mit 32bit, Radeon mit 24bit. Weshalb verlangt Microsoft mindestens 24bit "default?" Weil die ATI-Karten nicht mehr, aber auch nicht weniger können. Ist also einerseits der "lowest common denominator" zwischen NV und ATI, andererseits die einzige Möglichkeit, dass ATI DX9-komform bleibt. Ich kann mir das Geschrei vorstellen, hätte Microsoft für default wirklich den DX9-"worst case" angenommen, und um ganz auf Nummer sicher zu machen FP32 "default" verlangt, so nachm Motto "hmm, der Shader sagt ned, wie genau er sein muss, also gehen wir mal davon aus dass er die volle Genauigkeit, die DX9 bietet, benötigen könnte, ergo FP32 = default."

Aber was heisst jetzt "default?" Einfach nur das, was ich da oben geschrieben habe. WENN ein Shader nicht sagt, welche Präzision er gerne hätte, DANN muss mit mindestens 24bit gerechnet werden. Aber: Laut der Spec sind für PS2.0 Genauigkeiten von FP16 bis FP32 zulässig, halt das, was der Entwickler meint zu brauchen. Was heisst das? Ganz einfach--WENN im Shader angegeben wird, dass man nicht volle Präzision (also FP32, für ATI nur FP24) braucht, DANN geht es vollkommen komform, FP16 zu verwenden, einfach weil das a) der Entwickler so für richtig hält und b) die Spezifikation von DX9 erfüllt. Schreibt der Shader gar nix vor, wird halt die "Standard-Genauigkeit" ("default") verlangt, i.e. mindestens 24bit.

So schwierig zu verstehn kann das doch nicht sein, oder?

93,
-Sascha.rb

Crushinator
2003-10-25, 23:44:08
Original geschrieben von Demirug
(...)
Der Aufwand für die Entwickler ist wirklich gering wenn man weiss wie man ATI und nVidia gegeneinader ausspielt. Man schreibt sich seinen Shader und schickt in dann mit dem Kommentar "läuft schlecht" zu ATI und nVidia und bekommt von beiden eine optimierte Variante zurück. Arbeitsaufwand 2 emails. (...) Dann frage ich mich, warum z.B. nicht mal die Tomb-Raider Entwickler davon Gebrauch machten. :eyes:

Razor
2003-10-26, 02:45:18
Original geschrieben von crushinator
Dann frage ich mich, warum z.B. nicht mal die Tomb-Raider Entwickler davon Gebrauch machten. :eyes: Weil der Rest auch schrott war, den sie mit TR:AoD fabrizierten...
(schließlich ist die Performance ja lange nicht mal das größte Problem ;-)

-

Zu den Shader-Zeugs ist an anderen Stellen einfach schon zu viel geschrieben worden, insofern erspare ich mir hier eine Wiederholung (da werden so einige 'erleichtert' sein ;-).

Razor

Crushinator
2003-10-26, 03:24:33
Original geschrieben von Razor
Weil der Rest auch schrott war, den sie mit TR:AoD fabrizierten... (schließlich ist die Performance ja lange nicht mal das größte Problem ;-) Komisch nur, daß nicht nur die Jungs diesen E-Mail-Service NICHT in Anspruch nehmen, und ab sofort anscheinend alle nur noch DX9-Schrott zu produzieren scheinen. ;)

Demirug
2003-10-26, 09:32:53
Original geschrieben von crushinator
Dann frage ich mich, warum z.B. nicht mal die Tomb-Raider Entwickler davon Gebrauch machten. :eyes:

Das wirst du die Leute schon selbst fragen müssen. Ich bin mit der Entwicklungsphilosophie dort nicht vertraut.

Möglicherweise ging man dort davon aus das man mit dem Einsatz von Cg genügend getan hat. Was da im Hintergrund genau gelaufen ist und gedacht wurde werden wir wohl nie Erfahren.

tb
2003-10-27, 01:50:52
Original geschrieben von deekey777
Zu FP16 und DX9: "...Dabei ging es um die Präzision, mit der Berechnungen in DirectX-9-Shadern ausgeführt werden. NVIDIAs NV30 kann diese Berechnungen in verschiedenen Präzisionsstufen durchführen: 12 Bit (Integer), 16 Bit (Floating Point) und 32 Bit (Floating Point) pro Farbkanal. Bei letzterem spricht man dann von 128 Bit Präzision oder auch "Full Floating Point Precision", mit der die Produkte - sowohl von ATI als auch NVIDIA - auch beworben werden . ATIs Radeon 9700/9800 alias R300/350 rechnet dagegen immer mit 24 Bit Präzision und rundet die Ergebnisse bei der Ausgabe praktisch auf...Die entscheidende Frage dabei lautet, was Microsofts DirectX-9-Spezifikationen vorschreiben. Diese sagen aus, dass eine Karte, die "DX9 Compliant" ist, mindestens 24 Bit FP pro Kanal beherrschen muss. Es gibt aber auch eine Historie, die ursprünglich nur 16 Bit vorschrieb..." (Geht mal auf THG)
Noch fragen?

Hier nen Link zum Thema min. Präzision, die Microsoft vorschreibt:

http://www.microsoft.com/korea/events/directx/ppt/Direct3DCore.ppt

So gesehen, verschenkt ATi eigentlich Leistung, indem sie immer mit 24 Bit rechnen, wo doch 16 Bit teilweise genügen würden. Mal schauen wie andere Hersteller (PowerVR, XGI) das machen.

Hier noch eine paar vorläufige Infos zu VPU's, welche Pixel und/oder Vertex Shader ab Version 3.0 unterstützen:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/graphics/hh/graphics/d3d_4ahz.asp

Auffällig sind hier: aniso. Filter min. 16x und Texturen min. 4096x4096...

Hier noch ein Beispiel, was für DX8 benötigt wird:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/graphics/hh/graphics/d3d_8v53.asp

und hier für DX9:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/graphics/hh/graphics/d3d_4bhj.asp

Thomas

aths
2003-10-27, 03:22:43
Original geschrieben von tb
So gesehen, verschenkt ATi eigentlich Leistung, indem sie immer mit 24 Bit rechnen, wo doch 16 Bit teilweise genügen würden.Wieso verschenken sie Leistung? Einfach mit 16 Bit zu rechnen würde R300 kein bisschen schneller machen. Oder willst du 4 FP24-Einheiten so schalten, dass man 6 FP16-Einheiten hat? http://home.t-online.de/home/bullitt667/smilies/data/uglyconfused2.gif

mapel110
2003-10-27, 03:38:35
Original geschrieben von aths
Wieso verschenken sie Leistung? Einfach mit 16 Bit zu rechnen würde R300 kein bisschen schneller machen. Oder willst du 4 FP24-Einheiten so schalten, dass man 6 FP16-Einheiten hat? http://home.t-online.de/home/bullitt667/smilies/data/uglyconfused2.gif

naja, wäre sicher alles nur eine frage des designs gewesen. nvidia hats ja geschafft, den drei "präzisions"modi unterschiedliche performance zu spendieren :freak:

tb
2003-10-27, 05:00:15
Original geschrieben von aths
Wieso verschenken sie Leistung? Einfach mit 16 Bit zu rechnen würde R300 kein bisschen schneller machen. Oder willst du 4 FP24-Einheiten so schalten, dass man 6 FP16-Einheiten hat? http://home.t-online.de/home/bullitt667/smilies/data/uglyconfused2.gif

Ich meinte, wenn sie den r3xx entsprechende dafür ausgelegt hätten, nicht jetzt im fetigen design irgendwas reinwursteln.

Thomas

KM
2003-10-27, 06:10:43
Original geschrieben von tb
Ich meinte, wenn sie den r3xx entsprechende dafür ausgelegt hätten, nicht jetzt im fetigen design irgendwas reinwursteln.
Thomas
Vielleicht holen die das beim R420 nach?


Als ich mir die Hauptseite vom 3DC gerade durchgelesen habe, dann musste ich feststellen, dass das keine Informationsoffensive ist, sondern der Begriff "Diffarmierungskampagne" da eher zutrifft.
Solche Methoden sind in letzter Zeit bei US-Firmen leider standard geworden. (ist hier offtopic)

PS: 3D-Analyze ist in der Version 2.25c. Auf der Download-Seite von 3DC ist 2.25b angegeben

Razor
2003-10-27, 14:19:21
Original geschrieben von crushinator
Komisch nur, daß nicht nur die Jungs diesen E-Mail-Service NICHT in Anspruch nehmen, und ab sofort anscheinend alle nur noch DX9-Schrott zu produzieren scheinen. ;) Wer ist denn 'alle' ?

Und ich meinte keinen DX9-'Schrott', sondern TR:AoD als Schrott im Allgemeinen. Die Performance ist ja OK (auch auf nVidia-Karten), aber der Rest ist inakzeptabel !

Also irgendwie...

Razor

Crushinator
2003-10-27, 15:29:48
Vielleicht hilft das ja, ein paar DX9-Titel aufzulisten, die a) überhaupt ernsthaft als Solche bezeichnet werden können b) Deiner Meinung nach kein Schrott sind, und c) auf HW beider IHVs in etwa gleich gut laufen?

deekey777
2003-10-27, 23:03:46
Mist, ich hätte ich auch etwas gestern posten sollen...:cryl:
Zu spät.
Frage: In HLSL auf MSDN fand ich entweder half oder float (sind die wichtigeren Keywords). Da steht aber nichts von FP24 à la asgoodasfloat oder ähnlich. Wie macht man das?

KM
2003-10-28, 00:10:51
Original geschrieben von deekey777
Frage: In HLSL auf MSDN fand ich entweder half oder float (sind die wichtigeren Keywords). Da steht aber nichts von FP24 à la asgoodasfloat oder ähnlich. Wie macht man das?
Half=fp16
Float=fp24 oder fp32 (je nach Hardware)

Demirug
2003-10-28, 07:39:42
Original geschrieben von KM
Half=fp16
Float=fp24 oder fp32 (je nach Hardware)

Aber nur wenn man ein Profil >= 2.0 nutzt. Um genau zu sein müsste man dann auch sagen:

half = mindestens fp16
float = mindestens fp24

deekey777
2003-10-28, 11:42:54
Original geschrieben von Demirug
Aber nur wenn man ein Profil >= 2.0 nutzt. Um genau zu sein müsste man dann auch sagen:

half = mindestens fp16
float = mindestens fp24

Wäre es uU doch möglich für nVidia irgendwie per Treiber/superneuer DX9.1-FX-Pfad, die FP24-Genauigkeit zu benutzen/zu erzwingen ("32-8=24" :D )oder ist dies technisch nicht möglich? Das wäre doch eine prima Sache für nVidia: Keiner ginge dann auf den Kecks mit dem Mixed Mode, vergleichbare FP-Genauigkeit zu ATi... Selbst wenn die GraKa mehr Strom verbrauchen würde (interessiert doch eh nVidia nicht).

ow
2003-10-28, 11:53:51
Original geschrieben von deekey777
Wäre es uU doch möglich für nVidia irgendwie per Treiber/superneuer DX9.1-FX-Pfad, die FP24-Genauigkeit zu benutzen/zu erzwingen ("32-8=24" :D )oder ist dies technisch nicht möglich? Das wäre doch eine prima Sache für nVidia: Keiner ginge dann auf den Kecks mit dem Mixed Mode, vergleichbare FP-Genauigkeit zu ATi... Selbst wenn die GraKa mehr Strom verbrauchen würde (interessiert doch eh nVidia nicht).


a) es gibt kein DX9.1

b) nein, ein GFFX kann nur in FP16 oder FP32 rechnen.

deekey777
2003-10-28, 12:17:50
Original geschrieben von ow
a) es gibt kein DX9.1

b) nein, ein GFFX kann nur in FP16 oder FP32 rechnen.

Zu a) es gibt noch kein DX9.1. Vielleicht erfinden die nVidia-Leute was neues...

PS: Weiss einer, warum Matrox die DX9-Unterstützung aus seinen Treibern entfernt hat?

ow
2003-10-28, 12:21:40
Original geschrieben von deekey777
Zu a) es gibt noch kein DX9.1. Vielleicht erfinden die nVidia-Leute was neues...


???

Black-Scorpion
2003-10-28, 12:35:56
Original geschrieben von deekey777
Zu a) es gibt noch kein DX9.1. Vielleicht erfinden die nVidia-Leute was neues...

Was soll NV denn da erfinden.
DX ist von M$, da können sie erfinden was sie wollen.
Aber DX9.1 jedenfalls nicht.

KM
2003-10-28, 16:52:46
Original geschrieben von Demirug
Aber nur wenn man ein Profil >= 2.0 nutzt. Um genau zu sein müsste man dann auch sagen:

half = mindestens fp16
float = mindestens fp24
War zu unpräzise. Bei Nvidia sind half fp16 und float fp32 und bei ATI sind beide fp24.
Recht verwirrend.

Original geschrieben von deekey777
Zu a) es gibt noch kein DX9.1. Vielleicht erfinden die nVidia-Leute was neues...

PS: Weiss einer, warum Matrox die DX9-Unterstützung aus seinen Treibern entfernt hat?
Momentan ist DX9.1 nicht definiert. Ich hoffe mal, dass die nächste Generation von Grafikkarten (R420,NV40) eher sich an DX9(.0b) mit PS/VS 3.0 anpassen.

Warum Matrox DX9 Unterstützung entfernt hat?
Vielleicht funktioniert die DX9 Unterstützung vom Chip nicht so, wie es sein sollte, oder die Leistung ist unter DX9 noch schwächer.