>>I do not understand the relationship between the two viewport/channels and 
>>the two physical output ports on the GPU.

Equalizer has no specific concept of a monitor (physical output). If you want 
to place the window on a specific monitor, do it by positioning it at the 
monitor's virtual desktop coordinates. Virtual desktop coordinates work likes 
follows:
a) the primary monitor always has its lower-left corner at position (0, 0)
b) lets assume a primary display resolution of 1280x1024. If your secondary 
monitor is placed at the right side of the primary monitor (you choose this 
setting in Window's display settings), its lower-left corner is placed at 
(1280, 0)
c) assumed, the secondary monitor (also resolution 1280x1024) is placed at the 
left side of the primary, it starts at (-1280, 0)

Use the window's viewport setting in the config file to place the window(s) 
where you need them.

>>I notices that a window is associated with just one piece of P-buffer, Am I 
>>correct ?

I do not understand what you mean with "piece of a P-buffer"


>>If correct, I want to see such kind of description in the Eqalizer code, but 
>>I was not able to find.
>>If you know, would you please show me ?

The real rendering is all done in Channel::drawFrame. Usually, you derive your 
own class from eq::Channel and override drawFrame() with your own rendering 
function. See also:

http://www.equalizergraphics.com/documents/design/taskMethods.html


>> I want each out of the two physical output ports can show half of a big 
>> image on two side-by-side LCD screens.

This should be bo problem at all. The only challenge is, how to setup the 
compunds section of the config, so each window gets half of the frustum, but I 
guess this can be solved using the 'viewport' setting for each compound.

so it would look like:

compound
{
        wall
         {
                #... your wall or projection settings to setup the frustum
         }

        compound
        {
            channel "left_monitor"
            viewport [ 0 0 0.5 1]     # this is using the left half of the 
frustum for this compound
        }

        compound
        {
            channel "right_monitor"
            viewport [ 0.5 0.0 0.5 1]     # this is using the right half of the 
frustum for this compound
        }

}


regards,

Mathias



  ----- Original Message ----- 
  From: [email protected] 
  To: [email protected] 
  Cc: Equalizer Developer List 
  Sent: Thursday, December 18, 2008 11:36 PM
  Subject: One GPU + two channels


  Thanks a lot for your helpful input.

  >>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? 

  Now let us assume one PC, one GPU and one window situation.
  But suppose this window has two viewport / channels in the configuration 
file..

  I do not understand the relationship between the two viewport/channels and 
the two physical output ports on the GPU.
  Most GPU has two physical output ports on the card, some GPU has four 
physical output ports on the single card.
  But I assume each channel/viewport corresponding to one out of the two 
physical output ports.

  I notices that a window is associated with just one piece of P-buffer, Am I 
correct ?
  I want each out of the two physical output ports can show half of a big image 
on two side-by-side LCD screens.

  Therefore I assume that the two channel-drawing  draw the same piece of 
P-buffer sequencially, but to different portion of the P-buffer.

  My perception is correct or NOT ?

  If correct, I want to see such kind of description in the Eqalizer code, but 
I was not able to find.
  If you know, would you please show me ?

  Or you just tell me how to do this one-window + two channel drawing ?
  As I just have one GPU, so I just need one thread or just one pipe for the 
GPU ( is that correct ?)

  Now I think I understand the sample code at 
http://www.changhai.org/articles/technology/programming/opengl3.php

  but that setup just has one channel/view port. I do not know how to extend it 
to adapt to my purpose:

   I want each out of the two physical output ports can show half of a big 
image on two side-by-side LCD screens.


  My question goes internal of Equalizer, not just at the user's application 
end on the Application-and-Equalizer framework.

  Thanks again

  Fei 












  [email protected] wrote: -----


    To: "Equalizer Developer List" <[email protected]>
    From: "Mathias Heyer" <[email protected]>
    Sent by: [email protected]
    Date: 12/18/2008 04:21PM
    Subject: Re: [eq-dev] How to decouple pipes


    Equalizer is using the following terms: 
    1. Node: 
    This is a single computer 
    2. Pipe: 
    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. 
    3. Window: 
    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. 
    4. Channel: 
    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, 
    Mathias 
    ----- Original Message ----- 
      From: [email protected] 
      To: [email protected] 
      Cc: Equalizer Developer List ; [email protected] 
      Sent: Thursday, December 18, 2008 7:37 PM 
      Subject: Re: [eq-dev] How to decouple pipes 


      Dear Mathias: 



      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 ? 





      = 
    _______________________________________________
    eq-dev mailing list
    [email protected]
    http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
    http://www.equalizergraphics.com

  =
_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to