<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'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"><<a href="mailto:alevy@redhat.com">alevy@redhat.com</a>></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'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'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> |'----------------------------------------------'<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> '--------------------------------------------------'<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>