[mutter] wayland/dma-buf: Don't advertise modifier support by default
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/dma-buf: Don't advertise modifier support by default
- Date: Thu, 16 Apr 2020 14:09:12 +0000 (UTC)
commit cb05b164140dc6934ff5a00cb4354a5dbf4593ef
Author: Jonas Ådahl <jadahl gmail com>
Date: Thu Sep 12 21:56:17 2019 +0200
wayland/dma-buf: Don't advertise modifier support by default
Advertising support for modifiers means we will most likely not not be
able to scan out client buffers directly, meaning it just as likely that
we won't be able to scan out even fullscreen windows without atomic KMS.
When we have atomic support, we should advertise support for modifiers
if atomic is used to drive the CRTCs, as we by then can check whether we
can scan out directly, place in an overlay plane, etc.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/798
src/wayland/meta-wayland-dma-buf.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
---
diff --git a/src/wayland/meta-wayland-dma-buf.c b/src/wayland/meta-wayland-dma-buf.c
index ac412d214..6d05896e6 100644
--- a/src/wayland/meta-wayland-dma-buf.c
+++ b/src/wayland/meta-wayland-dma-buf.c
@@ -454,6 +454,15 @@ static const struct zwp_linux_dmabuf_v1_interface dma_buf_implementation =
dma_buf_handle_create_buffer_params,
};
+static gboolean
+should_send_modifiers (MetaBackend *backend)
+{
+ MetaSettings *settings = meta_backend_get_settings (backend);
+
+ return meta_settings_is_experimental_feature_enabled (
+ settings, META_EXPERIMENTAL_FEATURE_KMS_MODIFIERS);
+}
+
static void
send_modifiers (struct wl_resource *resource,
uint32_t format)
@@ -476,6 +485,14 @@ send_modifiers (struct wl_resource *resource,
if (wl_resource_get_version (resource) < ZWP_LINUX_DMABUF_V1_MODIFIER_SINCE_VERSION)
return;
+ if (!should_send_modifiers (backend))
+ {
+ zwp_linux_dmabuf_v1_send_modifier (resource, format,
+ DRM_FORMAT_MOD_INVALID >> 32,
+ DRM_FORMAT_MOD_INVALID & 0xffffffff);
+ return;
+ }
+
/* First query the number of available modifiers, then allocate an array,
* then fill the array. */
ret = meta_egl_query_dma_buf_modifiers (egl, egl_display, format, 0, NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]