[Bug 39202] FPS - KDE desktop effects with 3.0 rc6 kernel

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Aug 18 06:20:19 PDT 2011


--- Comment #31 from Ilija Hadzic <ihadzic at research.bell-labs.com> 2011-08-18 06:20:18 PDT ---
(In reply to comment #28)

> the max fps is 60!!!
> but if I enable vsync in kde desktop effects settings or doing "vblank_mode=1
> kwin --replace" the fps goes to 100!!!
> In these conditions vblank_mode=0 glxgears and vblank_mode=1 glxgears have the
> same output (2000 FPS).
> This has no sense.

I am assuming that your DDX (xf86-video-ati library) is 6.14.2 (latest). If you
use that DDX and a kernel prior to crtc>1 commit, then the behavior of glxgears
is an expected one. Prior to the offending commit, vblank synchronization for
crtcs that are higher than 1 didn't work. System was synchronizing on wrong
crtc numbers and the appearance of working was mostly an accident than design.
The fix included both the kernel and user space patches and a check was added
to DDX against the kernel capabilities. So what happens in your case, is that
when you boot up the old kernel and probably keep the new DDX, the DDX decides
that it's missing a kernel capability and decides not to syncronize to vblank
no matter what you set vblank_mode for. That's why you see 2000+ fps in both

When it comes to KDE, I am not familiar enough to comment, but I speculate that
KDE actually bypasses the DDX and calls vblank synchronization ioctl directly
through libdrm. KDE would in that case be responsible for specifying the
correct CRTC and the CRTC number depends on which connector you are. I see you
are using an Evergreen GPU that has 6 crtcs so you could be sitting on a crtc
whose number is greater than 1. If that's so, and assuming that KDE indeed
specifies correct crtc, it could very well be that your lower FPS with the
newer kernel is correct because that's what CRTC ticks at. With older kernel
you may be synchronizing to an incorrect CRTC that just so happens to tick at
100fps, but that's an accident. Try changing the connector you use on your
evergreen part, use the kernel *with* the offending patch and *with*
synchronization turned on and see if the FPS changes with the connector. If you
find one that gives you 100fps, then that's probably the one on which the old
broken kernel picked up the synchronization from.

BTW, on the part you are using, I have noticed that if you connect all three
connectors, HDMI will be CRTC 0, VGA will be CRTC 1 and DVI will be CRTC 2.
In that case, an old kernel will be broken on DVI (which is the one that
people are most likely to look at)

Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the dri-devel mailing list