<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 18, 2017 at 10:12 AM, Eric Anholt <span dir="ltr"><<a href="mailto:eric@anholt.net" target="_blank">eric@anholt.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> writes:<br>
<br>
> On Mon, Sep 18, 2017 at 9:20 AM, Chad Versace <<a href="mailto:chadversary@chromium.org">chadversary@chromium.org</a>><br>
> wrote:<br>
><br>
>> On Thu 14 Sep 2017, Eric Anholt wrote:<br>
>> > Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> writes:<br>
>> ><br>
>> > > The setTexBuffer2 hook from GLX is used to implement glxBindTexImageEXT<br>
>> > > which has tighter restrictions than just "it's shared".  In particular,<br>
>> > > it says that any rendering to the image while it is bound causes the<br>
>> > > contents to become undefined.  This means that we can do whatever aux<br>
>> > > tracking we want between glxBindTexImageEXT and glxReleaseTexImageEXT<br>
>> so<br>
>> > > long as we always transition from external in Bind and to external in<br>
>> > > Release.<br>
>> ><br>
>> > The intent of the spec was to get at the hard-to-define "you get pixels<br>
>> > at least as new as the outstanding X11 rendering when you called<br>
>> > glxBindTexImageEXT(), but if X11 keeps on rendering to the thing then<br>
>> > you may get newer pixels, too."  With your CCS plan and X11 rendering in<br>
>> > parallel with you GL texturing from the X11 pixmap, will we always see<br>
>> > either old or new pixels but not anything else?<br>
>><br>
><br>
> That gets interesting... Yes, reading and writing to a CCS image at the<br>
> same time is problematic.  However, the spec does say "undefined" and not<br>
> "either new or old pixels".  :-)  I'm not sure how this translates into the<br>
> real world though.<br>
<br>
</span>It would translate into "I see the random garbage on my screen when<br>
running a compositor."  X11 does not stop rendering to the pixmap when<br>
the compositor is trying to texture from it.<br>
</blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Adding Daniel and LFRB.  I don't know if the current X code for modifiers usess them when creating surfaces for X to render into.  I think it probably only uses modifiers for surfaces that come in through DRI3 + present in which case there shouldn't be X rendering to buffers with CCS.  If there is, I think we should consider that a bug just as much as doing front-buffer rendering to CCS.</div><div class="gmail_extra"><br></div><div class="gmail_extra">--Jason<br></div></div>