447c51e68e
Don't mode set each CRTC in separate KMS updates, as reconfiguring one CRTC might cause other CRTCs to be implicitly reset thus as well, causing KMS return EBUSY if using atomic modesetting. Prepare for this by compositing each CRTC first including adding steps to the KMS update, but wait until all views has rendered at least once before posting the initial update. After this each CRTC is posted separately. Using EGLStreams instead of normal page flipping seems to fail when doing this though, so handle that the old way for the EGLStream case, i.e. eglSwapBuffers() -> mode set with dumb buffer -> eglStream "acquire" (resulting in page flip under the hood). For this we also introduce a new error code so that we don't use client buffers when doing mode sets, which could accidentally configure the CRTC in a way that is incompatible with the primary plane buffers. Do the same also when we're in power save mode, to only have one special case path for this scenario in the regular swap-buffer path. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488> |
||
---|---|---|
.. | ||
cogl | ||
cogl-pango | ||
test-fixtures | ||
tests | ||
.gitignore | ||
cogl-config.h.meson | ||
cogl-mutter-config.h.in | ||
config-custom.h | ||
meson.build |