PDA

View Full Version : [C++/CUDA]Mostrare un'immagine in VRAM in una finestra?


Tommo
01-03-2009, 17:17
Salve,
stavo sperimentando un rendersystem in CUDA, per valutare la fattibilità di un rasterizer fatto senza DirectX/OpenGL...
ma mi sono scontrato con un primo scoglio: per quanto sembri intuitivo, non ho modo di convincere Win a mostrare il mio frame buffer in una finestra se non passando attraverso DirectX/OpenGL.
Il che è davvero strano, perchè il framebuffer è già formattato, e basterebbe mostrarlo sullo schermo as-is, senza interventi da parte di alcunchè.

Di alternative ce ne sarebbero, ma passano per il processore e obbligano a costossimi trasferimenti di dati dalla scheda video alla CPU...
Per cui, la domanda è: come fare a mostrare a schermo, in maniera continuativa, un buffer prodotto dalla GPU che risiede nella VRAM?:mc:

Grazie mille:stordita:

marco.r
02-03-2009, 00:05
Se non ricordo male, devi per forza passare per OpenGL o DirectX.
La cosa non mi sembra irragionevole, dato che CUDA e' pensato per fare i conti, e non per gestire la visualizzazione.

Tommo
02-03-2009, 10:05
Temo tu abbia ragione, e quindi mi son messo a scrivere un output in OpenGL ben isolato... peccato che il codice sia più lungo di tutto il resto del programma :asd:

Cmq mi pare strana come scelta, capisco che serva a fare calcoli puri, ma dato che loro stessi premono per il "visual computing", e dato che il 90% delle device CUDA sono schede video standard, non vedo perchè non c'è manco un'estensione per fare quello che DX fa da sempre.:stordita:

Una curiosità: ma OGL e DX, come fanno a mostrare l'immagine in una finestra?
E altre robe software tipo Java o Flash?
Non potrei copiare il loro metodo?