Improving QEdje and Qt performance with nvidia drivers.

Hey all,

You may have been following the buzz around bad 2D performance of nvidia-drivers, specially with KDE 4. Well, I found out that QEdje was running slower than it could on my machine due to the same reason.

Zack Rusin released yesterday a nice benchmark utility for Qt, QGears2, which I used to measure the effect of Lemma’s suggestion on KDE’s techbase.

My machine is a 2.4GHz Core 2 Duo / 2gb / nVidiaGeForce 8600M 256mb MacBook Pro, running Gentoo ~x86.

The first tests were conducted using:

  • Xorg-server 1.4.2
  • Xorg 7.3
  • nvidia proprietary drivers (nvidia-drivers) 173.14.12

The second test session were conducted after the following changes:

  • nvidia proprietary drivers (nvidia-drivers) 177.67 beta (I’ve unmasked them in Gentoo)
  • Added PixmapCacheSize and OnDemandVBlankInterrupts options to xorg.conf
  • applied InitialPixmapPlacement and GlyphCache hacks:
    nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1


Old setup:

  • -image –> 42 fps
  • -render –> 35 fps
  • -gl –> 396 fps

New setup:

  • -image –> 67 fps
  • -render –> 41 fps
  • -gl –> 476 fps

Let me know of your results.



emerge world reinstalling everything… not anymore :-)

I’m running ~x86 Gentoo here, eix-sync && emerge -Dav world every few days till something strange started happening. Portage wanted to reinstall everything, I mean, hundreds of packages to the same version as before, no new use, no new anything, just reinstall all packages for the pleasure of compiling and heating up my Macbook pro 🙂

Well, now I figured out that adding the “-u” flag to emerge restored the expected behaviour.

Maybe I was supposed to use “-u” since day one but the fact is I didn’t, and emerge worked fine until now. Anyway, if any of you face the same issue, try “-u”.



Running x11perf on Maemo (N800)

Hi all, this post is about some benchmarks we did on Nokia’s N800 device to measure the performance of XShmPutImage on this hardware.

I’ve been working on the QEdje project and, while studying possible optimizations, our team was interested in measuring whether we could benefit from using MIT’s X11 shared memory extensions. Among other tests, I managed to run x11perf on the N800.

A simple patch was needed before cross-compiling it. This because this app has a hard-coded window size of 600×600 pixels, more than what’s available in our 800×480 screen, thus leading to a X error message, complaining about get screen parameters.

I also reduced the square side size from 500 to 400 pixels in the XShmPutImage and XPutImage tests (shmput500 and putimage500).

The results were absolutely favorable to the use of the shared memory extension as you can see below:

./x11perf –shmput500 -sync

800 reps @ 8.6566 msec ( 116.0/sec)

./x11perf -putimage500 -sync

360 reps @ 14.8336 msec ( 67.4/sec)

For those willing to reproduce the tests, the patch is available below and should apply cleanly to x11perf 1.5.

Download x11perf 1.5 patch