I currently don't have the hardware to deal with it, so it was more a theoretical question. Moreover, the second card doesn't have to be a graphics card, so PBO has no meaning for it.
Anyway, since I know nothing about PBOs, I'll try to dig into it a little, and if they are easier to map to PCIE address, I'll share this knowledge. Same if one day I'll use multiple graphics card. Thanks again, Guy. ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert Osfield Sent: Monday, April 07, 2008 6:16 PM To: OpenSceneGraph Users Subject: Re: [osg-users] nVidia card textures memory Hi Guy, I don't know of any extensions for mapping/copying memory from one card to another directly. NVidia will have such code in their drivers, but its something that is hidden from the OpenGL. However, there are still OpenGL features that can help out a little. First up Frame Buffer Objects are perfect for capturing images, the OSG has full support for FBO's and its pretty straight forward to use just by setting a single line in osg::Camera. See osgdistortion or osgprerender examples. Next up to copy the data from one card to another you'll need to do a read pixels, which ordinarily is pretty slow, so here it'd be best to use Pixel Buffer Objects , agaiin its something the OSG supports, but so far I've only ever used it for sending imagery to a graphics card. You will also need a second PBO to get the data to the second card. I'm afraid there isn't an OSG example showing how to do this part so you are one your own. If you get it all working then it'd be a nice OSG example to have is you fancy contributing the final solution back. Robert. On Mon, Apr 7, 2008 at 3:20 PM, Guy <[EMAIL PROTECTED]> wrote: Hello, First I know my question has nothing to do with OSG, but a lot of OSG users might come across this subject and any guidance would be most appreciated. The questions I ask regard the nVidia textures memory and how to access it. 1. I'd like to pass data from nVidia texture memory to other card, on the PCI-Express bus. Is it possible and how to get Texture memory address and to map it to PCIE address? Or if there is a possibility to make the card render to memory address which is already mapped to PCIE address? 2. I'd like to run some image processing code on the whole screen (no matter what applications are running on and what they display). For that matter, I need to get the screen "image", run my algorithm and display the result full screen. The problems with that are: 2.1 After one frame that *I* draw, the next time I'll get the screen image it might include changes *I* have done to the data. 2.2 Getting the screen data is slow. So the more complicate way to do it is to make all the applications running, draw to an off-screen memory buffer, process that buffer and display it. Or "plug-in" image processing code, somewhere on the card, after the driver drawing call functions and before the data it presented on screen. My questions are: 1. Is it possible to access the display buffer data on the nVidia card "just before" it is displayed on screen? (plug-in my code) 2. Would setting the apps drawing to n'th nVidia virtual desktop to that trick? And then again, does the nVidia card has address of memory buffer for each n'th virtual desktop? Thanks, Guy. _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or g
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

