Skip to content

libweston: Composition bypass of dmabuf buffer

Marius Vlad requested to merge mvlad/weston:no-gpu-import into master

This series adds a (at the time of speaking a not-really-available) NO_GPU_IMPORT dmabuf flag to avoid importing the dmabuf into the GL-renderer. The flag will most likely suffer a name change to better reflect its purpose (like a no CPU/GPU interaction/touch over the buffer).

The series does the following

  • perform a KMS import test if NO_GPU_IMPORT flag is passed. If that fails we reject creation of a wl_buffer
  • do not call into the renderer to create a EGL image if NO_GPU_IMPORT is passed
  • there is no GPU import/attach of the dmabuf when that flag is passed
  • if there's no import the attach part will need to avoid touching any EGL image bits
  • in case the view will not reach one of the HW planes available (from various reason like damage tracking) we display a solid shader color

For linux-dmabuf protocol modifications are in one of my forks: https://gitlab.freedesktop.org/marius.vlad0/wayland-protocols/merge_requests/3

Version 3:

  • ditched unstable/linux-dmabuf flag in favor of a private weston extension. Assumes that struct zwp_linux_buffer_params_v1 has been created and it is being used in the enable request. Protocol is very simple, with a simple request.
  • identical to version 2: refuse to create a wl_buffer if the enable request was sent and KMS import failed, placeholder is in-place in case the view assignment or damage tracking interferes with it.
  • adds the client part of the protocol into dmabuf-egl and dmabuf-drm. Will adapt dmabuf-v4l once this get merged.

Version 2:

PS: squash is not activated!

Edited by Marius Vlad

Merge request reports