Matthias Clasen wrote:
I have identified a change between gtk 2.4 and gtk 2.8 which has an impact on gtkperf results, specifically the first test GtkEntry.On 7/5/06, Padraig O'Briain <Padraig Obriain sun com> wrote: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.Any news on this, Padraig ?
The change is the addition of am idle handler in do_theme_change in gtkicontheme.c. This has the effect that the cost of doing the theme change is charged to the first test when running gtkperf in automated mode, i.e. with -a option as the idle handler is not called until the first test has started.
I think that the solution to this is to start the tests in an idle handler, i.e. a patch on the lines of
--- /export/home/padraigo/tmp/graphics/gtkperf/gtkperf/src/main.c 2005-10-30 11:26:42.000000000 +0000 +++ /export/home/padraigo/forvermillion/graphics/gtkperf/gtkperf/src/main.c 2006-07-14 11:26:56.555235000 +0100
@@ -17,6 +17,15 @@
#include "callbacks.h"
#include "appdata.h"
+static gulong auto_tests_idle;
+
+static gboolean
+auto_tests(gpointer user_data)
+{
+ on_cmdline_run_all();
+ return FALSE;
+}
+
int
main (int argc, char **argv)
{
@@ -131,7 +140,10 @@
/* run automatic test */
if (appdata->scripted == TRUE)
{
+ auto_tests_idle = g_idle_add(auto_tests, NULL);
+#if 0
on_cmdline_run_all();
+#endif
}
gtk_main ();