View Single Post
Old 07-14-10, 04:50 PM   #3
Registered User
Join Date: Jun 2005
Posts: 36
Default Re: Tearing with 8600GTS, 256.35, xine-lib-1.2 when avoiding XLockDisplay()


Originally Posted by Stephen Warren View Post
rnissl, Can you please describe the tearing a little? In particular, does it simply look like typical tearing one gets when blitting an image to the screen without syncing to vblank, or something else, e.g. more persistent decoding corruption?
Well, I'd say typical tearing. I've recognized it while watching a soccer game when the camera was panning. The upper "halve" of the image showed a horizontal offset to the lower "halve" of the image.

Originally Posted by Stephen Warren View Post
Are you using the blit or overlay-based presentation queue; see the README for details on what X configurations allow/cause one to be used over the other (e.g. disable the X composite extension). Or, just move a window around, and see if you see flashes of the chroma key color as you move the window; if so, then you're already using the overlay.
I've always used overlay based presentation queue. Occasionally I use blit based presentation queue to be able to take screen shots of the window. With overlay based presentation queue, I get just a unique colored screen shot (i. e. chroma key color). So I'd say overlay based presentation queue is active and working.

Originally Posted by Stephen Warren View Post
Can you supply complete details on how to reproduce this (e.g. patches to remove the xine-ui problems you mentioned, which svn/... version to apply them against, do I simply comment out every single XLockDisplay call that I see in the xine-lib source or ... etc.) Thanks.
Meanwhile my fixes have been commited. Just pull xine-lib-1.2 HEAD and xine-ui HEAD. Then change one define in xine-lib-1.2/src/video_out/video_out_vdpau.c. Near the beginning you'll find the define LOCKDISPLAY. Just comment out this define. It will disable all X(Un)LockDisplay() calls.

I wonder whether this tearing is related to my other issue (what does these errors mean). After having recognized tearing for the first time I thought it was a matter of my changes regarding XLockDisplay(). So I reverted that changes and tearing went a way. Then I enabled my changes again, but I couldn't reproduce the tearing. I was watching soccer games for hours (usually I'm not that interested in soccer) just to find some tearing. It didn't appear. Today I think I had tearing again and I think the only difference to watching the soccer games is that I did switch to full screen (1920x1200) today while I was watching the soccer games in a window (when I recognized the tearing for the first time I think I had resized the window too). Stream resolution for the soccer games was 1280x720 and the output window was of size 1024x576. The today's stream had a resolution of 720x576 @ 16:9. I've to prove this further in case you cannot reproduce.

rnissl is offline   Reply With Quote