Aaron Plattner wrote:
On Mon, May 25, 2009 at 07:15:33AM -0700, Jerome Guilmette wrote:
  
Hi everyone,

I hope this is the good list to send my question to for it is a rather a
specific matter. All my tests were done using an NVIDIA GeForce 8600M, driver
version 180.29, under the Fedora 10 OS.

Here is my issue: I have a program that takes a few screenshots of an
application (window) and saves it into a file.  I discovered that, while
taking a snapshot of an application running an openGL viewport, i.e.
glxgears, and switching to another X server, I was not able to save the images
in their integrity, the openGL viewport wasn't displayed. So the raw content
of an openGL viewport isn't available while we are in another X Server than
the one the program is running into. So would it mean that only one openGL
context per X server is possible?
    

I'm not sure how you concluded that only one context per X server is possible
from the fact that you can't access a window's pixels when the server is not on
the active virtual terminal.  You can definitely have multiple contexts per X
server.

  
I'm sorry, I didn't write what I wanted to, my question would have been more appropriate that way: So would it mean that we can only have active openGL contexts on the server that is currently active? As you answered, no openGL rendering can be done on an inactive X server.

  
In a multiple X sessions context, is there a way to have access to the
rendered openGL viewport pixels while being currently on a different X server
using standard X functions? In any case, what exactly are the mechanisms in
place?
    

No, you can't do that.  When you VT-switch away from the current X server, all
windows are clipped so that no rendering occurs to them, and OpenGL processing
is suspended.  The non-active X server is not supposed to touch the hardware at
all, to allow the active X server to use it.

  
I thought so, but, still, I was hoping for a way to do this. At least, I know it's not possible.

I'm just asking if one of you guys might know:
1 -  Is there any future plans for a way to access the hardware on multiple X sessions?  What is the exact reason why only the active X server have access to the hardware through openGL?
 
2 - In this very case, I am bind to X, but, in a case not involving any X, nothing can't stop us from using another way than openGL to access the hardware on different X servers using, by example, CUDA?

  
Any inputs would be very much appreciated, might it be a link to more
documentation or a direct answer.
    
Thank you for your time,

Jerome
_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to