<div>I am not sure I fully understand the ramifications of having a list of ram headers.  Is the intent to have one additional ram header per additional head? </div>
<div> </div>
<div>For multiple heads to work correctly, I believe:</div>
<div>1) the framebuffer must be contiguous</div>
<div>2) the entire framebuffer must be accessible to all heads, and </div>
<div>3) each head must be able to be abitrarily located in that framebuffer.  </div>
<div> </div>
<div>Unless I misunderstand what you are doing, I am concerned that multiple ram headers won&#39;t be flexible enough.</div>
<div> </div>
<div>Noel</div>
<div><br> </div>
<div class="gmail_quote">On Wed, Apr 18, 2012 at 4:53 AM, Alon Levy <span dir="ltr">&lt;<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">Hi,<br><br> I&#39;m just starting to work on this, wanted to solicit some feedback. I<br> am thinking that the simplest way to implement multiple heads would be:<br>
<br> Add additional QXLRam headers back to back on the vram bar.<br> Add a new flag QXL_RAM_FLAG_MORE_HEADS, set it on all but the last<br> (largest offset into bar) header.<br> Don&#39;t add new fields to QXLRom or QXLRam.<br>
 Update QXLRom.ram_header_offset to point to the first (smallest<br> offset) header.<br><br>New driver that notices the QXL_RAM_FLAG_MORE_HEADS will count the<br>headers (it cannot be done by looking at the header offset since it may<br>
not know about additional future data that will be put at the end of the<br>bar).<br><br>Old driver will lose sizeof(QXLRam) * (num_heads - 1) bytes from the end<br>of the bar.<br><br>Visually it would look like this for a two head qxl device:<br>
<br>  .----------------------------------------------.<br>  |                   ROM BAR                    |<br>  | ...                                          |<br> || ram_header_offset                            |<br> || ...                                          |<br>
 ||                                              |<br> ||                                              |<br> |&#39;----------------------------------------------&#39;<br> |<br> |<br> |.--------------------------------------------------.<br>
 ||                     VRAM BAR                     |<br> |.--------------------------------------------------.<br> ||                   Working area                   |<br> ||                                                  |<br>
 v.--------------------------------------------------.<br>  |                   First Header                   |<br>  | magic                                            |<br>  | ...                                              |<br>
  | flags == QXL_RAM_FLAG_MORE_HEADS                 |<br>  |                                                  |<br>  .--------------------------------------------------.<br>  |                  Second Header                   |<br>
  | magic                                            |<br>  | ... (identical fields) ...                       |<br>  | flags == 0                                       |<br>  &#39;--------------------------------------------------&#39;<br>
<br>Alon<br>_______________________________________________<br>Spice-devel mailing list<br><a href="mailto:Spice-devel@lists.freedesktop.org">Spice-devel@lists.freedesktop.org</a><br><a href="http://lists.freedesktop.org/mailman/listinfo/spice-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>
<div>Noel Van Hook - Intelligraphics, Inc</div>
<div>522 Cooper Ave N</div>
<div>Red Lodge, MT 59068</div>
<div>Noel.Van.Hook@Intelligraphics.com  (425) 770-5561</div><br>