<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Running x11perf on Maemo (N800)</title>
	<atom:link href="http://blog.eduardofleury.com/archives/2008/08/29/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eduardofleury.com/archives/2008/08/29/</link>
	<description>Thoughts, shuffled...</description>
	<lastBuildDate>Mon, 05 Apr 2010 14:10:48 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: qpixmap - StartTags.com</title>
		<link>http://blog.eduardofleury.com/archives/2008/08/29/comment-page-1/#comment-9448</link>
		<dc:creator>qpixmap - StartTags.com</dc:creator>
		<pubDate>Tue, 02 Mar 2010 23:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=29#comment-9448</guid>
		<description>[...] ... Mail (will not be published) (required) Website. LukasT.mediablog.sk is proudly powered by ...eduardofleury.com Running x11perf on Maemo (N800)Eduardo Fleury&#039;s blog. Linux, OpenSource, Programming, IT and other misc stuff. Be welcome. ... we [...]</description>
		<content:encoded><![CDATA[<p>[...] &#8230; Mail (will not be published) (required) Website. LukasT.mediablog.sk is proudly powered by &#8230;eduardofleury.com Running x11perf on Maemo (N800)Eduardo Fleury&#39;s blog. Linux, OpenSource, Programming, IT and other misc stuff. Be welcome. &#8230; we [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Recent Links Tagged With "maemo" - JabberTags</title>
		<link>http://blog.eduardofleury.com/archives/2008/08/29/comment-page-1/#comment-2176</link>
		<dc:creator>Recent Links Tagged With "maemo" - JabberTags</dc:creator>
		<pubDate>Wed, 03 Dec 2008 10:19:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=29#comment-2176</guid>
		<description>[...] Community Council elections (Jaffa@maemopeople) Saved by ShippuudenPrincess on Tue 18-11-2008   Running x11perf on Maemo (N800) Saved by Netaly on Wed 12-11-2008   Maemo Summit: registration open &amp; free Saved by helgaust on [...]</description>
		<content:encoded><![CDATA[<p>[...] Community Council elections (Jaffa@maemopeople) Saved by ShippuudenPrincess on Tue 18-11-2008   Running x11perf on Maemo (N800) Saved by Netaly on Wed 12-11-2008   Maemo Summit: registration open &amp; free Saved by helgaust on [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ariya</title>
		<link>http://blog.eduardofleury.com/archives/2008/08/29/comment-page-1/#comment-1401</link>
		<dc:creator>Ariya</dc:creator>
		<pubDate>Sat, 23 Aug 2008 23:55:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=29#comment-1401</guid>
		<description>Hi Fleury,

You can use the widget flag WA_PaintOnScreen to bypass the backing store on X11. However, I doubt that the backing store is the bottleneck (in the case of Maemo). See also my short post: http://ariya.blogspot.com/2008/08/qt-44-and-maemo.html. We just need to tweak Qt a bit so that it flies on 16-bit X.</description>
		<content:encoded><![CDATA[<p>Hi Fleury,</p>
<p>You can use the widget flag WA_PaintOnScreen to bypass the backing store on X11. However, I doubt that the backing store is the bottleneck (in the case of Maemo). See also my short post: <a href="http://ariya.blogspot.com/2008/08/qt-44-and-maemo.html" rel="nofollow">http://ariya.blogspot.com/2008/08/qt-44-and-maemo.html</a>. We just need to tweak Qt a bit so that it flies on 16-bit X.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: fleury</title>
		<link>http://blog.eduardofleury.com/archives/2008/08/29/comment-page-1/#comment-1391</link>
		<dc:creator>fleury</dc:creator>
		<pubDate>Thu, 21 Aug 2008 22:34:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=29#comment-1391</guid>
		<description>Hi Barbieri,

Yes, that&#039;s right, however, let me further explain which was the reason of this test.

From earlier tests we realized that we were losing a lot of performance due to the fact Qt paints to an off-screen QPixmap and then to the screen (to avoid flicker). Trying to find a faster way to do that, we found out that, as of Qt 4.4.1, it&#039;s not using shared pixmaps at all, rather that that, all pixmap copies are relying on local sockets (XPutImage, as you said).

Before going into details on the reason why Qt is not using shared memory, we were wondering the potential XShmPutImage had on the device, given that, X11perf seemed like a good starting point.

Best regards,
Fleury</description>
		<content:encoded><![CDATA[<p>Hi Barbieri,</p>
<p>Yes, that&#8217;s right, however, let me further explain which was the reason of this test.</p>
<p>From earlier tests we realized that we were losing a lot of performance due to the fact Qt paints to an off-screen QPixmap and then to the screen (to avoid flicker). Trying to find a faster way to do that, we found out that, as of Qt 4.4.1, it&#8217;s not using shared pixmaps at all, rather that that, all pixmap copies are relying on local sockets (XPutImage, as you said).</p>
<p>Before going into details on the reason why Qt is not using shared memory, we were wondering the potential XShmPutImage had on the device, given that, X11perf seemed like a good starting point.</p>
<p>Best regards,<br />
Fleury</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gustavo Sverzut Barbieri</title>
		<link>http://blog.eduardofleury.com/archives/2008/08/29/comment-page-1/#comment-1389</link>
		<dc:creator>Gustavo Sverzut Barbieri</dc:creator>
		<pubDate>Thu, 21 Aug 2008 11:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eduardofleury.com/?p=29#comment-1389</guid>
		<description>Fleury,

This benchmark is a bit pointless if you consider how technology works.

XPutImage will copy image from client to server using a unix socket (local connection), while XShmPutImage will not. Of course, after this copy is done, X Server still needs to copy it to framebuffer, but is the same for both.

The only case that would give XShmPutImage a bad impact is if you&#039;re using small images with short lives. Again, this can be understood from technology: Shared memory always go through kernel (one cannot use malloc and its user-space allocator), which for security reasons need to zero the whole memory in order to prevent information leak.

Thus XShmPutImage implies one memset() and possible one more syscall per creation. But after you did that, you can benefit from full speed.

So you should try to use XShm from beginning. That is not the problem. The real problem is how to make Qt keep XShm images around for more time.

Evas does exactly that, and I introduced this with x11-16 engine, then the optimization was backported to x11. Evas does the same as Qt with its alien windows, just one X Window and thus just one XShm Image for the whole updated area, this area is kept around after some time, because during animations we do not want destroy it. After a given timeout, we idle_flush(), which will drop that image. Yes, we really drop the scene contents, that&#039;s why we use less memory.</description>
		<content:encoded><![CDATA[<p>Fleury,</p>
<p>This benchmark is a bit pointless if you consider how technology works.</p>
<p>XPutImage will copy image from client to server using a unix socket (local connection), while XShmPutImage will not. Of course, after this copy is done, X Server still needs to copy it to framebuffer, but is the same for both.</p>
<p>The only case that would give XShmPutImage a bad impact is if you&#8217;re using small images with short lives. Again, this can be understood from technology: Shared memory always go through kernel (one cannot use malloc and its user-space allocator), which for security reasons need to zero the whole memory in order to prevent information leak.</p>
<p>Thus XShmPutImage implies one memset() and possible one more syscall per creation. But after you did that, you can benefit from full speed.</p>
<p>So you should try to use XShm from beginning. That is not the problem. The real problem is how to make Qt keep XShm images around for more time.</p>
<p>Evas does exactly that, and I introduced this with x11-16 engine, then the optimization was backported to x11. Evas does the same as Qt with its alien windows, just one X Window and thus just one XShm Image for the whole updated area, this area is kept around after some time, because during animations we do not want destroy it. After a given timeout, we idle_flush(), which will drop that image. Yes, we really drop the scene contents, that&#8217;s why we use less memory.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
