[Mesa-dev] Very low framerate when recording desktop content in Weston using mesa git on Radeon 5770 (glReadPixels slow path)
Rune Kjær Svendsen
runesvend at gmail.com
Mon Mar 25 19:30:58 PDT 2013
Marek, do you have an idea on where the currency bottleneck is?
I just did a profiling with sysprof, zooming in on the desktop in Weston
and moving the mouse wildly around, so that the buffer is completely
changed for every frame. I got around 5 fps, which isn't *that* much, but
still an order of magnitude better than without your patches.
sysprof says there is 100% CPU usage, but unlike the previous 0.5-FPS
recording, it's not in a single function, but spread out over several
functions:
35% weston_recorder_frame_notify
11% __memcpy_ssse3
4.5% clear_page_c
4.3% output_run
Although I'm not completely sure I'm reading the sysprof output right.
weston_recorder_frame_notify, for example, has 35% CPU usage, but none of
its child functions has any significant CPU usage. I presume the CPU usage
in that function is from calling glReadPixels, although that's not apparent
from sysprof:
weston_recorder_frame_notify 39.15%
39.15%
- - kernel - - 0.00%
0.01%
ret_from_intr 0.00%
0.01%
__irqentry_text_start 0.00%
0.01%
irq_exit 0.00%
0.01%
do_softirq 0.00%
0.01%
call_softirq 0.00%
0.01%
__do_softirq 0.00%
0.01%
blk_done_softirq 0.00%
0.01%
scsi_softirq_done 0.00%
0.01%
scsi_finish_command 0.00%
0.01%
scsi_io_completion 0.00%
0.01%
blk_end_request 0.00%
0.01%
blk_end_bidi_request 0.00%
0.01%
blk_update_bidi_request 0.00%
0.01%
blk_update_request 0.00%
0.01%
req_bio_endio.isra.46 0.00%
0.01%
bio_endio 0.00%
0.01%
end_swap_bio_write 0.00%
0.01%
end_page_writeback 0.00%
0.01%
rotate_reclaimable_page 0.01%
0.01%
Another possible bottleneck is simply disk access, although it doesn't seem
to be relevant on my system (since I have 100% CPU usage). The 36-second
recording I made was 1.3 GB in size, so that's around 36 MB/s.
Med venlig hilsen,
Rune Kjær Svendsen
Østerbrogade 111, 3. - 302
2100 København Ø
Tlf.: 2835 0726
On Mon, Mar 18, 2013 at 1:20 AM, Marek Olšák <maraeo at gmail.com> wrote:
> Slowness is not usually a bug.
>
> I guess it can be optimized even more. It depends on where the
> bottleneck is now.
>
> Marek
>
> On Sun, Mar 17, 2013 at 10:14 PM, Rune Kjær Svendsen
> <runesvend at gmail.com> wrote:
> > Thank you very much! This is much better. It's gone from 0.5-ish FPS when
> > zooming in to around 10 FPS, depending on screen content.
> >
> > So I figure this isn't a bug? I assumed it was a bug, but is the case
> simply
> > that an efficient glReadPixels path for radeon/gallium doesn't exist?
> >
> > The patch set sure helps in that regard, although it'd be really nice to
> get
> > 30 FPS consistently, if at all possible.
> >
> > Thanks again.
> >
> > /Rune
> >
> >
> > On Sun, Mar 17, 2013 at 6:46 PM, Andreas Boll <
> andreas.boll.dev at gmail.com>
> > wrote:
> >>
> >> 2013/3/17 Rune Kjær Svendsen <runesvend at gmail.com>:
> >> > Hello list
> >> >
> >> > I'm having problems recording the desktop content using the Weston
> >> > compositor's built-in recording function. When I start a recording and
> >> > do
> >> > something that changes a lot of screen content (like zooming in on the
> >> > desktop, for example), I get around 0.5 FPS. Using sysprof, I can see
> >> > that
> >> > ~98% of CPU is used in the function unpack_XRGB8888(). krh has told me
> >> > this
> >> > is caused by glReadPixels going through a slowpath. I have a Radeon HD
> >> > 5770
> >> > GPU and I'm using mesa git (I've tried the mesa version in the Ubuntu
> >> > 12.10
> >> > repos, and the xorg-edgers PPA, same result).
> >> >
> >> > Does anyone know what the issue could be, or how to debug the problem
> >> > further?
> >> >
> >>
> >> This patch series [1] should help. You might want to try it.
> >>
> >> [1]
> http://lists.freedesktop.org/archives/mesa-dev/2013-March/036214.html
> >>
> >> > Doing some debugging, it seems the call to ctx->Driver.ReadPixels() in
> >> > _mesa_ReadnPixelsARB leads to _mesa_readpixels() being called in
> >> > readpix.c.
> >> >
> >> > I'm attaching some output of gdb that will hopefully be useful.
> >> >
> >> > I'm also attaching the debug terminal output of running Weston with
> the
> >> > DRM
> >> > backend.
> >> >
> >> > Let me know if I can provide other useful information.
> >> >
> >> > _______________________________________________
> >> > mesa-dev mailing list
> >> > mesa-dev at lists.freedesktop.org
> >> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >> >
> >
> >
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130326/53476c55/attachment-0001.html>
More information about the mesa-dev
mailing list