News DeltaChrome S8 ULP als leise Alternative

GRAKA0815 schrieb:
Das ist so erst einmal richtig, jedoch sind die Konsolenspiele einzig und alleine auf die jeweilige Grafikkarte angepasst, wodurch die Karte "mehr" leisten wird als bei einem PC-Spiel das auf verschiedenen Grafikkarten laufen muß und daher eben nicht optimiert ist.
Konsolenspiele sind eben optimal auf die jeweilige Hardware angepasst, dass aber wiederum ist bei einem PC-Spiel defakto nicht möglich. ;)
Doch, defakto wurden von John Carmack im Doom-3-Renderpfad ganz spezifische Optimierungen für GeforceFX eingepflegt. Frühjer war soetwas besser deutlich, weil man zB. bei N.I.C.E. 2 noch für jeden Renderpfad eine eigene EXE starten musste und es tatsächlich für jede Grafikchipmarke einen eigenen Renderpfad gab, obwohl nur Glide und Direct3D verwendet wurden kam man so auf 5 Renderpfade, heute läuft soetwas eben "unter der Haube" automatisch ab. Die meisten SPiele bieten nur wenige Renderpfade, meist einen D3D und einen OGL für alle Grafikkarten, dort wo Grafikpracht aber wichtigstes Marketingargument ist, zB. eben bei Carmack bekopmmen die Karten die Optimierungen die für sie sinnvoll sind. Einige Optimierungen wurden ausgelassen, weil der Leistungsgewinn einfach zu gering gewesen wäre, als dass sich da Aufwand gelohnt hätte, aber da wo Leistungszuwächse spürrbar sind machen sich Leute wie Herr Carmack auch auf dem PC sehr viel Mühe für einzelne Chip-Designs. ;)
 
MountWalker schrieb:
Konsolen können die CPU viel besser für Spiele ausnutzen, weil der Systemkernel einfach in dem Punkt schneller ist, auf die Grafikchips hat sdas aber keine Auswirkung. Es hat Grüpnde warum kein Konsolenspiel eine mit einem PC-Spiel vergleichbare Level-Grafik bietet, da ist Chronicles of Riddik nicht die geringste Ausnahme, und selbsverfreilich sieht Riddik auf dem PC besser aus, wenn man ihm die freilich teurere Hardware gönnt. Gröszere Leveltexturen fordern numal grundsätzlich ihren Tribut, selbst das Anti-Aliasing auf dem PC ist besser, aber weniger performant als die tiefenunscharfen Resultate von Nvidias "Quincunx-Anti-Aliasing" auf der X-Box. Quincunx gab es auch mal auf PC, wird aber längst nichteinmal mehr als Option angeboten; komisch was?
Quincux hat absoluit nichts mit Tiefenunschärfge zu tuen. Es wird einfach ein Blurfilter über die Texturgelegt. Dieser sorgt dafür, dass die Kanten verwaschen, allerdings wird direkt alles unschärfer. Eine tolle Lösung ist das.....
Und Qunincux gibt es auch noch auf dem PC:)

Achja, den NV3x Pfad hat JC wieder herausgenommen, da der Shadercompiler angeblich mittlerweile mit dem ARB2 Pfad genausogut zurechtkommt wie beim FX Pfad.
 
Zuletzt bearbeitet:
Das Carmack das gemacht hat (es dürfte wohl eine "rühmliche" Ausnahme gewesen sein) mag man ihm ja anrechnen, ist aber definitiv nicht standard. Um wieviel wäre dann die FX-Reihe in dem Spiel abgekackt ohne den FX-Pfad? Bei wievielen Spielen finden wir denn einen expliziten FX-Pfad? Carmack konnte es sich doch gar nicht leisten "ohne" NV Optimierung, denn immerhin war Nvidia Sponsor / Finanzgeber etc.
Ein Konsolen Spiel hat sicherlich nicht viel weniger Entwicklungszeit als ein PC-Spiel.
Nur, wenn heute jemand beginnt ein Spiel für bsw. die XBox2 zu programmieren, dann hat er seine feste linke und rechte Grenze was die Ressourcen angeht. Ein PC-Spieleprogrammierer aber nicht! Das grobe Klotz an PC-Spielen ist doch, dass die Ressorcen verschwendet werden ^3. Das ist aber bei einem Konsolenspiel eben nicht möglich. Hier muss einfach das Optimum an Leistung und Bildqualität programmiert werden. Dies ist ja auch einfacher, weil ich nur eine einzige Grafikkarte zu bedienen brauche.
Nimm doch einmal Doom3 als bsp. Was für eine Hardwarevoraussetzung muß ich mitbringen, um dieses Spiel in der bestmöglichen Auflösung und unter allen umständen flüssig zu zocken? Ein Konsolenspiel habe ich noch nie ruckeln gesehn, aber schon viele PC-Spiele. ;) Wie hatte es den am Anfang mit Far Cry ausgesehen? Schau Dir doch einmal die unzähligen Thread hier im Forum an, weil trotz guter Hardware das Spiel teilweise unspielbar gewesen ist.
Ein PC-Spiel ist immer ein Balanceakt zwischen Intel / AMD / Nvidia / ATI und auch noch den anderen gegenüber. Da mag es phasenweise Optimierungen geben, aber die können aus kompatibilitätsgründen nie so stark sein wie bei einem Konsolenspiel.
 
GRAKA0815 schrieb:
Das Carmack das gemacht hat (es dürfte wohl eine "rühmliche" Ausnahme gewesen sein) mag man ihm ja anrechnen, ist aber definitiv nicht standard. Um wieviel wäre dann die FX-Reihe in dem Spiel abgekackt ohne den FX-Pfad? Bei wievielen Spielen finden wir denn einen expliziten FX-Pfad? Carmack konnte es sich doch gar nicht leisten "ohne" NV Optimierung, denn immerhin war Nvidia Sponsor / Finanzgeber etc.
Ein Konsolen Spiel hat sicherlich nicht viel weniger Entwicklungszeit als ein PC-Spiel.
Nur, wenn heute jemand beginnt ein Spiel für bsw. die XBox2 zu programmieren, dann hat er seine feste linke und rechte Grenze was die Ressourcen angeht. Ein PC-Spieleprogrammierer aber nicht! Das grobe Klotz an PC-Spielen ist doch, dass die Ressorcen verschwendet werden ^3. Das ist aber bei einem Konsolenspiel eben nicht möglich. Hier muss einfach das Optimum an Leistung und Bildqualität programmiert werden. Dies ist ja auch einfacher, weil ich nur eine einzige Grafikkarte zu bedienen brauche.
Nimm doch einmal Doom3 als bsp. Was für eine Hardwarevoraussetzung muß ich mitbringen, um dieses Spiel in der bestmöglichen Auflösung und unter allen umständen flüssig zu zocken? Ein Konsolenspiel habe ich noch nie ruckeln gesehn, aber schon viele PC-Spiele. ;) Wie hatte es den am Anfang mit Far Cry ausgesehen? Schau Dir doch einmal die unzähligen Thread hier im Forum an, weil trotz guter Hardware das Spiel teilweise unspielbar gewesen ist.
Ein PC-Spiel ist immer ein Balanceakt zwischen Intel / AMD / Nvidia / ATI und auch noch den anderen gegenüber. Da mag es phasenweise Optimierungen geben, aber die können aus kompatibilitätsgründen nie so stark sein wie bei einem Konsolenspiel.

Wie gesagt die Unmengen an Texturdaten die bei PC-Spielen anfallen sind enorm im Vergleich zu dem was auf einer Konsole verarbeitet wird, das ist ja auch nicht verkehrt, weil der Konsolenmarkt nichts anderes erwartet.

wichtigster Satz dieses Beitrags:

Schau dir mal an auf welchen Grafikkarten du Doom3 noch mit minimaler Texturqualität, aber eingeschaltetem Normal-Mapping spielen kannst, denn wie von Geisterhand passen bei der X-Box-Fassung keine Texturen in deren Viodeospeicher die gröszer als der Videospeicher der X-Box sind (die X-Box hat nur 64 MB Hauptspeicher, da wird der Videospeicher ja kaum gröszer sein), also können auch nicht die auf dem PC üblichen Texturen berechnet werden, technisch unmöglich sozusagen. ;)

Konsolenspieler haben einfach keinen Blick für Levelgrafik, Sichtweite, Texturqualität und solchen Krempel und deshalb wird einiges auch überbewertet. Dass man auf dem PC für die gleichen Dinge eine doppelt so schnelle CPU braucht ist eine andere Sache und wenn man bedenkt, dass immernoch eine ganze Menge allein bei der Grafikengine von Spielen durch die CPU muss und Schatten und sowas bei den meisten Spielen (auch bei Doom3) trotz Nvidias "Ultra-Shadow" immernoch von der CPU berechnet werden, dann dürfte auch deutlich werden, warum zB. Schatten auf der Low-Tech einer Konsole so performant sind.

Meist sind durch die Standards die Chipentwickler freiwillig bereit für Standard-Rasterizer+Shader-x.x zu optimieren, gröszere Unterschiede entstehen nur wie zB. beim GeforceFX, wenn ein Chipentwickler einen zukünftigen, noch nicht vorhandenen Standard falsch erwartet, Nvidia glaubte tatsächlich mit dem FX später Shader 3.0 kompatibel zu sein, der Griff in die Zukunft ging halt deutlich daneben, der wichtigste Unterschied der FX-Shaderarchitektur gegenüber 2.0 ist aber der gleiche wie der von 3.0, man kann die gleichen Sachen deutlich performanter berechnen und braucht deswegen für gleiche Geschwindigkeit weniger "Rohleistung" oder auch weniger Shadereinheiten, was letztlich beim NV30 auch vorliegt, er hat weniger Shadereinheiten als seine Konkurrenz. Unterschiede in der Architektur die in unterschiedlicher Performance resultieren sind nur unterschiedliche Ansätze den gleichen Code besser verarbeiten zu wollen. Der Hardwarehersteller versucht den Code, der durch dei Standards festgelegt ist, optimal zu berechnen, wenn alles so läuft wie es vorgesehen ist braucht der Spieleentwickler eben auch nichts optimieren. ;)

Ist quasi wie mit Webbrowsern und dem Rendern von Webseiten, Gecko (Mozilla) rendert auch nicht perfekt, hat aber auch andere Ansätze eine absolut standardkonforme Webseite effektiv, korrekt und möglichst schnell zu rendern als Opera, Gecko und Opera unterscheiden sich schon stark, mit einer 100% W3C konformen Webseite erziehlt man aber kaum schlechtere Performance, als wenn man irgendwas "optimieren" würde. (den IE mal nicht berücksichtigt)

Für verschiedene CPU-Architekturen optimieren ist auch nicht so schwer, ich habe damit zwar noch keine extrem spürbaren Resultate erzielen können, man kann aber sicher seinen Systemkernel auf das was man im Rechner hat einstellen, bei mir wäre das "K7" und dann die Software dafür kompilieren, fertig ists. Der Spielehersteller könnte gleich mehrere Binarys in den wichtigsten Architekturen anbieten. Aber wie gesagt ich spüre da kaum Unterschiede. In der Regel erkennt gröszere, aktuelle Software (zB. Videoprogramme oder 3D-Anwendungen) die CPU-Architektur sowieso automatisch und stellt sich darauf ein, sodass ein Binary des Programms, welches an ein bestimmtes System angepasst ist auch nur die Zeit spart, die das Programm sonst damit verbringen würde die CPU-Architektur zu erkennen.
Das Anbieten von mehreren Binaries ist übrigens bei Spielen nicht wirklich tragisch, meine Morrowind.exe hat zB. nur 3,78 MB, während das Spiel insgesamt eine CD fast randvoll füllt und ich sogar noch zwei AddOns installiert habe. Aber wie gesagt ist das mit mehreren Binaries nicht notwendig, weil das Spiel beim Programmstart darauf einstellt, es stellt sich auf das ein was das System sagt. ;)
Eigentlich sind nur Befehlssätze wirklich bedeutsam die man beim Programmieren berücksichtigen müsste, aber wenn man da als Spieleentwickler SSE2 nimmt ist man aktuell bei allen x86-CPUs gern gesehen, wenn man will kann man darüberhinaus auch noch was für 3DNow+ und SSE3 schreiben, wäre eine spezielle "Anpassung", das muss man aber nicht und macht auch kaum jemand.

Der Mac steht eben nicht besser da als x86-Systeme nur weil er eine einzige CPU-Architektur hat (aktuell G5), sondern weil sein Erweiterter Befehlssatz einiges ganz gut beschleunigen kann, wenn er genutzt wird. Inwiefern RISC mit seiner Performance etwas zu tun hat weisz ich nicht, die grosze Befehlssatzerweiterung hat jedenfalls mit RISC nicht viel zu tun. ;)

ps.
Puhh, für Wochentag und Uhrzeit war das jetzt ganz schön anstrengend. :jumpin:
 
Zuletzt bearbeitet:
moment, ich will da mal kurz einhacken:

1.) die befehlsatzerweiterungen müssen im assambler geschrieben sein. nachdem aber kein programmierer das ganze programm in assambler schreibt muss das der compiler übernehmen. wenn ich allerdings ein programm compiliere sag dem compiler er soll SSE2 benutzen, schaue ich auf einem amd ziemlich schlecht aus. genau imgekehrt verhält es sich mit 3dnow und intel

2.) ist die optimierung des programmcodes durch den compiler sehr wohl gewinnbringend (man beachte nur mal die positiven effekte von SSE2 auf intelmaschinen bei multimediaanwendungen). also ist eine optimierung auf der softwareschiene sehr wohl gewinnbringend

3.) ich kann es mir ersparen mehrere binaries erstellen, wenn ich eben bei programmstart frage, was das system kann und was nicht. muss ich doch auch, denn wenn ich mit einem optimierten code mit x spezialbefehlen auf eine cpu losgehe die sie nicht kennt, dann hängts.

4.) meist wird aber diese "optimierung" auf die hardware durch den compiler erreicht, durch verwenden eines anderen oder durch setzen von optionen. wie gut dann die optimierung ist hängt ganz vom compiler ab.

5.) gibt es unterschiedliche optimierungen. auf geschwindigkeit, speicherverbrauch, etc. (man beachte nur mal, wie viel optimized build es von mozilla, FF, TB und co gibt. dabei wird auch nur der source code durch einen anders eingestellt compiler gejagt)

6.) RISC cup's sind deswegen so schnell, weill die reduzierung auf wenige befehle es ermöglicht (vereinfacht gesagt) die verschaltung der cpu zu optimieren, weill es weniger mögliche zustände gibt

7.) auch intel und amd cpu's sind RISC cpu's (habe ich in der schule gelernt), allerdings treten sie nach aussen wie eine CISC cpu auf. dabei wird ein CISC befehl in mehrere micro ops zerlegt.

so long
 
roadrunner2022 schrieb:
moment, ich will da mal kurz einhacken:

1.) die befehlsatzerweiterungen müssen im assambler geschrieben sein. nachdem aber kein programmierer das ganze programm in assambler schreibt muss das der compiler übernehmen. wenn ich allerdings ein programm compiliere sag dem compiler er soll SSE2 benutzen, schaue ich auf einem amd ziemlich schlecht aus. genau imgekehrt verhält es sich mit 3dnow und intel
Warum das? Alle Athlon XP und Athlon64 unterstützen doch SSE2, wenn auch der Athlon XP SSE2 anders verarbeitet, weil die vom Programm aufgerufenen Befehleschlechter verarbeitet werden. Damit hat doch das Programm soweit ich weisz nichts zu tun. ;)
Dass das der Compiler übernimmt wusste ich nicht, ich hatte mir zu Zeiten des K6-2 einreden lassen die Programmierer selbst müssten dafür Mehraufwand entrichten, wenns nict so ist habe ich mich geirrt, tut mir leid für die mögliche, versehentliche Falschaussage. ;)

roadrunner2022 schrieb:
2.) ist die optimierung des programmcodes durch den compiler sehr wohl gewinnbringend (man beachte nur mal die positiven effekte von SSE2 auf intelmaschinen bei multimediaanwendungen). also ist eine optimierung auf der softwareschiene sehr wohl gewinnbringend
Bezogen auf die Befehlssatzerweiterungen mag das sein, ich ging davon aus, dass der Compiler damit nicht viel zu tun hat und folglich nur die eigentliche Prozessorarchitektur übrig bleibt, K6, K7, K8, i386, i586, i686 usw., das können Programme beim Programmstart mitunter selbstständig erkennen und starten dann entsprechend, MPlayer soll das zB. können, wurde mir mal erklährt. Viele kleinere Programme laufen dahingegen grundsätzlich immernoch nur als i368, weil das jede aktuelle x86-CPU interpretieren könne (abgesehen von Intels Itanium, die 32b Code nicht interpretieren können) und es bei diesen Programmen nicht allzuviel ausmache.

roadrunner2022 schrieb:
3.) ich kann es mir ersparen mehrere binaries erstellen, wenn ich eben bei programmstart frage, was das system kann und was nicht. muss ich doch auch, denn wenn ich mit einem optimierten code mit x spezialbefehlen auf eine cpu losgehe die sie nicht kennt, dann hängts.
Sag ich ja, man könnte auch mehrere Binaries erstellen, wovon eben auf System XY nur eines funktioniert, bei Grafikchips wurde das früher, von Resident Evil bis N.I.C.E. 2 grundsätzlich so gemacht, ist aber überflüssig, wenn das Programm die Fähigkeiten des Systems beim Start erkennen kann und sich darauuf einstellen kann. ;)

roadrunner20224 schrieb:
.) meist wird aber diese "optimierung" auf die hardware durch den compiler erreicht, durch verwenden eines anderen oder durch setzen von optionen. wie gut dann die optimierung ist hängt ganz vom compiler ab.
Oke
roadrunner2022 schrieb:
5.) gibt es unterschiedliche optimierungen. auf geschwindigkeit, speicherverbrauch, etc. (man beachte nur mal, wie viel optimized build es von mozilla, FF, TB und co gibt. dabei wird auch nur der source code durch einen anders eingestellt compiler gejagt)
Oke

roadrunner2022 schrieb:
6.) RISC cup's sind deswegen so schnell, weill die reduzierung auf wenige befehle es ermöglicht (vereinfacht gesagt) die verschaltung der cpu zu optimieren, weill es weniger mögliche zustände gibt
Steht hier im Lexikon wo ich es gelesen habe, ob das einem aber der wichtigste Vorteil von Apple-Rechnern ist, oder nicht doch die grosze Befehlssatzerweiterung der Gx-Prozessoren, welche ja nicht "reduced" ist den gröszten Geschwindiglkeitsschub in Multi-Media-Anwendungen bringt ist laut Lexikon nicht so ganz klar.
[URL]http://de.wikipedia.org/wiki/Reduced_Instruction_Set_Computing[/URL] schrieb:
...
Daher werden diese Techniken oft ebenfalls als typische RISC-Eigenschaften geführt, obwohl sie mit der ursprünglichen Definition, dem eingeschränkten Befehlssatz, nichts zu tun haben.
...
So wurde der Befehlssatz des PowerPC-Prozessors, der von IBM und Motorola hergestellt wird, durch eine Befehlserweiterung namens "AltiVec" ergänzt, die den PowerPC-Prozessoren spezielle Multimediafähigkeiten nachrüstet, und beispielsweise in den Computern von Apple Verwendung findet.
...

roadrunner2022 schrieb:
7.) auch intel und amd cpu's sind RISC cpu's (habe ich in der schule gelernt), allerdings treten sie nach aussen wie eine CISC cpu auf. dabei wird ein CISC befehl in mehrere micro ops zerlegt.

so long
Naja, hier im Lexikon steht das eben anders drin:
http://de.wikipedia.org/wiki/CISC
Wenn das tatsächlich eigentlich RISC-Prozessoren sind, dann misch dich da mal ein, das Lexikon hier ist ja ein Wiki. ;)
 
Zuletzt bearbeitet von einem Moderator: (Lexikon-Link korrigiert)
Alle aktuellen Prozessoren der X86 Architektur sind RISC-CPUs, sprich sie haben wenge, einfach eBefhele, weshalb die CPUs allerdings höher getaktet sein können.

Der PowerG5 von IBM dagegen ist eine RISC-CPU, sprich sie hat viele, komplexe Befehlssätze.
 
Das ganze geht ja noch viel viel weiter, als "nur" SSE(2) oder 3DNow.

So sind bei Konsolen auch die Cachegrößen definiert, die Latenzen zum Großteil bekannt und der Overhead durch das OS gering bis kaum vorhanden.
Auf diese Weise kann ich mir genau ausrechnen, und zwar schon beim Designbeginn, wieviele und wie große extrem performancekritische Programmteile ich in die Caches stopfen kann und wie ich möglichst sinnvoll die Latenzen überbrücke.

Ratet mal, warum Konsolengames meist erst in zweiter oder dritter Generation die Konsole voll ausnutzen? Richtig, erstens lernen die Programmierer dazu und zweitens können die, die später mit der Entwicklung anfangen, echte Konsolenhardware als Plattform nutzen anstatt eines "Developer-Kits" (identische Programmumgebung, aber kein 1:1 Performance-Testing).
 
Zurück
Oben