<div>So we are going to support operation such as self-copy in </div>
<div>gl backend, right?<br><br></div>
<div class="gmail_quote">2012/1/11 Chris Wilson <span dir="ltr">&lt;<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>&gt;</span><br>
<blockquote style="BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PADDING-LEFT:1ex" class="gmail_quote">
<div class="im">On Wed, 11 Jan 2012 22:38:39 +0800, Chuanbo Weng &lt;<a href="mailto:strgnm@gmail.com">strgnm@gmail.com</a>&gt; wrote:<br>&gt; The drawing error is an issue in the output. The &quot;self-copy&quot; and<br>
&gt; &quot;subsurface&quot;<br>&gt; I mentioned are the cases in cairo/test/: self-copy.c and subsurface.c.<br>&gt; So you can check the output pictures, which are incorrect.<br>&gt; These cases use target surface as their source surface at the same time,<br>
&gt; which<br>&gt; cause the render output incorrect. (When you bind one image from a texture<br>&gt; to an<br>&gt; FBO,  and If you do try to read and write to the same image, you get<br>&gt; undefined<br>&gt; results.)<br>
<br></div>And it is equally undefined in cairo at the moment. The self-copy test is<br>there more to capture how each backend behaves. The consensus has been<br>towards always performing a snapshot on the source before every<br>
operation (and optimising away that snapshot for the common case where<br>it is irrelevant).<br><br>Does anyone have any objections for cairo to start treating all sources<br>as immutable even when source == destination?<br>

<div class="HOEnZb">
<div class="h5">-Chris<br><br>--<br>Chris Wilson, Intel Open Source Technology Centre<br></div></div></blockquote></div><br>