Re: performance problems double buffering to 1600x1200 window



John,

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 gmail com> 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?

 



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