[RFC] swap event handling fixes

Mario Kleiner mario.kleiner at tuebingen.mpg.de
Fri Apr 29 16:10:27 PDT 2011

On Apr 29, 2011, at 11:37 PM, Jesse Barnes wrote:

> On Thu, 28 Apr 2011 13:27:18 -0700
> Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
>> I obviously failed to count the swap event structure size after  
>> adding
>> and removing fields a few times, and didn't even account for  
>> padding.  The
>> end result is that clients today won't receive the sbc_lo field at  
>> all,
>> and so will likely stuff junk into that field on the client side (or
>> zero at best).
>> This patchset fixes up the structure definitions, bumps the proto
>> levels, and adds server and client handling code for it all.  It  
>> should
>> be forward and backward compatible, but as always review and testing
>> appreciated.
>> I think the event_type checking on the client side still needs work;
>> the field is split now so I need to check the right one on old  
>> servers.
>> I'll also add swap support for the new requests in case people  
>> ever want
>> to run this stuff between big and little endian machines.
> Btw, I've been trying to test these fixes but I can't make the  
> existing
> code break; I'm getting a nicely incrementing sbc count using the
> piglit event test (after adding some code to dump the swap event
> fields), so somehow the bits are getting through.  I just don't know
> how yet...

One thing you could try as another quick test is to use xtrace on a  
opengl app. I remember seeing weird results for the msc or ust fields  
(i believe) of decoded and printed DRI2SwapComplete events. I always  
thought part of my toolchain was just out of sync, but maybe it was  
just the result of the wrong size/padding.


> -- 
> Jesse Barnes, Intel Open Source Technology Center
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel

More information about the dri-devel mailing list