[eq-dev] How to decouple pipes
mheyer at 3dinteractive.de
Thu Dec 18 22:21:49 CET 2008
Equalizer is using the following terms:
This is a single computer
A pipe usually corresponds to one GPU. But you are also allowed to create multiple pipes per node, even though you might have just one GPU in that machine. For each pipe, a thread is created. This means, all pipes on one node can render in parallel. If you want/need, you can change this threading model, though. Having multiple pipes on just one GPU is possible, but (usually) pointless.
Each pipe can have one ore more windows. Each window can have its own pixelformat (and therefore has it own rendering context). The pipe's thread will sequentially visit all windows of the pipe. A window can also be a PBuffer (you can change this with the window's attributes). The only difference between a "classic" window and a pbuffer is, that the window is visible, while the pbuffer is invisible (i.e. offscreen). Also, a pbuffer can have a non-displayable color format (like Float16, but I don't know if Equalizer supports this yet). The size and position of the window is controlled via its 'viewport' setting. For pbuffers, the position will be ignored.
A channel is a (sub-)region of a window where the actual rendering will happen. The position and size of the channels is controlled via its 'viewport' setting, in relation to the window/pbuffer. You can have multiple channels per window, if needed. The pipe-thread will visit each channel of each window sequentially.
>> 1. whether these two channel-drawing action are implemented in two seperate threads ?
Channel drawing _only_ happens in separate threads, if the channels belong to separate pipes.
>>2. Could you show me how these two channels share the same piece of P-buffer ?
I don't know want you want to achieve? Why should two channels render into the same region of the pbuffer?
I hope, I could help a bit,
----- Original Message -----
From: wangfeiz at notes.udayton.edu
To: mheyer at 3dinteractive.de
Cc: Equalizer Developer List ; eilemann at gmail.com
Sent: Thursday, December 18, 2008 7:37 PM
Subject: Re: [eq-dev] How to decouple pipes
Thanks for your suggestion for the one GPU , but with two viewport / channel configuration.
I am reading the source code of Equalizer, unfortunately I just understand those code partially.
I found that one window is associated /assigned a piece of p-buffer.
So I assume that the two channels share the same piece of p-buffer.
Then I assume that each channel draws a portion of this p-buffer respectively.
My questions are :
1. whether these two channel-drawing action are implemented in two seperate threads ?
2. Could you show me how these two channels share the same piece of P-buffer ? Could you show me which .cpp file talk about this mechanism?
3. I am always confused with window/context/channel, Could you suggest any book for me about these topic ?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the eq-dev