|
|
#1 | |
|
Registered User
Join Date: Jun 2005
Posts: 36
|
Hi,
xine-lib's video_out_vdpau.c uses XLockDisplay() when calling VDPAU functions. This is due to some issues caused by xine-ui. I was trying to fix those xine-ui issues so that these XLockDisplay() calls can be avoided (these calls synchronize decoding and displaying and may be the reason for some other issues). After fixing the issues and disabling those XLockDisplay() calls, tearing appeared. Reenabling the XLockDisplay() calls removed tearing again. Bye. |
|
|
|
|
|
|
#2 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
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? 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.
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. |
|
|
|
|
|
|
#3 | |||
|
Registered User
Join Date: Jun 2005
Posts: 36
|
Hi,
Quote:
Quote:
Quote:
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. Bye. |
|||
|
|
|
|
|
#4 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
One thought on this: Decode->display interlock is performed within the VDPAU driver. That is, if you decode to a given surface and then display it, VDPAU internally guarantees that display of that surface won't start until the decode has completed. However, the driver performs no display->decode interlock; the application must wait until the presentation queue has completed displaying the image (i.e. its status is IDLE) before requesting that a new decode operation begin on that surface. If the application doesn't do this, the decoder might write to a surface while it's still being displayed, which could look like tearing. Given the presentation queue errors mentioned in the other thread, this could well be the cause of the problems.
|
|
|
|
|
![]() |
| Thread Tools | |
|
|