mutter/src/wayland
Dor Askayo f037c9df66 wayland/dma-buf: Don't require modifiers support for scanout tranche
When building the list of formats to be sent as part of the scanout
tranche, avoid requiring modifier support by the DRM driver for
formats relying on implicit modifiers (DRM_FORMAT_MOD_INVALID).

Specifically, the previous check required the DRM driver to have
advertised some modifier support for the given format in its
IN_FORMATS KMS plane property, regardless of modifier it was. If it
hadn't, the format was left out of the list of formats to be sent
in the scanout tranche.

When no formats remained to be sent in the scanout tranche, the
tranche simply wasn't sent.

This resulted in the scanout tranche never being sent for GPUs where
modifiers aren't supported. In those cases, no formats are advertised
using the IN_FORMATS property, and thus the list of formats to be sent
in the scanout tranche remained empty.

Since Mesa doesn't use scanout-compatible buffers for native Wayland
clients unless specifically requested to do so using the "scanout"
tranche flag, it effectively means that direct scanout of native
Wayland clients wasn't supported for GPUs without modifiers support.

Sending a tranche with formats paired with the implicit modifier
(DRM_FORMAT_MOD_INVALID) is both allowed by the protocol and is
already done by default for GPUs with modifiers support, unless the
experimental support for explicit modifiers is enabled in Mutter.

So instead of requiring modifiers to be supported for each format
being evaluated for the scanout tranche, when processing formats
which rely on implicit modifiers, only check if the format in
question is supported by the DRM driver for scanout on the primary
plane.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2510>
2022-07-12 18:53:30 +03:00
..
protocol wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-cursor-sprite-wayland.c cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-cursor-sprite-wayland.h cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-pointer-confinement-wayland.c wayland/pointer-confinement: Scale region with the geometry scale 2022-06-13 18:38:51 +00:00
meta-pointer-confinement-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-lock-wayland.c pointer-constraints: Move min edge distance from backend to Wayland 2022-06-13 18:38:50 +00:00
meta-pointer-lock-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-selection-source-wayland-private.h wayland: Move MetaWaylandDataSourcePrimary to its own file 2020-04-17 00:46:23 +02:00
meta-selection-source-wayland.c wayland: Simplify MetaSelectionSourceWayland 2019-10-11 23:04:01 +02:00
meta-wayland-activation.c wayland: Handle xdg_activation_v1_activate on non XDG activation tokens 2022-02-28 17:34:27 +01:00
meta-wayland-activation.h wayland: Implement the xdg-activation protocol 2021-07-09 09:34:28 +00:00
meta-wayland-actor-surface.c wayland/actor-surface: Consider clones in is_on_logical_monitor() 2022-07-11 18:18:56 +00:00
meta-wayland-actor-surface.h wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-wayland-buffer.c wayland/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +00:00
meta-wayland-buffer.h wayland/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +00:00
meta-wayland-client.c wayland/client: Restore the NOFILE limit 2022-02-07 16:11:47 +01:00
meta-wayland-cursor-surface.c cursor-sprite: Register all cursor sprites with the cursor tracker 2021-12-22 16:22:08 +00:00
meta-wayland-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-data-device-primary.c wayland: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +00:00
meta-wayland-data-device-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-device.c dnd: Notify about events during compositor grab from event filter 2022-03-02 15:12:23 +00:00
meta-wayland-data-device.h dnd: Notify about events during compositor grab from event filter 2022-03-02 15:12:23 +00:00
meta-wayland-data-offer-primary.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-data-offer-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-offer.c wayland/data-offer: Fix indentation in data_offer_finish() 2021-10-14 21:08:42 +00:00
meta-wayland-data-offer.h wayland: Move primary data offers to their own file 2020-04-17 00:46:23 +02:00
meta-wayland-data-source-primary.c wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source.c wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-data-source.h wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-dma-buf.c wayland/dma-buf: Don't require modifiers support for scanout tranche 2022-07-12 18:53:30 +03:00
meta-wayland-dma-buf.h wayland/dma-buf: Make manager object a GObject 2022-01-05 16:36:48 +00:00
meta-wayland-dnd-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-wayland-dnd-surface.h wayland: Move DND surface role into its own file 2019-01-22 18:32:28 +01:00
meta-wayland-egl-stream.c wayland/buffer: Only query Wayland EGL buffer if display bound 2022-05-17 10:09:27 +00:00
meta-wayland-egl-stream.h wayland/egl-stream: Cache texture snippet 2020-01-10 16:01:21 +00:00
meta-wayland-gtk-shell.c wayland/gtk: Only perform allowed titlebar gestures 2022-02-10 20:00:15 +01:00
meta-wayland-gtk-shell.h wayland: Add MetaWaylandGtkShell object 2018-11-27 15:34:13 +01:00
meta-wayland-inhibit-shortcuts-dialog.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts-dialog.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-inhibit-shortcuts.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-input-device.c wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-input-device.h wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-keyboard.c wayland/keyboard: Remove unnused define 2022-02-22 11:05:36 +01:00
meta-wayland-keyboard.h wayland: Check keyboard serials for activation 2021-12-13 14:49:14 +00:00
meta-wayland-outputs.c wayland/output: Always set xdg_output interface implementation 2021-12-02 20:07:49 +00:00
meta-wayland-outputs.h wayland/output: Move struct to C file 2021-08-22 16:40:42 +00:00
meta-wayland-pointer-constraints.c wayland: Ensure pointer constraint region consistency 2021-01-12 12:32:24 +01:00
meta-wayland-pointer-constraints.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-hold.c wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00:00
meta-wayland-pointer-gesture-hold.h wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00:00
meta-wayland-pointer-gesture-pinch.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-pinch.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-swipe.c wayland/pointer-gestures: Fix swipe cancellation 2021-06-15 22:22:30 +00:00
meta-wayland-pointer-gesture-swipe.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gestures.c wayland/pointer-gestures: Implement hold gesture 2021-12-02 20:48:24 +00:00
meta-wayland-pointer-gestures.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer.c wayland: Remove unnecessary COMPOSITOR_GRAB checks 2022-05-28 10:25:29 +00:00
meta-wayland-pointer.h wayland: Make the pointer leave non-alive surfaces 2021-12-07 17:15:21 +00:00
meta-wayland-popup.c wayland: Make implicit grabs during popups be owner_events=TRUE 2021-06-09 19:00:15 +00:00
meta-wayland-popup.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-presentation-time-private.h wayland: Send presentation feedbacks to cursors 2021-03-08 09:48:12 +00:00
meta-wayland-presentation-time.c wayland/output: Move struct to C file 2021-08-22 16:40:42 +00:00
meta-wayland-private.h xwayland: Only warn on X IO errors when X11 is mandatory 2022-05-31 12:00:55 +00:00
meta-wayland-region.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-region.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-seat.c wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-wayland-seat.h wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-wayland-shell-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-wayland-shell-surface.h wayland: Rework asynchronous window configuration 2019-12-09 10:09:40 +01:00
meta-wayland-subsurface.c wayland/subsurface: Move actor unparenting back to rebuild_surface_tree() 2022-07-11 17:23:10 +00:00
meta-wayland-subsurface.h wayland/subsurface: Avoid placement ops for detached subsurfaces 2021-04-19 11:55:49 +00:00
meta-wayland-surface.c wayland/pointer-confinement: Scale region with the geometry scale 2022-06-13 18:38:51 +00:00
meta-wayland-surface.h wayland/surface: Remove leftover function declarations 2022-07-01 16:05:33 +00:00
meta-wayland-tablet-cursor-surface.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-manager.c wayland: Check input device capabilities in tablet seats 2022-03-30 12:06:52 +00:00
meta-wayland-tablet-manager.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet-pad-group.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-group.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-ring.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-ring.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-strip.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-strip.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad.c wayland/tablet-pad: Fix fallthrough warning 2022-03-04 23:12:24 +00:00
meta-wayland-tablet-pad.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-seat.c wayland: Check input device capabilities in tablet seats 2022-03-30 12:06:52 +00:00
meta-wayland-tablet-seat.h wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:02:34 +01:00
meta-wayland-tablet-tool.c wayland: Remove unnecessary COMPOSITOR_GRAB checks 2022-05-28 10:25:29 +00:00
meta-wayland-tablet-tool.h backends: Replace MetaCursorSprite::prepare-at with in-place function 2021-12-07 20:04:08 +00:00
meta-wayland-tablet.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-text-input.c wayland: Avoid repeated NULL preedit string updates 2022-04-30 15:10:17 +00:00
meta-wayland-text-input.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-touch.c wayland: Move away from clutter_event_get_source() 2022-03-04 10:58:28 +00:00
meta-wayland-touch.h wayland: Simplify wl_touch.frame handling 2020-10-23 18:48:18 +00:00
meta-wayland-types.h wayland: Add getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-wayland-versions.h wayland: Remove Gtk primary selection protocol 2022-05-18 20:15:08 +00:00
meta-wayland-viewporter.c wayland/surface: Rename MetaWaylandPendingState to MetaWaylandSurfaceState 2019-12-09 10:09:40 +01:00
meta-wayland-viewporter.h wayland/surface: Add support for wp_viewporter 2019-02-06 12:24:03 +00:00
meta-wayland-window-configuration.c window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-wayland-window-configuration.h window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-wayland-xdg-foreign.c wayland: Drop xdg-shell v6 protocol 2022-05-18 19:29:08 +00:00
meta-wayland-xdg-foreign.h wayland: Add support for the xdg-foreign protocol 2016-08-22 21:03:41 +08:00
meta-wayland-xdg-shell.c wayland/xdg-shell: Add toplevel bounds support 2022-03-04 14:48:25 +00:00
meta-wayland-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland.c wayland: Add getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-wayland.h wayland: Add getter for XWayland manager object 2022-05-31 12:00:54 +00:00
meta-window-wayland.c window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-window-wayland.h window/wayland: Always include a size when sending a configuration 2022-03-05 13:18:58 +00:00
meta-window-xwayland.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-dnd-private.h wayland: Reduce MetaXWaylandSelection to just DnD 2019-05-02 16:31:45 +02:00
meta-xwayland-dnd.c wayland/xdnd: Use multiple DnD X11 peers 2022-02-25 11:35:35 +01:00
meta-xwayland-grab-keyboard.c xwayland-grab-keyboard: Switch to g_pattern_spec_match_string() 2021-08-12 13:11:31 +00:00
meta-xwayland-grab-keyboard.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-xwayland-private.h xwayland: Init/shutdown DND using MetaX11Display 2021-10-26 16:55:12 +02:00
meta-xwayland-surface.c wayland/surface-role: Make geometry scale API return int 2022-06-13 18:38:50 +00:00
meta-xwayland-surface.h xwayland: Move out surface role related logic 2020-02-19 22:34:28 +00:00
meta-xwayland.c xwayland: Remove stray newline 2022-05-31 12:00:55 +00:00
meta-xwayland.h xwayland: Add API to send signal to the Xwayland process 2022-05-31 12:00:55 +00:00