Michael Gold wrote:
| 
|  - Application wants to render to windows on two seperate displays, A and B.
|  - A is local to the app, B is remote
|  - Both servers support extension GL_EXT_foo
|  - App queries glFooEXT() from GLX client - succeeds
|  - App queries extension string from server B
|  - App calls glFooEXT() when trying to render to B
| 
| This will fail if the local client is unaware of the protocol for
| glFooEXT(), and there is _no_ way for the app to predict this.

I'm not sure I follow your example, but so far I don't believe there's
a problem.

The GLX extension-query mechanism returns the intersection of the
extensions supported by the server and the extensions supported by the
local GLX encoder.  So there's no way for a client to be told that a
remote extension exists if the local GLX encoder is unable to generate
the protocol.

As for the function pointers, I wouldn't expect any substantial
difference between the local and remote cases.  For a remote context,
the local GLX encoder just presents the same function dispatch table
that a local driver would present.  If the client app calls a function
that the GLX encoder doesn't support, then it gets the same behavior
that it would if it called a function that a local driver doesn't
support.  (No-op or abort(), depending on the outcome of our
investigations into calling sequences.)

What have I missed?

Allen

Reply via email to