[PATCH weston] compositor: Assign new views to the primary plane

Daniel Stone daniel at fooishbar.org
Fri Dec 9 17:27:13 UTC 2016


Hi,

On 9 December 2016 at 16:35, Daniel Stone <daniels at collabora.com> wrote:
> However, this is undesirable for DRM. In a multi-output situation,
> we would see a view only visible on another output, reasonably decide we
> didn't want it in a plane on our output, and move it to the primary
> plane, causing damage, and an output repaint. The plane wouldn't be
> assigned until the other output ran through repaint.
>
> For large SHM buffers (weston_surface->keep_buffer as false), this means
> that the other output would assign it to a plane later, which caused
> weston_surface_damage to be called - in the exact way the comment says
> it shouldn't - which triggered a flush and buffer upload. By this stage,
> the buffer content would be gone and we would upload garbage.

Er, I can't English this afternoon. Imagine the above two paragraphs
never happened, and mentally replace them with:

However, this is undesirable for DRM. With multi-output, when
assign_planes() is called, any view which wasn't on a plane for our
putput was moved to the primary plane, thus causing damage, and an
output repaint. Fixing this, to ignore views which do not touch our
output at all, means that the view wouldn't have a plane assigned until
the other output eventually ran through repaint.

For large SHM buffers (weston_surface->keep_buffer == false), this means
that by the time the other output assigned it to a plane, the buffer may
have been discarded on the client side.

Cheers,
Daniel


More information about the wayland-devel mailing list