I would love to have something like this working. However, everyone I have spoken to tells me that the protected memory architecture and driver model currently used forbids this sort of sharing. Im not smart enough/knowledgeable enough to know all the details of why, but im also stubborn enough to know there *has* to be a work around. i wrote that weird little plugin as a one potential (but kind of an ugly hack ish) work around.

If you can get that working (inter app GPU resource sharing) - I would ABSOLUTELY love to know what youve done.

Id imagine some sort of API would be required to know the memory locations of the resources on the GPU (ie, this offset / location for texture a, etc), and that information would have to be constantly synced between apps - but I have no idea even where to begin for those sorts of endeavors.

Perhaps a standalone shim app that acts as a GPU server/resource allocator, which handles 'locking' issues of who has read/write to a texture/buffer to alleviate potential conflicts? No app would then actually own the resources, but would send them and recieve them from the shim layer? That sounds awefully complicated, and would require re- thinking of the whole pipeline...

On Jul 1, 2008, at 11:55 AM, Christopher Wright wrote:

I'd like to know if my opengl app can be modified to render to an offscreen CVOpenGLBuffer, then is it possible to have another application grab the contents of this Opengl buffer somehow by using Quartz Composer?

My goal is to use hardware accelerated opengl to render to an offscreen buffer, and have another application read/display this buffer, but have the pixels stay on the GPU.

If this is possible then can anyone provide some direction/help on how this could be implemented ?


You'll want to look into OpenGL Context Sharing. This works for intra-application resource sharing (i.e. within the same program), but maybe not for inter-app sharing (i.e. across different applications). I've never really seen trans-app texture sharing, so I don't know if that's possible or not -- if not, why not just wrap the two applications into one, and make it multithreaded? (This, of course, isn't practical if you don't have the ability to rewrite parts of the applications...)

Anyway, here's a link: 
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_contexts/chapter_7_section_4.html
--
[ christopher wright ]
[EMAIL PROTECTED]
http://kineme.net/

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected] )
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/doktorp%40mac.com

This email sent to [EMAIL PROTECTED]

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to