PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie errechnet man den VRam-Bedarf?


Gast
2007-12-19, 21:02:25
"Früher" bzw. in 2d war das einfach:

Anzahl Pixel horizontal x Anzahl Pixel vertikal x Farbtiefe = benötigte Bits

Und Heutzutage bzw. in 3d? Mit/ohne AA/AF/Kompression?

Geht das überhaupt?

rotanat
2007-12-19, 21:41:32
Geht eigentlich nicht wirklich, da jedes Spiel / jede Anwendung eine andere Anzahl von gleichzeitig benötigten Texturen verwendet und die Texturen selbst ja noch unterschiedlich groß sein können (komprimiert/unkomprimiert/Auflösungen/Farbinformationen etc.).

Gast
2007-12-19, 22:14:59
Irgendwie muss sich da doch zumindest Näherungsweise was berechnen lassen. Pi*Daumen? ;)

Was ist denn z.B. mit den ganzen (Kauf-)Empfehlungen für Grafikkarten ala "ab Auflösung X*Y und X*AA/AF musst du eine Grafikkarte mit soundsoviel Ram zu benutzen, ansonsten wird es ruckeln"? Sind das alles reine Erfahrungswerte oder wird hier schlichtweg den Angaben der (Software-)Hersteller gefolgt und woher weiss der Hersteller das, der muss das doch auch irgendwie errechnen?

Spasstiger
2007-12-19, 22:30:59
Was ist denn z.B. mit den ganzen (Kauf-)Empfehlungen für Grafikkarten ala "ab Auflösung X*Y und X*AA/AF musst du eine Grafikkarte mit soundsoviel Ram zu benutzen, ansonsten wird es ruckeln"? Sind das alles reine Erfahrungswerte oder wird hier schlichtweg den Angaben der (Software-)Hersteller gefolgt und woher weiss der Hersteller das, der muss das doch auch irgendwie errechnen?
Das kann man messen. Und je nach Spiel und Grafikeinstellungen werden mal 150, mal 300 und auch mal 600 MB Grafikspeicher benötigt. Für Crysis auf very high kannst du z.B. mit über 500 MiB Grafikspeicher rechnen, die benötigt werden, damit in keinem Moment das Nachladen aus dem Arbeitsspeicher die Performance limitiert.
Wobei aber auch große Unterschiede beim Speicherbedarf zwischen einer Radeon und einer GeForce besteht. Das Speichermanagement bekommt ATI offenbar besser hin (und das ist schon seit Jahren so).

Gast
2007-12-19, 22:41:13
Das kann man messen. Und je nach Spiel und Grafikeinstellungen werden mal 150, mal 300 und auch mal 600 MB Grafikspeicher benötigt. ...

Ebend, mal werden 150, mal 300 und mal 600 gebraucht. Und wie kann ich das einschätzen (-lernen)?

Also, der Einfachheit halber fixieren wir die Details mal auf gegeben (D=1). AA und AF bleibt vorerst aus. Die Kompressionsfähigkeit der GPU auch. Wie verändert sich dann der VRAM-Bedarf bei z.B. doppelter Auflösung? Auf doppelt so hoch?

mike49
2007-12-19, 22:56:26
Ebend, mal werden 150, mal 300 und mal 600 gebraucht. Und wie kann ich das einschätzen (-lernen)?

Einfach mit Rivatuner den VRAM-Verbrauch beobachten, dann siehst Du schon was los ist ;)

Spasstiger
2007-12-19, 22:59:24
Also, der Einfachheit halber fixieren wir die Details mal auf gegeben (D=1). AA und AF bleibt vorerst aus. Die Kompressionsfähigkeit der GPU auch. Wie verändert sich dann der VRAM-Bedarf bei z.B. doppelter Auflösung? Auf doppelt so hoch?
Doppelt soviele Pixel bedeuten nur, dass doppelt soviel Speicher für den Frame- und Z-buffer benötigt wird. Z.B. 60 statt 30 MB. Wieviel Speicher insgesamt benötigt wird, kann man daraus aber nicht ableiten.

Gast
2007-12-19, 23:11:38
Einfach mit Rivatuner den VRAM-Verbrauch beobachten, dann siehst Du schon was los ist ;)

Hmmm, ok, angenommen ich schmeiss Rivatuner an (geht der auch mitner Nvidia 7600GT/256mb?) und erstelle eine Messreihe. Bin ich dann der Erste hier im Forum der das macht oder messe ich Dinge, die eh schon bekannt sind? Woher habt ihr denn eure Kenntnisse?

Und dafür..

Also, der Einfachheit halber fixieren wir die Details mal auf gegeben (D=1). AA und AF bleibt vorerst aus. Die Kompressionsfähigkeit der GPU auch. Wie verändert sich dann der VRAM-Bedarf bei z.B. doppelter Auflösung? Auf doppelt so hoch?

..muss es doch Regeln/Algorithmen geben. Ich kann mir nicht vorstellen, daß ich der Erste bin, der sich diese Frage gestellt hat, hmmm, oder?

@Spasstiger: Ok, wovon ist der Speicherbedarf des Frame- und Z-buffer abhängig und welche anderen Speicher sind nötig?

Dann könnten wir ja mal anfangen zu addieren:

a) Framebuffer
b) Z-buffer
c) ...

deekey777
2007-12-20, 00:33:08
"Früher" bzw. in 2d war das einfach:

Anzahl Pixel horizontal x Anzahl Pixel vertikal x Farbtiefe = benötigte Bits

Und Heutzutage bzw. in 3d? Mit/ohne AA/AF/Kompression?

Geht das überhaupt?
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=395201

Man kann vielleicht den Framebuffer gerade so berechnen, aber den vollen Bedarf an VRAM?
...Dann könnten wir ja mal anfangen zu addieren:

a) Framebuffer
b) Z-buffer
c) ...
Da kann man addieren, bis man von Zahlen nachts träumt.
Kleines Beispiel: STALKER. Allein der G-Buffer besteht aus 3 RGBA16-Texturen (Auflösung * 64 bit * 3), dazu kommen weitere Zwischen-Buffer ("L-Buffer" -> zwei weitere 32-bit-Buffer für die endgültige Szene, Postprocessing) plus Texturen, Geometriedaten usw.

Gast
2007-12-20, 00:45:59
http://www.forum-3dcenter.org/vbulletin/showthread.php?t=395201

Man kann vielleicht den Framebuffer gerade so berechnen, aber den vollen Bedarf an VRAM?

Tja, das hab ich mich ja gefragt.... Dein Verweis auf den anderen Thread zeigt aber auch, das die Frage nicht einmalig ist und auch nicht beantwortet. Deinen Link (im anderen Thread) auf beyond3d hab ich jetzt nur angelesen, das sieht aber auch nicht groß anders aus, als das, was wir hier schon erarbeitet hätten:

Back-Buffer(s) = Pixels * FSAA Depth * Rendering Colour Depth
Z-Buffer = Pixels * FSAA Depth * Z Depth
Front-Buffer(s) = Pixels * Output Colour Depth
Total = Back-Buffer(s) + Z-Buffer + Front-Buffer(s)

Jetzt nehme ich mal FSAA raus:

Back-Buffer(s) = Pixels * Rendering Colour Depth
Z-Buffer = Pixels * Z Depth
Front-Buffer(s) = Pixels * Output Colour Depth
Total = Back-Buffer(s) + Z-Buffer + Front-Buffer(s)

... auch nur ne Addition dessen, oder?

deekey777
2007-12-20, 00:50:41
Es ist nur der Framebuffer, aber nicht der gesamte VRAM-Verbrauch.

Gast
2007-12-20, 00:56:21
Es ist nur der Framebuffer, aber nicht der gesamte VRAM-Verbrauch.

Ok, da haben wir also folgendes:

Total = Back-Buffer(s) + Z-Buffer + Front-Buffer(s)

Ohne das jetzt näher zu beziffern: Was brauchen wir sonst noch?

Spasstiger
2007-12-20, 12:41:11
Ohne das jetzt näher zu beziffern: Was brauchen wir sonst noch?
Texturen aller Art (Diffusemaps mit Mipmaps, Specularmaps, Normalmaps, Heightmaps, reine Datenansammlungen für Shader), Geometriedaten, Shaderprogramme

Sentionline
2007-12-20, 16:43:45
Für Crysis auf very high kannst du z.B. mit über 500 MiB Grafikspeicher rechnen, die benötigt werden, damit in keinem Moment das Nachladen aus dem Arbeitsspeicher die Performance limitiert.
Kurioserweise wird aber fast immer "Primär" der Arbeitsspeicher vollgestopft. Und selbst wenn dieser voll ist, wird ausgelagert, aber nicht der Grafikspeicher benutzt...Das find ich voll nervig!:mad:

Ich glaube niemals das CrySis oder ein anderes Spiel jemals 512MB oder gar mehr Grafikspeicher beim "normalen" Spielbetrieb verbraucht. Erst wenn ich einen Screen mit dem Speicherverbrauch sehe...so wie hier:

http://www.abload.de/thumb/zwischenablage03mb5d59.jpg (http://www.abload.de/image.php?img=zwischenablage03mb5d59.jpg)

Und da hatte ich so ziemlich alles auf Maximum, was Texturen angeht. Weil ich mich gefragt habe, warum der Videospeicher so auf ~60MB Verbrauch dümpelt, obwohl 1GB Ram schon voll waren. Erst als ich die Texturen angezogen habe ging der Verbrauch des Grafikspeichers nach oben. Spielbar ist aber was anderes bei 1fps. Aber ich weiss persönlich schonmal, das Grafikspeicher eine untergeordnete Rolle bei Computerspielen Spielt. Mehr RAM ok, Videospeicher...nur wenns bei der Grafikkarte gratis dabei ist.

Nach wie vor sehe ich keine Existenzberechtigung für Karten mit 768MB oder gar 1GB. Alles nur Marketing...weil:

http://www.abload.de/thumb/zwischenablage03mb5lnh.jpg (http://www.abload.de/image.php?img=zwischenablage03mb5lnh.jpg)

Jetzt kommt mir nicht mit Auflösungen ~1920x... etc...In diesen Auflösungen hilft auch nicht mehr Videospeicher um die Frameraten höher zu treiben.

mfg

dargo
2007-12-20, 17:20:01
Nach wie vor sehe ich keine Existenzberechtigung für Karten mit 768MB oder gar 1GB. Alles nur Marketing...weil:

http://www.abload.de/thumb/zwischenablage03mb5lnh.jpg (http://www.abload.de/image.php?img=zwischenablage03mb5lnh.jpg)

Jetzt kommt mir nicht mit Auflösungen ~1920x... etc...In diesen Auflösungen hilft auch nicht mehr Videospeicher um die Frameraten höher zu treiben.

mfg
Dann bist du wohl der Einzige. ;)
Crysis mit 1280x960 4xAA/8xAF high Details - bis zu 627MB Vram.

Gortha
2007-12-20, 17:28:11
@dargo
Ja aber die Menge braucht das eigentliche Spiel ja nicht.
Ist ja "eigene Fahrlässigkeit"^^ selche Filter zu nutzen. ;)

LG
Gortha

Die gelbe Eule
2007-12-20, 17:28:15
Unter Vista gehts z.B. nicht mehr, da alles virtuell verwaltet wird.

Spasstiger
2007-12-20, 22:39:51
@dargo
Ja aber die Menge braucht das eigentliche Spiel ja nicht.
Ist ja "eigene Fahrlässigkeit"^^ selche Filter zu nutzen. ;)

LG
Gortha
Was Sentionline da schreibt, ist trotzdem ziemlicher Käse, und jeder, der schon länger im Forum unterwegs ist, weiß das aus Erfahrungsberichten, Benchmarks und Messungen. Weitere Meinungen behalte ich für mich.

Coda
2007-12-21, 00:55:03
Ja es ist Käse, weil das auch nur die gebundenen Resourcen für den letzten Frame anzeigt. Das ganze Level braucht natürlich viel mehr VRAM. Das liegt bei Crysis sicher über 512MiB auf höchsten Einstellungen.

Sentionline
2007-12-21, 13:54:53
Ja es ist Käse, weil das auch nur die gebundenen Resourcen für den letzten Frame anzeigt. Das ganze Level braucht natürlich viel mehr VRAM. Das liegt bei Crysis sicher über 512MiB auf höchsten Einstellungen.

So sollte es aber nicht sein das ein Spiel nur in "not" den Videospeicher nutzt. Zumal gerade die Speicherverwaltung von CrySis sich einen Puffer im Ram anlegt, falls es zu überläufen kommt.

r_DynTexMaxSize = Texture Pool Size, prevents dynamic texture Trashing (50-100MB)

Im "normalen" Spielbetrieb habe ich eine Auslastung von max. 120MB Videospeicher. Ich lasse mich aber gerne eines besseren belehren...nicht nur mit Benches von "anderen" die besagen: "Je mehr desto besser"...

Mehr Videospeicher sollte übrigens nicht zum Benchen, sondern zum Spielen an sich gut sein.

#Update#

http://www.abload.de/thumb/1i9c91.jpg (http://www.abload.de/image.php?img=1i9c91.jpg)http://www.abload.de/thumb/2x37z1.jpg (http://www.abload.de/image.php?img=2x37z1.jpg)http://www.abload.de/thumb/36n8oz.jpg (http://www.abload.de/image.php?img=36n8oz.jpg)http://www.abload.de/thumb/4quno0.jpg (http://www.abload.de/image.php?img=4quno0.jpg)http://www.abload.de/thumb/5f8yhh.jpg (http://www.abload.de/image.php?img=5f8yhh.jpg)

mfg

Mäppel
2007-12-23, 11:05:31
Ist das bei den Crysis-Screenshots eine eingebaute Anzeige? Oder geht das auch mit Rivatuner?

Auf jedenfall kommt CoD4 bei mir bei 1600x1200 4xAA/16AF auch aucf 620 MB belegten VRam. Man muss wissen, was man machen will und kann, und danach entscheiden. Den VRam voll zu bekommen ist heutzutage kein Problem mehr. Mit entsprechenden AA-Modi bekommt man sogar bei WoW auf einen VRam-Bedarf von über 300 MB. Ansonsten ist es glaube ich schwer über 100 MB zu kommen.

Von daher kann man nicht pauschal sagen, dass ein bestimmter VRam einem genügt. Da die heutigen Spiele aber doch deutlich mehr und größere Texturen haben, ist es nur möglich Empfehlungen rauszugeben, die sich als sinnvoll erwiesen haben. Für höhere Einstellung und Auflösungen sollte es für ganz aktuelle und zukünftige Spiele schon 512 MB sein, für ältere reichen 256 mit Sicherheit auch noch.

P.S.: Bei den MB Angaben handelt es sich um Werte die mir Rivatuner geliefert hat, falls die allgemein nicht korrekt sein sollten, nehme ich alles zurück ;)