PDA

Visualizza la versione completa : [C] Allocare memoria di una scheda video


XWolverineX
05-11-2006, 18:57
oramai tutte le schede video hanno una memoria RAM.
Sarebbe possibile, forzando in qualche modo, effettuare una bella malloc e prendere un po di memoria da li?

oregon
05-11-2006, 18:58
No ... e non avrebbe senso ... :master:

XWolverineX
05-11-2006, 19:15
Perchè? mettiamo caso noto che la memoria di sistema è agli sgoccioli...perchè non prenderne un po dalla scheda video e fare dei calcoli?

oregon
05-11-2006, 19:24
Di questi tempi la RAM non costa piu' molto ... compra un altro Giga e lascia stare la scheda video ... :)

XWolverineX
05-11-2006, 20:44
Non fare il sarcastico, ho due giga di Ram, non è questo il punto.
E' una curiosità, un pallino che ora ho in testa.

MItaly
05-11-2006, 22:56
Originariamente inviato da XWolverineX
Perchè? mettiamo caso noto che la memoria di sistema è agli sgoccioli...perchè non prenderne un po dalla scheda video e fare dei calcoli?
E perché non prendere un po' della memoria dell'utente, già che siamo in giro? Perché la memoria della scheda grafica è usata solo dal processore grafico per memorizzarci la sua roba, e non credo nemmeno che sussista questa possibilità per le applicazioni di livello 3 (user mode); al limite potrebbe trattarsi di un'operazione possibile solo per i driver di periferica (che operano in kernel mode), ma si tratta di una possibilità che credo dipenda strettamente dal modello di scheda video in uso.

XWolverineX
05-11-2006, 23:10
Io avevo pensato una cosa del genere...
Utilizzando Direct3D9, in modalità hardware (ossia utilizzare la scheda video) è possibile creare un vertex buffer.
La funzione della sua creazione prende un valore size_t che dice appunto quanto deve essere grande questo buffer.
E' possibile poi prendere un puntatore a void* del buffer e farci quello che vuoi.
con un memcpy è possibile quindi copiare e far altro...
Per ora ho in mente solo questo.

MItaly
05-11-2006, 23:15
Mi puzza un po' come faccenda... voglio dire, il puntatore che restituisci come fa ad essere alla memoria della scheda video? I puntatori Win32, che io sappia, possono essere solo all'area di memoria assegnata al processo.

Marcoski
05-11-2006, 23:19
Originariamente inviato da MItaly
Mi puzza un po' come faccenda... voglio dire, il puntatore che restituisci come fa ad essere alla memoria della scheda video? I puntatori Win32, che io sappia, possono essere solo all'area di memoria assegnata al processo.

Non solo quelli win32 :)

oregon
06-11-2006, 00:28
Quel buffer viene allocato dal kernel nella memoria del sistema, non in quella della scheda.

Loading