Grafikkarten Speicher

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

blitzgamer2000

Betreff: Grafikkarten Speicher

BeitragMi, Jul 19, 2006 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Jedes Bild, das ich mit Loadimage Lade wird doch im Grafikkartenspeicher gespeichert oder?
Was passiert wenn der Speicher voll ist?
Wie groß ist das Bild im speicher, wenn es sich um eine Bmp datei handelt?
Online Space Shooter V.1 90%
RPG Game V.1 40%
RPG Map Editor V.3 100%

Spikespine

BeitragMi, Jul 19, 2006 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.
Schau dir mal den Befehl ql:AvailVidMem an. Er ermittelt den zur verfügung stehenden Grafikspeicher.
Damit kannst du natürlich auch den Grafikspeicherverbrauch deiner Bilder anschauen, indem du die Differenz aus dem Grafikspeicher nach und vor dem Laden bildest.
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

BtbN

BeitragMi, Jul 19, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Welches Format das Bild hat ist für die GraKa vollkommen egal.
Dort werden die Bilder immer nur in einem PixelArray gespeichert.
Ob das nun ein BMP,PNG oder JPG war, kann man dann nichtmehr erkennen.

Der Wanderer

BeitragMi, Jul 19, 2006 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Verbrauch ist Höhe*Breite*BytesProPixel.

wobei BytesProPixel typischerweise 3 (RGB) oder 4 (ARGB) ist.

Wenn nicht genug Speicher da ist, wird vermutlich geswapped.
Wobei ich auch vermute, dass die Bilder nicht im Graka speicher liegen, denn dann wird es schwierig mit Effekten, dafür müsste man von Graka wieder lesen, und das ist elend langsam bei AGP, wobei schreiben auf Graka sehr schnell ist. Aber wie es in Blitz genau gemacht ist weiss ich nicht.
 

Dreamora

BeitragMi, Jul 19, 2006 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
1. bilder landen nicht im Grafikspeicher. Nur Texturen und auch diese landen beim Laden nur dort, wenn sie mit der VRAM Flag geladen werden (in diesem Falle verbleiben sie auch die ganze Zeit dort, was texturen sonst nicht tun).
Ansonsten ist eine Textur nur im Grafikspeicher wenn sie gerendert wird (oder bei einem vorherigen Rendern gebraucht wurde und seither nichts anderes den Speicher brauchte)
Ansonsten sind Texturen im SystemRAM, denn DX sendet nur die Texturen in den VRAM die dort gebraucht werden.

2. Wenn mehr VRAM zum rendern benötigt wird, als vorhanden ist, dann bekommst du einen Memory Access Violation.

3. Grösse im Grafikspeicher: Wie schon bemerkt, immer Höhe * Breite * Farbtiefe des Grafikcontexts (also 2 oder 4 byte). Eine 512x512 Textur ist bei 32Bit 1MB VRAM gross.

Hoffe das hilft dir und beantwortet alle deine Fragen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

AMY

BeitragFr, Aug 04, 2006 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
@ Dreamora
bei 2tens liegst du falsch. Wenn du zu wenig VRam hast wird der normale RAM benutzt. Und wenn der normale RAM voll ist wird es in der Windows auslagerungsdatei ausgelagert. die unter c:\pagefile.sys zu finden ist. (versteckte systemdatei)
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read!
 

Dreamora

BeitragSa, Aug 05, 2006 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wird zum halten der Texturen benutzt.
Aber zum Rendern der Szene müssen die Texturen explizit in den VRAM passen, sonst gibts MAV weil die GPU nur auf Daten im VRAM zugreifen kann.

Aber mit Blitz 1.97 sollte das dank DDS support nu wirklich kein Problem mehr sein Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group