Re: Scrolling performance



Hello John,

Thanks a lot for answering.
I created a sample program which contains two buttons in a
(horizontally) paned window.
When I maximize the window and resize the panes I get very slow
resizing, however when setting all involved widgets unbuffered
resizing is fast (but painting is done with artifacts).

Also the profile looks very different:

With doublebuffering enabled:
3298     36.0398  libfb.so                 (no symbols)
1710     18.6865  nvidia_drv.so            _nv000805X

Widthout doublebuffering:
1974     19.1632  libcairo.so.2.2.3        (no symbols)
1535     14.9015  Xorg                     (no symbols)
1083     10.5135  libfb.so                 (no symbols)

So there's still some software rendering involved but its _way_ better.

I am currently hitting a deadline in a java project, so I'll busy the
next 1-2 weeks, however I would really like to get my hands on the
buffer manager, do you think theres a chance to get it in (if its well
written and stylish correct).
I like tuning code, although I've to admit my C/Unix knowledge is
rusty, however then its a good training.

lg Clemens

That's interesting. gtk2 uses pixmaps for double buffering ... for
each expose rectangle, it will create an off-screen pixmap, ask all
relevant widgets to paint to that, then at the end of expose, paint
the off-screen pixmap on the display. I think it can potentially
create and destroy quite a lot of pixmaps in a single expose
operation.

You could try making a test program and turning off double buffering
for some widgets:

http://developer.gnome.org/doc/API/2.0/gtk/GtkWidget.html#id4004696

John




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]