[Mesa-dev] Very low framerate when recording desktop content in Weston using mesa git on Radeon 5770 (glReadPixels slow path)
Pekka Paalanen
ppaalanen at gmail.com
Tue Mar 26 00:58:54 PDT 2013
On Tue, 26 Mar 2013 03:30:58 +0100
Rune Kjær Svendsen <runesvend at gmail.com> wrote:
> 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%
Well, if you look at weston_recorder_frame_notify function, it has a
naive loop over each single pixel it processes. component_delta() may
get inlined, and output_run() you saw in the profile.
I think it's possible it actually is weston_recorder_frame_notify
eating the CPU. Can you get more precise profiling, like hits per source
line or instruction?
Thanks,
pq
More information about the mesa-dev
mailing list