Matthias Clasen wrote: > On 7/5/06, Padraig O'Briain <[EMAIL PROTECTED]> wrote: > >> Our QA team has reported roughly a 10% degradation in gtkperf >> performance when comparing GNOME 2.6 and GNOME 2.14. >> >> GNOME 2.6 is using gtk 2.4.9 and GNOME 2.14 is using gtk 2.8.17. >> >> gtkperf is CPU bound and most of the CPU is used by the X server.I used >> a special version of Xorg with dtrace probes, see >> http://people/freedesktop.org/~alanc/dtrace, to identify that most of >> the CPU is being used by the RENDER extension and within that by >> RenderComposite >> requests. >> >> The worst degradation is being seen in the first three tests in gtkperf, >> i.e. GtkEntry, GtkComboBox and GtkComboBoxEntry. >> >> Most of the RenderComposite requests are inexpensive but there are a >> handful of expensive ones. In one example I am looking at 18 calls out >> of 444 each take about the same amount of time and account for roughly >> 2/3 of the total cost. >> >> All the expensive XRenderComposite calls seem to be associated with >> calls to gtk_paint_box_gap which is called from gtk_notebook_paint which >> is called from gtk_notebook_expose. >> >> I have looked at all the calls to gtk_paint_box_gap during one iteration >> of GtkEntry, GtkComboBox and GtkComboBoxEntry tests in gtkperf using gtk >> 2.4 and gtk 2.8 to see if there is any correlation between the arguments >> passed to gtk_paint_box_gap and the expensive calls. It looks like the >> expensive calls are the ones with the largest area. See data below. >> >> I am looking for help at this stage. >> >> Should we expect the calls to gtk_paint_box_gap to be so expensive? >> > > What part of it is expensive ? > > I am a bit puzzled, since it seems to > be only a) clear the background and b) draw a bunch of lines. > a) should now use core X protocol, not render/cairo (see > setup_backing_rect_method) > b) should also just use core X protocol > _______________________________________________ > Performance-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/performance-list > I meant the cost in the Xserver of the XRenderComposite calls made by functions called by gtk_paint_box_gap rather than gtk_paint_box_gap itself.
I am not sure that cairo has anything to do with it; XRenderComposite is being called from draw_with_pixmaps in gdk/x11/gdkdrawable-x11.c. Since I sent the original mail, I have noticed,when using gtk 2.8, a call to gtk_paint_flat_box with what looks like an abnormally large value for width. I need to follup up that lead. Padraig _______________________________________________ Performance-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/performance-list
