PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [OpenGL] VertexBufferObjects


Nasenbaer
2009-10-03, 15:30:43
Soweit ich weiß sind VBOs die derzeit performanteste Variante Geometrien zu zeichnen, vorallem weil die Daten direkt im Grafik-RAM verbleiben.

Aber was ist eigentlich, wenn der VRAM komplett belegt ist und man weiter VBOs anlegen will? Wird dann einfach in den Arbeitspeicher ausgelagert oder gibts nen Fehler?

Gast
2009-10-03, 21:19:25
Wenn ich das richtig in Erinnerung habe entscheidet der Treiber wo die Daten zu liegen kommen, d.h. wenn du ein VBO anlegst kannst du nicht automatisch davon ausgehen dass die Daten wirklich im Graka RAM liegen - deswegen gibst ja auch mit diesen STREAM_READ/DRAW Tokens Hinweise was du mit dem Buffer zu tun gedenkst. Ich würde meinen wenn der Speicher knapp wird kann der Treiber durchaus entscheiden das ganze im CPU RAM zu platzieren.

Coda
2009-10-03, 21:53:02
Denke auch, dass das in den Aperture-Speicher ausgelagert werden kann. Aber normalerweise hat man auch keine hunderte MB an Geometry.

Nasenbaer
2009-10-03, 22:13:37
Ok. Ich arbeite nämlich an ner Studienarbeit bei der ich mit HighRes Modellen zu tun habe. Wieviel Speicher sowas braucht weiß ich aber nich - hab da keine Erfahrung. War auch eher ne prinziepielle Frage.

Aber wenn ich auch Texturen usw. habe - muss man dann selbst ne ordentliche Speicherverwaltung aufbauen damit der VRAM immer gut genutzt wird aber möglichst nicht überläuft oder ist das eher unproblematisch? Denke da an so Spiele wie GTA4. ^^

Coda
2009-10-03, 22:31:28
Klingt mir ein wenig arg viel für eine Studienarbeit. Aber viel Glück ;)

Nasenbaer
2009-10-04, 12:13:24
Klingt mir ein wenig arg viel für eine Studienarbeit. Aber viel Glück ;)
Ne das nach der Speicherverwaltung ist eher ne prinzipielle Frage. :) Texturen brauch ich zwar aber nur als Geometry-Images.

Gast
2009-10-05, 13:59:44
Ok. Ich arbeite nämlich an ner Studienarbeit bei der ich mit HighRes Modellen zu tun habe. Wieviel Speicher sowas braucht weiß ich aber nich - hab da keine Erfahrung. War auch eher ne prinziepielle Frage.

Ich glaube nicht dass du hier in Speicherprobleme kommst. Wie "HighRes" sind denn deine Modelle? Größenordnung 5 Millionen Dreicke? Dann hast du noch keine 50MB Geometriedaten.... ein Klacks für heutige Grakas

Aber wenn ich auch Texturen usw. habe - muss man dann selbst ne ordentliche Speicherverwaltung aufbauen damit der VRAM immer gut genutzt wird aber möglichst nicht überläuft oder ist das eher unproblematisch? Denke da an so Spiele wie GTA4. ^^
Ich denke am effektivsten ist es wenn du das dem Treiber überläßt, der kann das besser. Und deiner Gesundheit ist es auch zuträglich... ;) Du weißt ja, zubviel Ärger macht krank :D

Nasenbaer
2009-10-06, 21:13:10
Jo wollte auch eher wissen wie sowas in aktuellen Spiele gehandhabt wird. Ich mein man muss durch Streaming ja ständig neue Daten laden und alte freigeben. Da wäre es ja unter Umständen clever alte Daten nicht sofort zu verwerfen, wenn diese vielleicht bald wieder gebraucht werden und noch genug VRAM frei ist - aber für sowas braucht man natürlich ne intelligente Logik in Software aber ob man das tatsächlich so macht würd ich gerne wissen. :)

Coda
2009-10-06, 23:10:47
Treiber haben intern dafür wohl auch MRU-Caches. Eigentlich solltest du da nichts machen müssen.

Nasenbaer
2009-10-06, 23:21:17
Treiber haben intern dafür wohl auch MRU-Caches. Eigentlich solltest du da nichts machen müssen.
Ok - umso besser. :)

Coda
2009-10-07, 03:00:54
Ich mein natürlich LRU, sorry.

Nasenbaer
2009-10-07, 20:06:48
Ich mein natürlich LRU, sorry.
Gut jetzt weiß ich auch was du meinst. Ich habs für irgendeine Einhait auf'er GPU gehalten, die ich net kenne aber LRU is ok. :D