<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Aaron Plattner wrote:
<blockquote cite="mid:20090525165448.GA4910@weasel.nvidia.com"
 type="cite">
  <pre wrap="">On Mon, May 25, 2009 at 07:15:33AM -0700, Jerome Guilmette wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">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?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
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.

  </pre>
</blockquote>
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.<br>
<blockquote cite="mid:20090525165448.GA4910@weasel.nvidia.com"
 type="cite">
  <pre wrap=""></pre>
  <blockquote type="cite">
    <pre wrap="">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?
    </pre>
  </blockquote>
  <pre wrap=""><!---->
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.

  </pre>
</blockquote>
I thought so, but, still, I was hoping for a way to do this. At least,
I know it's not possible.<br>
<br>
I'm just asking if one of you guys might know:<br>
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?<br>
 <br>
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?<br>
<blockquote cite="mid:20090525165448.GA4910@weasel.nvidia.com"
 type="cite">
  <pre wrap=""></pre>
  <blockquote type="cite">
    <pre wrap="">Any inputs would be very much appreciated, might it be a link to more
documentation or a direct answer.
    </pre>
  </blockquote>
</blockquote>
Thank you for your time,<br>
<br>
Jerome<br>
</body>
</html>