PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nVidia - Vram Verbrauch


Gast
2007-12-13, 06:57:34
Eine blöde Frage an die Wissenden?
Was verbraucht mehr Vram, AA oder AF?
Wie ist der Vram Verbrauch zwischen den einzelnen Modi?

Blaze
2007-12-13, 07:02:18
AA verbraucht mehr, viel mehr.

Den genauen Verbrauch wird dir wohl niemand nennen können, das ist von Spiel zu Spiel unterschiedlich.

Ein Max Payne 2 z.B. verbraucht mit 4xAA lange nicht so viel VRAM wie Crysis mit der selben Stufe.

Adam D.
2007-12-13, 07:03:09
Bin technisch nicht auf sehr hohem Niveau, aber AA dürfte deutlich mehr VRAM brauchen als AF - ich glaube sogar, dass der VRAM-Verbrauch beim AF beinahe komplett vernachlässigt werden kann, da sind andere Faktoren wichtiger.

Gast
2007-12-13, 07:24:09
Also kann man mangelnden Vram bei hohen Auflösungen mit geringeren AA Stufen kompensieren. Super. Bei 1680er Auflösung biin ich schon mit 2AA absolut zufrieden. So steht der 512MB Grafikkarte nichts mehr im Wege (besonders für zukünftige Spiele).

K4mPFwUr$t
2007-12-13, 08:14:10
512MB reichen mit 2xAA für zukünftige titel nicht aus.

mit folgender sache kann man den VRAM bedarf für den framebuffer ausrechnen:

auflösung-x * auflösung-y * bittiefe * AA (1 def.) : 8 : 1024 : 1024 = VRAM für framebuffer.

am besten kann man das per excel/OOo calc tabelle sehen.

AF frisst ergo kaum VRAM, da nur der texturfilter besser wird. die texturen liegen ja in voller auflösung im VRAM und haben ohne 3d render noch keine mipmap. die wird erst beim rendern festgelegt (bi, tri, AF, af-tri)

Gast
2007-12-13, 09:37:21
Die Formel ist falsch, weil die Z-Buffer und der Frontbuffer fehlen.

K4mPFwUr$t
2007-12-13, 09:51:08
in wie fern müsste das ganze dann aussehen? bin kein experte in dem gebiet, von daher bin ich offen für eine korrektur ;D

Gast
2007-12-13, 09:58:23
auflösung-x * auflösung-y * bittiefe * (2*AA+1) : 8 : 1024 : 1024 = VRAM für framebuffer


(2*AA = Color-Backbuffer + Z-Backbuffer (hier gleiche Bittiefe angenommen, also 32Bit Z), diese existieren pro Sample)

"+1" = Color-Frontbuffer (einen Z-Frontbuffer gibt es ja nicht)

K4mPFwUr$t
2007-12-13, 10:38:12
hmm, mir tut sich gerade eine frage beim buffer auf.

bsp:

1xAA 1280 x 1024 x 8 ((((2 x (32 + 32)) x 1) + 1) : 8 : 1024 : 1024 = VRAM im MByte

irgendwo muss man ja unterscheiden bei den beiden buffertiefen, oder ist der verbrauch egal bei unterschiedlichen buffertiefen?

Spasstiger
2007-12-13, 10:47:55
Ist für AF überhaupt mehr VRAM erforderlich? Liegen die verschiedenen Mipmaps nicht eh im Speicher unabhängig davon, ob nur trilineares Filtern oder anisotropes Filtern eingesetzt wird. Bei AF wird doch einfach nur öfters auf den Speicher zugegriffen.

Wegen eurer Rechnerei: 4xMSAA braucht nicht viermal soviel Speicher wie noAA. Es kommen inzwischen schon sehr effiziente Kompressionsverfahren für die Speicherung der MSAA-Samples zum Einsatz. Ich kann es nicht genau beziffern, aber ich denke mal, dass 4xMSAA den Speicherbedarf für den Frame- und z-Buffer nur um ~10% in typischen Szenen heutiger Spiele erhöht.
Ein vierfacher Speicherverbrauch durch 4xMSAA würde ja auch den vierfachen Bandbreitenbedarf bedeuten und den hat man angesichts der geringen fps-Einbrüche sicherlich nicht.

Gast
2007-12-13, 11:31:14
Wegen eurer Rechnerei: 4xMSAA braucht nicht viermal soviel Speicher wie noAA.

Doch, die braucht es.

Spasstiger
2007-12-13, 13:15:02
Doch, die braucht es.
Man nutzt den Umstand aus, dass beim Multisampling innerhalb eines Pixels alle Subpixel den gleichen Farbwert aufweisen (jedenfalls sofern das Pixel vollständig im Polygon liegt.) Radeon ab 9500 bzw. GeForce FX ab 5600 schreiben diese Farbe dann nur noch ein mal in den Framebuffer, sowie einen Vermerk dass diese Farbe für alle Subpixel gilt. Wird dieses Pixel im Laufe des Renderings von einer sichtbaren Polygon-Kante bedeckt, schreibt der Chip ganz normal die Farbsamples in die zugehörigen Framebuffer.
Quelle: http://www.3dcenter.org/artikel/multisampling_anti-aliasing/index5.php

Das war allerdings Stand 2003, afaik gibt es inzwischen noch effizientere MSAA-Kompression.


/EDIT: Ok, 2003 war es auf jeden Fall auch noch so, dass immer ganze MSAA-Buffer allokiert wurden aus Gründen der Speicherorganisation bzw -addressierung. Nur wurden halt nicht alle Speicherstellen überschrieben, wenn komprimierte Pixel vorlagen. Trotzdem entsteht in dem Fall natürlich bei NxMSAA der N-fache Speicherverbrauch (plus mind. ein Bit pro Pixel für den Kompressionszustand).
Hat sich das bis heute nicht geändert? Ist doch alles nur eine Frage der Adressierung, ob man Speicher verschwendet oder nicht. Muss man halt hardwareseitig Paging betreiben.

Gast
2007-12-13, 14:26:03
Multisample Buffer kann man auch für andere Dinge als AA gebrauchen und dafür müssen die Buffer in voller Grösse angelegt werden.

Spasstiger
2007-12-13, 14:31:00
Multisample Buffer kann man auch für andere Dinge als AA gebrauchen und dafür müssen die Buffer in voller Grösse angelegt werden.
Das wäre einer effizienten Implementierung ja egal. Mit Speicheradressierung per Paging könnte man echte Kompression (also auch im Speicher) immer anwenden, wenn sie sinnvoll ist.

Der_Korken
2007-12-13, 15:54:51
Ich finde, man kann auf keinen Fall pauschal aussagen, wieviel VRAM ein bestimmter AA-Modus braucht, da das doch sehr extrem vom Spiel abhängt. Bei UT3 zB verbraucht 4xAA mal eben 150 MB mehr Speicher, was aber keinesfalls bedeutet, dass es bei jedem Spiel so ist. Schließlich gab es AA ja vor Grafikkarten mit soviel Speicher.
Aus eigener Erfahrung würde ich behaupten, dass ein Spiel einen gewissen Grundverbrauch hat, abhängig von der Auflösung. Bei 4xAA wird dieser Grundverbrauch vervierfacht, da ja theoretisch die vierfache Auflösung vorliegt. Beim Gesamtverbrauch spielen aber auch Texturen in großen Teilen rein, wobei die Bildschirmauflösung den Speicherverbrauch von Texturen nicht beeinflusst.

Gast
2007-12-13, 17:09:09
Ich finde, man kann auf keinen Fall pauschal aussagen, wieviel VRAM ein bestimmter AA-Modus braucht, da das doch sehr extrem vom Spiel abhängt.

Das kann man pauschal sagen (siehe Rechnung oben), weil es ganz und gar nicht vom Spiel abhängt.

deekey777
2007-12-13, 17:51:07
Memory useage of the framebuffers (http://forum.beyond3d.com/showthread.php?t=45875)
Bitte alles lesen. :)

DerRob
2007-12-13, 18:00:46
AF frisst ergo kaum VRAM, da nur der texturfilter besser wird. die texturen liegen ja in voller auflösung im VRAM und haben ohne 3d render noch keine mipmap. die wird erst beim rendern festgelegt (bi, tri, AF, af-tri)
sobald bi, tri, af usw. eingesetzt wird, müssen die einzelnen mipmap-stufen doch schon existieren. und bei jedem einzelnen texturzugriff erst die jeweilige mipmap-stufe zu berechnen würde doch nur "unnötig" leistung kosten. also werden die mipmap-stufen IMO schon berechnet, sobald die textur in den grafikspeicher geladen wird, bzw. sind sogar schon in der texturdatei auf der festplatte vorhanden. zumindest bei oblivion sind in den dds-textur-dateien schon die einzelnen mipmap-stufen gespeichert.

K4mPFwUr$t
2007-12-13, 18:18:04
@derrob
kann sein das es von content zu content unterschiedlich ist. z.b bei cod4 kann man mipmaps entfernen.
und die skins haben wie bei source auch noch kein mipmap drauf.

@deekey777
danke für den link =)