Linux [xbmc-git] vsync regression?
#1
After a few weeks of being lax I rebuilt xbmc-git last night and installed it this morning only to find that a problem I've never had before with my setup is occurring. Tearing. I'm running it on a low power atom based HP thin client and crystalhd and Arch x86.

I thought at first maybe the upgrades to intel-dri,mesa et al. that occurred at the same time doing package upgrades may have been the cause but downgrading all of them didn't change anything. Also booted into the last kernel version since a kernel upgrade also took place but no change. This leaves only last night's pull of xbmc-git.

I was able to fix the tearing by disabling the option to match display refresh to video. Normally this has always worked fine, switching my TV to 24p during movie playback... it still does change the mode to 24p but I get all sorts of tearing. When I leave the option off and let it play videos in 60hz the tearing is gone.

Can anybody else with access to regular intel video hardware (or even other, just using the aforementioned playback option) confirm that there is a regression in xbmc gotham here?

I highly doubt crystalhd is at fault since I don't think they have updated the codebase upstream for many moons now. BTW I use xbmc-standalone on this machine with no desktop environment running at all so there cannot be any kind of conflict here.
Reply
#2
Check the vsync settings of xbmc ... are they correctly enabled? (or set to "driver" which means the vsync setting from the driver is used).
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#3
(2014-01-14, 17:17)Memphiz Wrote: Check the vsync settings of xbmc ... are they correctly enabled? (or set to "driver" which means the vsync setting from the driver is used).

The settings have not changed, I did double check that they are still set to always enabled vsync. Also, as I mentioned when I do not use the option to set refresh rate to match the video (and it stays at 60hz rather than switching modes to 24hz) I get no tearing so vsync in 60hz without that option is working fine still.

It seems something is happening when it automatically switches modes to match the video that causes vsync to get disabled. When I have time I'm going to just try setting xbmc to 24hz and leave that option off (so it remains at 24hz and hopefully remains locked to vsync) and see if the tearing still occurs to nail that down. Though it isn't a good workaround because using the UI at 24hz sucks.
Reply
#4
Yesterday i updated from 20131230 to 20140113 version. Same thing here. I've got tearing.
As you can imagine, watching videos (with tearing) is so annoying, as you just wait for the "tearing effect" to occur.

Concerning binaryjays postings: In my case "Set refresh rate to match the video" was never enabled at all. Tearing appears with this settings enabled as well as disabled. Forcing my television monitor to 24hz (via xorg.conf) is a workaround, but as you mentioned the ui and other applications just suck at 24hz.

I should not have updated xbmc, as it was working great for years now ...

PS: I am using nvidia hardware , therefore the problem seems not to be specific to intel hardware.
Reply
#5
Post: /usr/lib/xbmc/xbmc-xrandr | pastebinit
and also play a 24p video. and post xbmc debug log afterwards.

Thanks
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#6
@fritsch

/usr/lib/xbmc/xbmc-xrandr:
http://pastebin.com/Q2HdKeHs

Debug.log after playing a random video (with 24hz setting)
http://pastebin.com/igEnYam3

Wouldn't it be more useful to post the debug.log with 60hz setting,
where tearing actually occurs, instead of the 24hz workaround?
Reply
#7
You neither have a 24p nor a 24.0 hz Modeline, only that bugged "in the middle of nowhere" nvidia refreshrate.

Also no vdpau is used as you play a 25fps mpeg-4 video.

Furthermore:
Quote:GL_VERSION = 3.3.0 NVIDIA 331.38

Retry with 319.xy
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#8
http://pastebin.com/AXu2fUAq

I'm being freaking stupid, I can't remember where the debug log ends up when xbmc is started as a service using systemd. I did notice that my CPU use was well under 100% during playback and the FPS was moving around between 23.x and 24.0 fps but even when it was reporting 24.0 fps it was still tearing.

Also, I was wrong before it still tears in 60hz just not as badly.. I tried setting and resetting the vsync settings to no avail.
Reply
#9
Use the 319 nvidia driver and revisit and post xbmc.log if problem persists.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#10
(2014-01-14, 22:59)fritsch Wrote: Use the 319 nvidia driver and revisit and post xbmc.log if problem persists.

In my case this is Intel GMA, not nvidia. Where is the xbmc.log kept when xbmc is launched as a service (systemd?).

I'm kind of confused though, because I clearly have a 24p modeline detected but the debug output when I play the video is clearly not locking fps to 24 when I tested it moves around between 23.x and 24.0 ... CPU is not being stressed and prior to my last update I had no issues for a very long time.

I assume that the fps counter should be locked and not wander when vsync is actually working?


Update: I seem to have been able to mitigate the issue by enabling the "TearFree" intel option in xorg.conf I'm still unsure why all of a sudden I need to use this though.

Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "TearFree" "true"
EndSection
Reply
#11
Ouh - Now I mixed you, cause the other guy captured your thread.

And you did not even post your xbmc.log with debugging turned on.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#12
Option "TearFree" "true" <- bäh, remove this.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#13
(2014-01-14, 23:27)fritsch Wrote: Option "TearFree" "true" <- bäh, remove this.

Normally I would, but XBMC plays without tearing with it there and plays like crap without it now... so, unless I can figure out why it is needed now it has to stay.

I did turn on debugging and played a video reproducing the issue but I can't find the debug log in my filesystem, it isn't in the locations provided in the wiki I suspect it is elsewhere in the system because I start xbmc as a systemd service. I have no idea where it ended up and will need to search for it later.

Other alternative is to just go back and build myself Frodo and get off Gotham and see what happens. Will also try running xbmc within gnome instead of standalone.
Reply
#14
In Nvidia its composite off.

See Configuring_resolution_via_xorg.conf (wiki) its has tons of info for all sorts xorg related.
Reply
#15
(2014-01-15, 00:59)binaryjay Wrote:
(2014-01-14, 23:27)fritsch Wrote: Option "TearFree" "true" <- bäh, remove this.

Normally I would, but XBMC plays without tearing with it there and plays like crap without it now... so, unless I can figure out why it is needed now it has to stay.

I did turn on debugging and played a video reproducing the issue but I can't find the debug log in my filesystem, it isn't in the locations provided in the wiki I suspect it is elsewhere in the system because I start xbmc as a systemd service. I have no idea where it ended up and will need to search for it later.

Other alternative is to just go back and build myself Frodo and get off Gotham and see what happens. Will also try running xbmc within gnome instead of standalone.


Make screenshot of your vsync settings in xbmc. For the logfile, do: cat ~/.xbmc/temp/xbmc.log | pastebinit
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply

Logout Mark Read Team Forum Stats Members Help
[xbmc-git] vsync regression?0