etnaviv glReadPixels hits slow paths
weston (https://gitlab.freedesktop.org/wayland/weston) takes screenshots by asynchronous readback to a buffer object, as of wayland/weston@b9be532b (which is not at this time in a release)
This glReadPixels()
takes a very pessimistic path in the etnaviv driver, involving a large number of convert_ubyte
calls, taking hundreds of milliseconds.
My naive and incorrect fix for this in !28116 (closed) proposed enabling BLIT texture transfers, but that has disappointing side effects, breaking all of the CI.
To hit this slow path, using weston new enough to include this code hit mod-S to capture a screenshot, or launch weston --debug
and run the weston-screenshooter
client.
I'm seeing this on hardware with a GC7000 GPU.