<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16788" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>
<DIV>&gt;&gt;I do not understand the relationship between the two 
viewport/channels and the two physical output ports on the GPU.</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>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:</FONT></DIV>
<DIV><FONT face=Arial size=2>a) the primary monitor always has its lower-left 
corner at position (0, 0)</FONT></DIV>
<DIV><FONT face=Arial size=2>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)</FONT></DIV>
<DIV><FONT face=Arial size=2>c) assumed, the secondary monitor (also resolution 
1280x1024) is placed at the left side of the primary, it starts at (-1280, 
0)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Use the window's viewport setting in the config 
file to place the window(s) where you need them.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&gt;&gt;I notices that a window is associated with 
just one piece of P-buffer, Am I correct ?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I do not understand what you mean with "piece of a 
P-buffer"</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>
<DIV>&gt;&gt;If correct, I want to see such kind of description in the Eqalizer 
code, but I was not able to find.</DIV>
<DIV>&gt;&gt;If you know, would you please show me ?</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>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:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><A 
href="http://www.equalizergraphics.com/documents/design/taskMethods.html">http://www.equalizergraphics.com/documents/design/taskMethods.html</A></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&gt;&gt;&nbsp;I want each out of the two physical 
output ports can show half of a big image on two side-by-side LCD 
screens.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>This should be bo problem at all. The only <FONT 
face="Times New Roman" size=3>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.</FONT></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>so it would look like:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>compound</FONT></DIV>
<DIV><FONT face=Arial size=2>{</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
wall</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
{</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #... your wall or projection settings to 
setup the frustum</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 
}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
compound</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
{</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; channel "left_monitor"</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; viewport [ 0 0 0.5 1]&nbsp;&nbsp;&nbsp;&nbsp; # this is using 
the left half of the frustum for this compound</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
compound</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
{</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; channel "right_monitor"</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; viewport [&nbsp;0.5 0.0 0.5 1]&nbsp;&nbsp;&nbsp;&nbsp; # this 
is using the&nbsp;right half of the frustum for this compound</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}</FONT></DIV></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>regards,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Mathias</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></DIV></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=wangfeiz@notes.udayton.edu 
  href="mailto:wangfeiz@notes.udayton.edu">wangfeiz@notes.udayton.edu</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=mheyer@3dinteractive.de 
  href="mailto:mheyer@3dinteractive.de">mheyer@3dinteractive.de</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=eq-dev@equalizergraphics.com 
  href="mailto:eq-dev@equalizergraphics.com">Equalizer Developer List</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, December 18, 2008 11:36 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> One GPU + two channels</DIV>
  <DIV><BR></DIV><FONT 
  face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size=2>
  <DIV>Thanks a lot for your helpful input.</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>&gt;&gt;2. Could you show me how these two channels share the same piece 
  of P-buffer ? </DIV>
  <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
  size=2></FONT></DIV>
  <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
  size=2>I don't know want you want to achieve? Why should two channels render 
  into the same region of the pbuffer? </FONT></DIV>
  <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
  size=2></FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Now let us assume one PC, one GPU and one window situation.</DIV>
  <DIV>But suppose this window has two viewport / channels in the configuration 
  file..</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>I do not understand the relationship between the two viewport/channels 
  and the two physical output ports on the GPU.</DIV>
  <DIV>Most GPU has two physical output ports on the card, some GPU has four 
  physical output ports on the single card.</DIV>
  <DIV>But I assume each channel/viewport corresponding to one out of the two 
  physical output ports.</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>I notices that a window is associated with just one piece of P-buffer, Am 
  I correct ?</DIV>
  <DIV>I want each out of the two physical output ports can show half of a big 
  image on two side-by-side LCD screens.</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Therefore I assume that the two channel-drawing &nbsp;draw the same piece 
  of P-buffer sequencially, but to different portion of the P-buffer.</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>My perception is correct or NOT ?</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>If correct, I want to see such kind of description in the Eqalizer code, 
  but I was not able to find.</DIV>
  <DIV>If you know, would you please show me ?</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Or you just tell me how to do this one-window + two channel drawing 
  ?</DIV>
  <DIV>As I just have one GPU, so I just need&nbsp;one thread or just one pipe 
  for the GPU ( is that correct ?)</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Now I think I understand the sample code at <A 
  href="http://www.changhai.org/articles/technology/programming/opengl3.php" 
  target=blank>http://www.changhai.org/articles/technology/programming/opengl3.php</A></DIV>
  <DIV>&nbsp;</DIV>
  <DIV>but that setup just has one channel/view port. I do not know how to 
  extend it to adapt to my purpose:</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>&nbsp;I want each out of the two physical output ports can show half of a 
  big image on two side-by-side LCD screens.</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>My question goes internal of Equalizer, not just at the <FONT 
  color=#0000cc>user's application end</FONT> on the <FONT 
  color=#ff0000>Application-and-Equalizer framework.</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Thanks again</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Fei </DIV>
  <DIV>&nbsp;</DIV>
  <DIV>&nbsp;</DIV>
  <P>&nbsp;</P>
  <P>&nbsp;</P>
  <P>&nbsp;</P>
  <P>&nbsp;</P>
  <DIV><BR></DIV><FONT color=#990099>-----eq-dev-bounces@equalizergraphics.com 
  wrote: -----<BR><BR></FONT>
  <BLOCKQUOTE 
  style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">To: 
    "Equalizer Developer List" &lt;eq-dev@equalizergraphics.com&gt;<BR>From: 
    "Mathias Heyer" &lt;mheyer@3dinteractive.de&gt;<BR>Sent by: 
    eq-dev-bounces@equalizergraphics.com<BR>Date: 12/18/2008 04:21PM<BR>Subject: 
    Re: [eq-dev] How to decouple pipes<BR><BR>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>Equalizer is using the following terms: </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>1. Node: </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>This is a single computer </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>2. Pipe: </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>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. </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>3. Window: </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>Each pipe can have one ore more windows. Each&nbsp;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. </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>4. Channel: </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>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. </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>&gt;&gt; 1. whether these two channel-drawing action are implemented 
    in two seperate threads ? </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>Channel drawing _only_ happens in separate threads, if the channels 
    belong to separate pipes. </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV>&gt;&gt;2. Could you show me how these two channels share the same 
    piece of P-buffer ? </DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>I don't know want you want to achieve? Why should two channels render 
    into the same region of the pbuffer? </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>I hope, I could help a bit, </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2>Mathias </FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV><FONT face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" 
    size=2></FONT></DIV>
    <DIV>----- Original Message ----- </DIV>
    <BLOCKQUOTE 
    style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
      <DIV 
      style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From: 
      </B><A title=wangfeiz@notes.udayton.edu 
      href="mailto:wangfeiz@notes.udayton.edu" 
      target=blank>wangfeiz@notes.udayton.edu </A></DIV>
      <DIV style="FONT: 10pt arial"><B>To: </B><A title=mheyer@3dinteractive.de 
      href="mailto:mheyer@3dinteractive.de" target=blank>mheyer@3dinteractive.de 
      </A></DIV>
      <DIV style="FONT: 10pt arial"><B>Cc: </B><A 
      title=eq-dev@equalizergraphics.com 
      href="mailto:eq-dev@equalizergraphics.com" target=blank>Equalizer 
      Developer List </A>; <A title=eilemann@gmail.com 
      href="mailto:eilemann@gmail.com" target=blank>eilemann@gmail.com 
</A></DIV>
      <DIV style="FONT: 10pt arial"><B>Sent: </B>Thursday, December 18, 2008 
      7:37 PM </DIV>
      <DIV style="FONT: 10pt arial"><B>Subject: </B>Re: [eq-dev] How to decouple 
      pipes </DIV>
      <DIV><BR></DIV><FONT 
      face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size=2><FONT 
      face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size=2>
      <P style="MARGIN: 0px">Dear Mathias: </P>
      <P style="MARGIN: 0px">&nbsp;</P>
      <P style="MARGIN: 0px">Thanks for your suggestion for the one GPU , but 
      with two viewport / channel configuration. </P>
      <P style="MARGIN: 0px">&nbsp;I am reading the source code of Equalizer, 
      unfortunately I just understand those code partially. </P>
      <P style="MARGIN: 0px">&nbsp;</P>
      <P style="MARGIN: 0px">I found that one window is associated /assigned a 
      piece of p-buffer. </P>
      <P style="MARGIN: 0px">So I assume that the two channels share the same 
      piece of p-buffer. </P>
      <P style="MARGIN: 0px">Then I assume that each channel draws a portion of 
      this p-buffer respectively. </P>
      <P style="MARGIN: 0px">&nbsp;</P>
      <P style="MARGIN: 0px">My questions are : </P>
      <P style="MARGIN: 0px">&nbsp;</P>
      <P style="MARGIN: 0px">1. whether these two channel-drawing action are 
      implemented in two seperate threads ? </P>
      <P style="MARGIN: 0px">2. Could you show me how these two channels share 
      the same piece of P-buffer ? Could you show me which&nbsp; .cpp file talk 
      about this mechanism? </P>
      <P style="MARGIN: 0px">3. I am always confused with 
      window/context/channel, Could you suggest any book for me about these 
      topic ? </P>
      <P style="MARGIN: 0px">&nbsp;</P>
      <P style="MARGIN: 0px">&nbsp;</P></FONT></FONT><FONT 
      face="Default Serif,Times New Roman,Times,serif" size=3>= 
    </FONT></BLOCKQUOTE></FONT></DIV><FONT 
    face="Default Monospace,Courier New,Courier,monospace" 
    size=2>_______________________________________________<BR>eq-dev mailing 
    list<BR>eq-dev@equalizergraphics.com<BR><A 
    href="http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev" 
    target=blank>http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev</A><BR><A 
    href="http://www.equalizergraphics.com/" 
    target=blank>http://www.equalizergraphics.com</A></FONT></BLOCKQUOTE><BR></FONT>=</BLOCKQUOTE></BODY></HTML>