<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 25/10/12 12:00 PM,
<a class="moz-txt-link-abbreviated" href="mailto:michel@daenzer.net">michel@daenzer.net</a> wrote:<br>
</div>
<blockquote
cite="mid:mailman.15.1351191622.32574.xorg-devel@lists.x.org"
type="cite">
<div class="moz-txt-sig">On Mit, 2012-10-24 at 17:13 -0400, Adam
Jackson wrote: </div>
<blockquote type="cite" style="color: #000000;">
<pre wrap="">Did you know we have two of these? Can we have only one of these?
I'd like to merge them together, one way or another, but there are some
slight semantic differences. shadowfb gives you hooks for both pre- and
post-rendering callbacks. Exactly one driver uses this, vmware, for
what looks like tearing down and putting back up the cursor. I'm
reasonably sure that could be better handled, but it's also easy enough
to preserve.
More interestingly, shadow batches updates until BlockHandler, whereas
shadowfb is immediate. I would expect shadow's performance to be better
in the typical use case since it would reduce overdraw. I don't know of
any drivers that <span class="moz-txt-underscore"><span class="moz-txt-tag">_</span>depend<span class="moz-txt-tag">_</span></span> on shadowfb giving an immediate callback,
</pre>
</blockquote>
I wonder if e.g. xf86-video-r128's page flipping support doesn't
depend
on immediate callbacks. Otherwise, can't the second page display
stale
non-GLX bits?
</blockquote>
If you merge shadow and shadowfb and it turns out to be detrimental
to r128, I'm sure I can update it to use damage directly. <a
href="http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=d43ad88fa3913437f6987ab5ab46a38f0cb555a8">This
commit</a> for radeon would be just as easy to perform on r128.<br>
<blockquote
cite="mid:mailman.15.1351191622.32574.xorg-devel@lists.x.org"
type="cite">
<blockquote type="cite" style="color: #000000;">
<pre wrap="">but conversely BlockHandler isn't exactly a great interface for periodic
updates, since it gets called on no particular schedule.
So my thinking is:
- port shadowfb to damage instead of handrolling it
</pre>
</blockquote>
That sounds like a good idea anyway.
<blockquote type="cite" style="color: #000000;">
<pre wrap="">- merge that with shadow since they'll then be largely equivalent
- keep the external API intact since it's easy enough
</pre>
</blockquote>
Maybe the merged module could preserve immediate vs. delayed
updates
depending on which external API is used.</blockquote>
<br>
</body>
</html>