Hi Bart,<br><br>I have used oprofile to test the performance both gtk-xcb and gtk-x11, and replied all the information to you, but it seems the mail haven't arrived to the archive. I also CCed it to <a href="mailto:gtk-devel-list@gnome.org">
gtk-devel-list@gnome.org</a>, so you can get it at <br><a href="http://mail.gnome.org/archives/gtk-devel-list/2006-November/msg00035.html">http://mail.gnome.org/archives/gtk-devel-list/2006-November/msg00035.html</a><br><br>
--Jianjun<br><br><div><span class="gmail_quote">On 11/8/06, <b class="gmail_sendername">Barton C Massey</b> &lt;<a href="mailto:bart@cs.pdx.edu">bart@cs.pdx.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
This is terrific news!<br><br>We will definitely try to help you look at the bugs,<br>although it will probably be next week rather than this one<br>for me at least.<br><br>Can you give us more details about the performance
<br>difference?&nbsp;&nbsp;Even if your numbers aren't solid, they let us<br>know the impacts and where to look for optimizations.<br><br>Thanks much!<br><br>&nbsp;&nbsp;&nbsp;&nbsp;Bart Massey<br>&nbsp;&nbsp;&nbsp;&nbsp;Assoc. Prof. Computer Science<br>&nbsp;&nbsp;&nbsp;&nbsp;Portland State University
<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:bart@cs.pdx.edu">bart@cs.pdx.edu</a><br><br><br>In message &lt;<a href="mailto:934b4cdf0611070419q51ffb9c9v18f430883c79b5fc@mail.gmail.com">934b4cdf0611070419q51ffb9c9v18f430883c79b5fc@mail.gmail.com
</a>&gt; you wrote:<br>&gt; --===============1611316647==<br>&gt; Content-Type: multipart/alternative;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boundary=&quot;----=_Part_3287_26332206.1162901941431&quot;<br>&gt;<br>&gt; ------=_Part_3287_26332206.1162901941431
<br>&gt; Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>&gt; Content-Transfer-Encoding: 7bit<br>&gt; Content-Disposition: inline<br>&gt;<br>&gt; I am always working on the xcb port of gtk. So far most common gtk
<br>&gt; applications can run well atop the gdk-xcb backend. As the dependency of<br>&gt; gtk, Pango and Xft are ported as well.<br>&gt;<br>&gt; These XCB backends are built on the 1.0 RC3 (0.9.93) release of xcb-proto<br>
&gt; and libxcb(<a href="http://xcb.freedesktop.org/dist/">http://xcb.freedesktop.org/dist/</a>), as well as the latest<br>&gt; development version of xcb-util(git://anongit.freedesktop.org/git/xcb/util).<br>&gt; Maybe the utility libraries are unstable, but I have employed it.
<br>&gt;<br>&gt; These XCB backends are not built by default, and you must explicitly use the<br>&gt; configuration option:<br>&gt;&nbsp;&nbsp;* Xft: --enable-xcb<br>&gt;&nbsp;&nbsp;* pango: --enable-xcb<br>&gt;&nbsp;&nbsp;* gtk: --with-gdktarget=xcb<br>
&gt;<br>&gt; You can get all my xcb-porting work from&nbsp;&nbsp;&quot;<br>&gt; <a href="http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/">http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/</a>&quot; , then try to build<br>&gt; them. If all works well, you can get 
<a href="http://libgtk-xcb-2.0.so">libgtk-xcb-2.0.so</a> and<br>&gt; libgdk-xcb-2.0.sofinally.<br>&gt;<br>&gt; GTK-XCB is now entirely XCB based, claiming the full benefits of XCB. I have<br>&gt; not taken codes sharing into account between the two X backends, perhaps it
<br>&gt; brings a huge maintenance burden, maintaining two copies of that that differ<br>&gt; only in their interface to the X protocol.<br>&gt;<br>&gt; I have used gtkperf to test the gdk-xcb performance on PC, but the benchmark
<br>&gt; data shows gdk-xcb is a bit slow than gdk-x11 :(<br>&gt;<br>&gt; Followings are the next steps :<br>&gt;<br>&gt; * event handling<br>&gt; There is still a bug in window redraw. Originally the area in window does<br>
&gt; redraw when its window content is fully visible after the overlapping window<br>&gt; disappear. But if you repeat to&nbsp;&nbsp;make the window partially obscured, and<br>&gt; fully visible many times, the area then does not redraw any more.
<br>&gt;<br>&gt; * error handling.<br>&gt; Build a library atop libxcb to provide such functions as XSetErrorHandler<br>&gt; and XSetIOErrorHandler.<br>&gt;<br>&gt; * Key handling.<br>&gt; Rewrite XKeysymToString and XStringToKeysym in a library built on XCB, to
<br>&gt; provide the transformation between keyname and keyvalue.<br>&gt;<br>&gt; * GC contents caches<br>&gt; XCB does not cache the GC contents on client-side. Maybe should I cache the<br>&gt; gc values in gdk-xcb backend to implement gdk_gc_get_values?
<br>&gt; Anyway, I'd appreciate any advice/pointers you could provide, poking at the<br>&gt; gdk-xcb backends.<br>&gt;<br>&gt; Jianjun<br>&gt;<br>&gt; ------=_Part_3287_26332206.1162901941431<br>&gt; Content-Type: text/html; charset=ISO-8859-1
<br>&gt; Content-Transfer-Encoding: 7bit<br>&gt; Content-Disposition: inline<br>&gt;<br>&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt;<br>&gt; &lt;div&gt;I am always working on the xcb port of gtk. So far most common gtk applications can run well atop the gdk-xcb backend. As the dependency of gtk, Pango and Xft are ported as well.&lt;/div&gt;
<br>&gt; &lt;p&gt;These XCB backends are built on the 1.0 RC3 (0.9.93) release of xcb-proto and libxcb(&lt;a href=&quot;<a href="http://xcb.freedesktop.org/dist/">http://xcb.freedesktop.org/dist/</a>&quot;&gt;<a href="http://xcb.freedesktop.org/dist/">
http://xcb.freedesktop.org/dist/</a>&lt;/a&gt;), as well as the latest development version of xcb-util(git://anongit.freedesktop.org/git/xcb/util). Maybe the utility libraries are unstable, but I have employed it.<br>&gt; &lt;/p&gt;
<br>&gt; &lt;p&gt;These XCB backends are not built by default, and you must explicitly use the configuration option:&lt;br&gt;&amp;nbsp;* Xft:&amp;nbsp;--enable-xcb&lt;br&gt;&amp;nbsp;* pango:&amp;nbsp;--enable-xcb&lt;br&gt;&amp;nbsp;* gtk:&amp;nbsp;--with-gdktarget=xcb&lt;/p&gt;
<br>&gt; &lt;p&gt;You can get all my xcb-porting work from&amp;nbsp; &amp;quot;&lt;a href=&quot;<a href="http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/">http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/</a>&quot;&gt;
<a href="http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/">http://gtk-xcb.svn.sourceforge.net/viewvc/gtk-xcb/</a>&lt;/a&gt;&amp;quot; , then try to build them. If all works well, you can get<br>&gt; &lt;a href=&quot;<a href="http://libgtk-xcb-2.0.so">
http://libgtk-xcb-2.0.so</a>&quot;&gt;<a href="http://libgtk-xcb-2.0.so">libgtk-xcb-2.0.so</a>&lt;/a&gt; and &lt;a href=&quot;<a href="http://libgdk-xcb-2.0.so">http://libgdk-xcb-2.0.so</a>&quot;&gt;<a href="http://libgdk-xcb-2.0.so">
libgdk-xcb-2.0.so</a>&lt;/a&gt; finally.&lt;/p&gt;<br>&gt; &lt;p&gt;GTK-XCB is now entirely XCB based, claiming the full benefits of XCB. I have not taken codes sharing into account between the two X backends, perhaps it brings a huge maintenance burden, maintaining two copies of that that differ only in their interface to the X protocol.
<br>&gt; &lt;/p&gt;<br>&gt; &lt;p&gt;I have used gtkperf to test the gdk-xcb performance on PC, but the benchmark data shows gdk-xcb is a bit slow than gdk-x11 :(&lt;/p&gt;<br>&gt; &lt;p&gt;Followings are the next steps :&lt;/p&gt;
<br>&gt; &lt;p&gt;* event handling&lt;br&gt;There is still a bug in window redraw. Originally the area in window does redraw when its window content is fully visible after the overlapping window disappear. But if you repeat to&amp;nbsp; make the window partially obscured, and&amp;nbsp; fully visible many times, the area then does not redraw any more.
<br>&gt; &lt;/p&gt;<br>&gt; &lt;p&gt;* error handling. &lt;br&gt;Build a library atop libxcb to provide such functions as XSetErrorHandler and XSetIOErrorHandler.&lt;/p&gt;<br>&gt; &lt;p&gt;* Key handling.&amp;nbsp;&lt;br&gt;Rewrite XKeysymToString and XStringToKeysym in a library built on XCB, to provide the transformation between keyname and keyvalue.&lt;/p&gt;
<br>&gt; &lt;p&gt;* GC contents caches &lt;br&gt;XCB does not cache the GC contents on client-side. Maybe should I cache the gc values in gdk-xcb backend to implement gdk_gc_get_values?&lt;/p&gt;<br>&gt; &lt;div&gt;Anyway, I'd appreciate any advice/pointers you could provide, poking at the gdk-xcb backends.&lt;/div&gt;
<br>&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt;<br>&gt; &lt;div&gt;Jianjun&lt;br&gt;&amp;nbsp;&lt;/div&gt;<br>&gt;<br>&gt; ------=_Part_3287_26332206.1162901941431--<br>&gt;<br>&gt; --===============1611316647==<br>&gt; Content-Type: text/plain; charset=&quot;us-ascii&quot;
<br>&gt; MIME-Version: 1.0<br>&gt; Content-Transfer-Encoding: 7bit<br>&gt; Content-Disposition: inline<br>&gt;<br>&gt; _______________________________________________<br>&gt; Xcb mailing list<br>&gt; <a href="mailto:Xcb@lists.freedesktop.org">
Xcb@lists.freedesktop.org</a><br>&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/xcb">http://lists.freedesktop.org/mailman/listinfo/xcb</a><br>&gt; --===============1611316647==--<br></blockquote></div><br>