mutter/src
Jonas Ådahl 53b52e26f5 screen-cast/monitor: Always use clutter_stage_paint_to_framebuffer()
'screen-cast/monitor-src: Use clutter_stage_paint_to_buffer'
(6c818cd8d5) made the non-dma-buf path use
clutter_stage_paint_to_buffer() to avoid running into direct scanout
issues. At a glance, the dma-buf paths didn't have the same issue since
it explicitly handled dma-bufs by blitting them.

What it also did was move the recording to an idle callback, to avoid
paint reentry issues. A side effect of this, however, is that it also
broke the dma-buf paths, as they rely on the back buffer existing, and
the stage view direct scanout already being setup, which it isn't in an
idle callback.

Fix this by using the dma-buf variant of
clutter_stage_paint_to_buffer(): clutter_stage_paint_to_framebuffer().
This has some negative performance impact, but we can't use
cogl_blit_framebuffer() when using an idle callback for recording.

Potential performance improvements to make things work more as they did
before is to enhance 'cogl_blit_framebuffer()' a bit, making it a vfunc
that could be implemented by MetaOnscreenNative. A flag to say whether
to look at the back or front buffer would let MetaOnscreenNative know
whether to use the already committed-to-KMS buffer, or the current back
buffer.

Fixes: 6c818cd8d5
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2282
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2462>
2022-06-28 09:54:40 +00:00
..
backends screen-cast/monitor: Always use clutter_stage_paint_to_framebuffer() 2022-06-28 09:54:40 +00:00
compositor Remove checks for GLSL 2022-06-03 12:57:31 +00:00
core x11: Let X11 connection owners call XSynchronize() themselves 2022-06-03 13:43:26 +00:00
meta backends: Move MetaKeyboardA11yFlags to a public header 2022-06-14 18:04:05 +02:00
tests tests/clutter: Add color state conform tests 2022-06-09 15:00:07 +00:00
ui window: Move icon management to X11 implementation 2022-02-07 17:52:05 +00:00
wayland wayland/dma-buf: Free feedback in surface_feedback_surface_destroyed_cb 2022-06-16 10:24:42 +00:00
x11 x11: Let X11 connection owners call XSynchronize() themselves 2022-06-03 13:43:26 +00:00
libmutter.pc.in build: Fix libs and cflags in autotools .pc file 2018-11-10 16:20:46 +00:00
meson.build tests: Add basic X11 WM test 2022-06-02 17:19:42 +00:00
meta-private-enum-types.c.in core: Drop "volatile" from static GTypes in manual registration 2021-03-22 10:47:51 +00:00
meta-private-enum-types.h.in screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00