Jump to content

  • Log In with Google      Sign In   
  • Create Account


sharing a texture between multiple processes


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
No replies to this topic

#1 ched59   Members   -  Reputation: 102

Like
0Likes
Like

Posted 27 November 2012 - 03:03 AM

Hi,

I'm working on an application which has the following design:

- several rendering processes which could be seen as several independent applications; each needs to render graphics using the OpenGL API. Each process renders into a texture (as of today using a frame buffer object).
- a kind of arbiter process which owns the actual visible window and "chooses" at a given time the source of the image to actually render into that window (from the different rendering processes). The actual rendering is done inside the arbiter process by using a textured full screen quad; the texture content being selected from one of the rendering processes.

For now, I have this working by downloading, inside each rendering process, the frame buffer object into a shared memory region (shared between the rendering process and the arbiter process). The arbiter process then uploads this content as a texture into a pixel buffer object and renders the full screen quad. However I find this very inefficient performance wise.

Is there any mean to avoid that download/upload sequence and just leave the texture all the time in the GPU memory and get access to it directly from the arbiter process (although it would be created/updated by the rendering process) ? I'm open to any kind of ideas, whatever technology or design change is required (mixing OpenGL with whatever else technology and/or using something different than pixel buffer objects/frame buffer objects).

For information, I'm in control of the source code of each rendering process as well as the arbiter process so I can do whatever I want in each of those. Moreover, one process creates all the others at run time so if there is a need to play with security settings or whatever, this is possible also as all the rendering processes are children from the arbiter process. The only limitations are that I need to keep those seperate processes (and not just threads inside one process) and the rendering processes have to use the OpenGL API for rendering.
Finally, this is using C/C++, targeting Windows XP.

Thanks for your help.

Edouard

Edited by ched59, 27 November 2012 - 03:04 AM.


Sponsor:



Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS