libweston: Composition bypass of dmabuf buffer
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 awl_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 thatstruct zwp_linux_buffer_params_v1
has been created and it is being used in theenable
request. Protocol is very simple, with a simple request. - identical to version 2: refuse to create a
wl_buffer
if theenable
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
anddmabuf-drm
. Will adaptdmabuf-v4l
once this get merged.
Version 2:
- s/
NO_GPU_IMPORT
/DIRECT_DISPLAY
- posted protocol update on ML: https://lists.freedesktop.org/archives/wayland-devel/2019-November/040993.html
- addressing comments.
PS: squash is not activated!
Edited by Marius Vlad