Commits on Source (8)
-
Leandro Ribeiro authored
Bump the wayland-protocol dependency version in order to include dma-buf feedback, whose support in Weston is added in the next commits. Also, as we need the newer EGL extension EGL_EXT_device_drm_render_node to add the support for dma-buf feedback, bump the Mesa dependency version as well. It also includes some minor changes in order to keep build-deps.sh more consistent. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
6e98c0df -
Add function to query the DRM device given an EGLDisplay. It is the device being used by the compositor to perform composition. This will be useful in the next commits of this series, where we add support for dma-buf feedback. Signed-off-by: Scott Anderson <scott.anderson@collabora.com> Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
f9787ba4 -
Leandro Ribeiro authored
It simply returns the number of format/modifier pairs in the array. This will be useful for the next commits, in which we add support for dma-buf feedback. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
60c7fee4 -
Leandro Ribeiro authored
This just documents why we can be sure that renderer->get_supported_formats() is set in bind_linux_dmabuf(). Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
18f53ab2 -
Leandro Ribeiro authored
This adds the initial dma-buf feedback implementation, following the changes in the dma-buf protocol extension. The initial dma-buf feedback implementation gives support to send default feedback and per-surface feedback. For now the per-surface feedback support is very basic and is still not implemented in the DRM-backend, what basically means that KMS plane's formats/modifiers are not being exposed to clients. In the next commits of this series we add the DRM-backend implementation. This patch is based on previous work of Scott Anderson (@ascent). Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Signed-off-by: Scott Anderson <scott.anderson@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
8eb8414f -
Leandro Ribeiro authored
Add enum try_view_on_plane_failure_reasons to help us to keep track of the reason why promoting view to a plane failed. We also add a variable to struct weston_paint_node so that we can update this information in each output repaint. This will be used in the next commits, in which we add proper surface dma-buf feedback support. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
0a7034c0 -
Leandro Ribeiro authored
In commit "libweston: add initial dma-buf feedback implementation" we've added initial support to dma-buf feedback, but it was not using the feedback from DRM-backend to add useful per-surface feedback. In this patch we add this. The scanout tranche of the per-surface feedback is based on the union of formats/modifiers of the primary and overlay planes available. These are intersected with the formats/modifiers supported by the renderer device. Also, it's important to mention that the scene can change a lot and we can't predict much. So this patch also adds hysteresis to the dma-buf feedback. We wait a few seconds to be sure that we reached stability before adding or removing the scanout tranche from dma-buf feedback and resending them. This help us to avoid spamming clients and leading to unnecessary buffer reallocations on their end. Here's an example of what we want to avoid: 1. We detect that a view was not placed in a plane only because its format is not supported by the plane, so we add the scanout tranche to the feedback and send the events. 2. A few milliseconds after, the view gets occluded. So now the view can't be placed in a plane anymore. We need to remove the scanout tranche and resend the feedback with formats/modifiers optimal for the renderer device. The client will then reallocate its buffers. 3. A few milliseconds after, the view that was causing the occlusion gets minimized. So we got back to the first situation, in which the format of the view is not compatible with the plane. Then we need to add a scanout tranche and resend the feedback... This patch is based on previous work of Scott Anderson (@ascent). Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Signed-off-by: Scott Anderson <scott.anderson@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
5429302e -
Leandro Ribeiro authored
Simple client to test the dma-buf feedback implementation. This does not replace the need to implement a dma-buf feedback test that can be run in the CI. But as we still don't know exactly how to do this, this client can be helpful to run tests manually. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
18d9ad98
clients/simple-dmabuf-feedback.c
0 → 100644
This diff is collapsed.