Using your method (g_timer in the expose callback), I get:
64 fps with the GDK buffer
287 fps with the internal buffer
If I insert the wall clock timer that I had before into the expose event, I get the same 12:50 FPS difference.
Either way, for some reason I see about a 1 to 5 difference. On the two machines you tried, you don't see any notable difference.
This machine uses Nvidia FX5200 with the 173 driver, X11R7.4, gtk 2.18.3.
I get the same results with Metacity used in place of Compiz.
When I go back to work on Monday, I will experiment with some other machines to see what sort of results I get.
Bob
On Wed, Jan 27, 2010 at 9:12 PM, Robert Gibbs <gibbsrc@xxxxxxxxx> wrote:
I am running into a severe performance degradation when using the built in GtkDrawingArea double buffering to a 1600x1200 window. The program sets a default priority idle handler which calls gtk_widget_queue_draw. The expose event originally would draw about 1000 polygons, but I commented out the drawing portion and still saw the same poor performance. The best performance I can get is about 10 frames per second.
If call GTK_WIDGET_UNSET_FLAGS (drawing_area, GTK_DOUBLE_BUFFERED), then use my own pixmap for double buffering, the performance goes up to 50 frames per second.
Can anyone tell me why the built-in double buffering would yield such poor performance?
_______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list