Green Mamba schrieb:
@kisser
Hast du also mal versucht eine 300MB 3D-Textur in einem OpenGL-Kontext in den Grafikram zu laden? Weißt du was dann passiert?
Es wird die Testur wohl in den AGP-RAM ausgelagert werden, wenn sie nicht ins Grafikram passt.
Green Mamba schrieb:
Woher die Applikation weißt was in den Grafikram passt, und was nicht? Weiß die Applikation überhaupt auf welcher Grafikkarte sie läuft, welche Features diese unterstützt, und wie groß der GraKa-Ram ist?
Nein, muss sie ja alles nicht wissen, wird ja alles vom Treiber geregelt...
Richtig, das wird alles vom Treiber geregelt bzw. mittelbar ueber diesen vom Betriebssystem.
Ist im Prinzip dasselbe wie das vom OS veranlasste Auslagern auf die Festplatte, wenn der Hauptspeicher voll ist. Da braucht die Applikation auch nicht eingreifen bzw. die Applikation weiss ueberhaupt nicht, ob sie im Hauptspeicher oder von Festplatte laeuft.
Das einzige was die App. damit zu tun hat ist, dem OS zu sagen, ob ein Speicherbereich ueberhaupt auslagerbar ist oder nicht.
Und bei 3D Anwendungen ist das bzgl. des Grafik-Rams dasselbe, so ist zB. der Framebuffer niemals in das AGP-RAM auslagerbar, Textur- und Vertexdaten hingegen schon.
Aber es entscheidet der Treiber, wann er wieviele Daten in AGP-RAM auslagert, das tut nicht die Applikation.
N3Ro schrieb:
naja jetzt weiß ich ja ungefähr was passiert
bei quake 4 sieht man soweit ich weiß zwischen hohen und max. deteils kaum einen unterschied. bei max deteils werden die texturen nur nicht mehr komprimiert oder?
Richtig, das ist der einzige Unterschied.
bensen schrieb:
@kisser
wie erklärt man da mein obiges problem, wenn der treiber auslagert?
bei quake4 wird trotz vollem vram nichts ausgelagert
bei allen anderen spielen schon
Ich weiss jetzt nicht, welche Problem du meinst, in diesem Thread hast du doch noch garnichts gepostet.
Hast du eine Nvidia Karte? Bei Nvidia bin ich mir nicht sicher, ob die unter OpenGL ueberhaupt AGP-RAM benutzen, der Vidmem-Watcher von nonatainment zeigt mir jedenfalls keinen genutzten AGP-RAM fuer OpenGL Applikationen an. Und in diesem Falle greift dann eben sofort der Swapping Mechanismus ein, es werden Daten aus dem Grafik-RAM in den Hauptspeicher (nicht AGP-Speicher!) ausgelagert und das dadurch frei werdende Grafik-RAM mit den neuen Texturdaten gefuellt. Das passiert fuer jede Textur, die nicht im Grafik-RAM liegt und aber gerade zum Texturieren benoetigt wird. Es wird also richtig langsam.
Deshalb hat man bei der Entwicklung des AGP die direkte Benutzung des Hauptspeichers durch die Grafkkarte implementiert.