Send plymouth mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.freedesktop.org/mailman/listinfo/plymouth
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of plymouth digest..."
Today's Topics:
1. Re: X11 test renderer (Charlie Brej)
2. Re: X11 test renderer (Ray Strode)
3. Re: X11 test renderer (Charlie Brej)
4. Re: X11 test renderer (Ray Strode)
5. Re: X11 test renderer (Charlie Brej)
6. Re: X11 test renderer (Ray Strode)
----------------------------------------------------------------------
Message: 1
Date: Sat, 03 Oct 2009 20:31:03 +0100
From: Charlie Brej <[email protected]>
Subject: Re: X11 test renderer
To: Ray Strode <[email protected]>
Cc: plymouth <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed
On 03/10/09 16:51, Ray Strode wrote:
> Hi,
>
> On Sat, Oct 3, 2009 at 6:36 AM, Charlie Brej<[email protected]> wrote:
>> Ah, now I see the reason for the X and Y in the frame buffer areas.
>> Now, how do I present this to the scripted plugin? Either you have to know
>> which head you are drawing to, or have a continuous area where each head
>> exposes a part of it (xinerama style).
> I'm not sure it makes sense to expose it to the plugins, honestly. it
> was more about the window manager overlapping the windows
> inconvienently.
>
>>> We can merge this master now if you want, or whenever you think it's
>>> ready.
>>
>> Yeah, tested and works for me.
> Okay, i'll merge it.
>
> --Ray
It may be just me but "[x11] Draw to back pixmap instead of on exposes" is
grinding my X (90% cpu vs 10% for plymouth).
------------------------------
Message: 2
Date: Sat, 3 Oct 2009 16:10:45 -0400
From: Ray Strode <[email protected]>
Subject: Re: X11 test renderer
To: Charlie Brej <[email protected]>
Cc: plymouth <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=UTF-8
Hi,
>> On Sat, Oct 3, 2009 at 6:36 AM, Charlie Brej<[email protected]> ?wrote:
>
> It may be just me but "[x11] Draw to back pixmap instead of on exposes" is
> grinding my X (90% cpu vs 10% for plymouth).
I don't see that, but I do see X jumping around between 20-50% cpu
which is more than I'd expect.
What theme are you testing with?
There are two changes, I'd like you to try if you don't mind.
1) get rid of the cairo_push_group () / cairo_pop_group_to_source ();
cairo_paint () calls.
Those calls just add an extra copy that we don't really need, and are
probably the root of your problem
2) change gdk_display_flush() to gdk_display_sync (). This will
throttle plymouth draw requests if the X server is having trouble
keeping up.
Do either or both of those changes fix your issue?
--Ray
------------------------------
Message: 3
Date: Sun, 04 Oct 2009 00:47:42 +0100
From: Charlie Brej <[email protected]>
Subject: Re: X11 test renderer
To: Ray Strode <[email protected]>
Cc: plymouth <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed
On 03/10/09 21:10, Ray Strode wrote:
> What theme are you testing with?
Sry for delay. All of them but the solar seems the worst affected. Spinfinity
gives X at 93% but it is still smooth. Solar takes X up to 98% and less than 1%
is in plymouthd, and takes about 5 seconds per frame.
> There are two changes, I'd like you to try if you don't mind.
>
> 1) get rid of the cairo_push_group () / cairo_pop_group_to_source ();
> cairo_paint () calls.
> Those calls just add an extra copy that we don't really need, and are
> probably the root of your problem
This does seem to make things better, up to about 1 frame per sec.
> 2) change gdk_display_flush() to gdk_display_sync (). This will
> throttle plymouth draw requests if the X server is having trouble
> keeping up.
This one seems not to have any effect.
With the patch reverted, X uses 11% and it runs at about 5 frames per sec
(understandable on an Athlon 2000). This is using the commercial nvidia driver.
------------------------------
Message: 4
Date: Sat, 3 Oct 2009 22:16:03 -0400
From: Ray Strode <[email protected]>
Subject: Re: X11 test renderer
To: Charlie Brej <[email protected]>
Cc: plymouth <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=UTF-8
Hi,
On Sat, Oct 3, 2009 at 7:47 PM, Charlie Brej <[email protected]> wrote:
> On 03/10/09 21:10, Ray Strode wrote:
>>
>> What theme are you testing with?
>
> Sry for delay. All of them but the solar seems the worst affected.
> Spinfinity gives X at 93% but it is still smooth. Solar takes X up to 98%
> and less than 1% is in plymouthd, and takes about 5 seconds per frame.
Solar is really surprising for me. It's doing so much client side
processing, I'd expect plymouthd to be near 100% and not the X server.
We're hitting some driver wonkiness I think. I know older versions of
the nvidia driver had problems doing Over blends in a loop, see:
https://bugzilla.gnome.org/show_bug.cgi?id=552859
and
https://bugzilla.redhat.com/show_bug.cgi?id=465699
But those problems got fixed in a later revision of the driver.
Besides we're not doing blending here, just the equivalent of
XPutImage basically.
In your Xorg.0.log do you see:
EQ overflowing. The server is probably stuck in an infinite loop.
?
>> There are two changes, I'd like you to try if you don't mind.
>>
>> 1) get rid of the cairo_push_group () / cairo_pop_group_to_source ();
>> cairo_paint () calls.
>> Those calls just add an extra copy that we don't really need, and are
>> probably the root of your problem
>
> This does seem to make things better, up to about 1 frame per sec.
I pushed this. There was also a problem where I was still doing
gdk_window_clear on the whole window. I pushed a fix for that, too.
>> 2) change gdk_display_flush() ?to gdk_display_sync (). ?This will
>> throttle plymouth draw requests if the X server is having trouble
>> keeping up.
>
> This one seems not to have any effect.
I changed this to do a 1x1 XGetImage call, which is a little more
reliable way of ensuring things are throttled than the XSync call.
> With the patch reverted, X uses 11% and it runs at about 5 frames per sec
> (understandable on an Athlon 2000). This is using the commercial nvidia
> driver.
None of the the themes render faster than 5 fps on your machine?
That's pretty sucky.
Can you try the latest changes on the branch and report what
performance is like? Also, I'd be curious what nouveau and/or vesa
perfomance are like.
For me stats are much lower now, charge, for instance, is:
20404 root 20 0 221m 32m 11m R 11.8 0.8 12:17.19 Xorg
24707 root 20 0 216m 12m 5236 S 7.5 0.3 0:01.20 plymouthd
12% Xorg, 8% plymouthd
and spinfinity is like 20% Xorg, 8% plymouthd
Anyway, if the latest changes still leave X pegged at 100% cpu for
you, then we can go back the original way of renderering in an expose
handler.
Either way, having to choose from < 1 fps or 5 fps seems suboptimal.
The renderer isn't as useful if its frame rate isn't comparable to the
frame rate we'd get from running plymouth on a vt.... Maybe we can
sidestep the X driver wonkiness by renderering through DRI with GL
(using clutter or something). Seems a bit overkill though...
--Ray
------------------------------
Message: 5
Date: Sun, 04 Oct 2009 13:10:35 +0100
From: Charlie Brej <[email protected]>
Subject: Re: X11 test renderer
To: Ray Strode <[email protected]>
Cc: plymouth <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed
On 04/10/09 03:16, Ray Strode wrote:
> In your Xorg.0.log do you see:
Nothing in the logs apart from the usual.
> I pushed this. There was also a problem where I was still doing
> gdk_window_clear on the whole window. I pushed a fix for that, too.
Brilliant, that one fixed it. I think it was the many stars that were drawn
that
were causing full window redraws.
Solar before
9700 root 20 0 30796 17m 5776 R 64.3 1.1 0:06.77 plymouthd
1807 root 20 0 69048 45m 12m S 14.6 3.0 1:20.72 Xorg
Solar after "[x11] Draw to back pixmap instead of on exposes"
1807 root 20 0 74596 49m 12m R 97.4 3.3 2:07.80 Xorg
9913 root 20 0 30796 17m 5768 S 1.0 1.1 0:01.97 plymouthd
Solar after "[x11] Tile windows initially" (just to show nothing between
effected it)
1807 root 20 0 73984 50m 12m R 97.4 3.3 3:04.89 Xorg
10125 root 20 0 30700 17m 5772 S 0.7 1.1 0:01.82 plymouthd
Solar after "[x11] Don't draw to intermediate surface"
1807 root 20 0 73012 46m 12m R 85.2 3.1 3:50.10 Xorg
10447 root 20 0 30708 16m 5612 R 11.9 1.1 0:02.31 plymouthd
Solar after "[x11] Only redraw the parts that are updated"
10896 root 20 0 30672 16m 5496 R 65.0 1.1 0:06.84 plymouthd
1807 root 20 0 72856 45m 12m R 14.9 3.0 4:09.42 Xorg
Solar after "[x11] Throttle plymouth to X server"
11135 root 20 0 30672 16m 5488 R 58.0 1.1 0:06.39 plymouthd
1807 root 20 0 73112 46m 12m S 26.5 3.1 4:14.13 Xorg
>> This one seems not to have any effect.
> I changed this to do a 1x1 XGetImage call, which is a little more
> reliable way of ensuring things are throttled than the XSync call.
It is hitting the X a little itself.
>> With the patch reverted, X uses 11% and it runs at about 5 frames per sec
>> (understandable on an Athlon 2000). This is using the commercial nvidia
>> driver.
> None of the the themes render faster than 5 fps on your machine?
No, just the solar one and some scripted ones which have lots of activity, the
others are fine. Because it has 2 screens, it goes at half speed and I am only
counting the planet refreshes which happen once every 2 frames.
> For me stats are much lower now, charge, for instance, is:
>
> 20404 root 20 0 221m 32m 11m R 11.8 0.8 12:17.19 Xorg
> 24707 root 20 0 216m 12m 5236 S 7.5 0.3 0:01.20 plymouthd
>
> 12% Xorg, 8% plymouthd
Charge before:
1807 root 20 0 75408 48m 12m S 65.6 3.2 5:19.11 Xorg
12146 root 20 0 26564 12m 5636 S 3.0 0.9 0:00.52 plymouthd
Charge after:
11544 root 20 0 26544 12m 5556 S 4.0 0.8 0:00.47 plymouthd
1807 root 20 0 73564 49m 12m S 3.3 3.3 4:46.86 Xorg
> and spinfinity is like 20% Xorg, 8% plymouthd
Spinfinity before:
1807 root 20 0 75660 48m 12m R 93.1 3.2 5:05.37 Xorg
12016 root 20 0 24308 10m 5736 S 3.0 0.7 0:00.34 plymouthd
Spinfinity after:
1807 root 20 0 73564 49m 12m S 11.3 3.3 4:52.86 Xorg
11802 root 20 0 24292 10m 5648 S 3.6 0.7 0:00.35 plymouthd
You can see the plymouthd cpu didnt drop much so the frame rates were still
reasonable, but X was being caned.
------------------------------
Message: 6
Date: Sun, 4 Oct 2009 11:00:19 -0400
From: Ray Strode <[email protected]>
Subject: Re: X11 test renderer
To: Charlie Brej <[email protected]>
Cc: plymouth <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=UTF-8
Hi,
On Sun, Oct 4, 2009 at 8:10 AM, Charlie Brej <[email protected]> wrote:
> On 04/10/09 03:16, Ray Strode wrote:
>>
>> In your Xorg.0.log do you see:
>
> Nothing in the logs apart from the usual.
Okay so it wasn't that same driver issue from the bug reports then.
>> I pushed this. ?There was also a problem where I was still doing
>> gdk_window_clear on the whole window. ?I pushed a fix for that, too.
>
> Brilliant, that one fixed it.
Great. Honestly, I'm a little surprised that full window updates cause such
a performance hit. Most toolkits do full window updates on every redraw.
Anyway, I'm glad it's fixed. I've merged it to master now
> Solar after "[x11] Only redraw the parts that are updated"
> 10896 root ? ? ?20 ? 0 30672 ?16m 5496 R 65.0 ?1.1 ? 0:06.84 plymouthd
> ?1807 root ? ? ?20 ? 0 72856 ?45m ?12m R 14.9 ?3.0 ? 4:09.42 Xorg
>
> Solar after "[x11] Throttle plymouth to X server"
> 11135 root ? ? ?20 ? 0 30672 ?16m 5488 R 58.0 ?1.1 ? 0:06.39 plymouthd
> ?1807 root ? ? ?20 ? 0 73112 ?46m ?12m S 26.5 ?3.1 ? 4:14.13 Xorg
>
>> I changed this to do a 1x1 XGetImage call, which is a little more
>> reliable way of ensuring things are throttled than the XSync call.
>
> It is hitting the X a little itself.
I will need to investigate this more. XGetImage is a very costly call, but
I wouldn't expect it to be costly for a 1 pixel readback. We may want to
drop this patch.
Anyway, thanks a ton for implementing this. It's something I've
wanted for a long time.
--Ray
------------------------------
_______________________________________________
plymouth mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/plymouth
End of plymouth Digest, Vol 13, Issue 3
***************************************