mirror of
https://github.com/brl/mutter.git
synced 2025-08-01 06:08:54 +00:00
kms: Add atomic MetaKmsImplDevice backend
This adds a MetaKmsImplDevice backend using atomic drmMode* API in constrast to non-atomic legacy drmMode* API used in MetaKmsImplDeviceSimple. This has various behavioral differences worth noting, compared to the simple backend: * We can only commit once per CRTC per page flip. This means that we can only update the cursor plane once. If a primary plane composition missed a dead line, we cannot commit only a cursor update that would be presented earlier. * Partial success is not possible with the atomic backend. Cursor planes may fail with the simple backend. This is not the case with the atomic backend. This will instead later be handled using API specific to the atomic backend, that will effectively translate into TEST_ONLY commits. For testing and debugging purposes, the environment variable MUTTER_DEBUG_ENABLE_ATOMIC_KMS can be set to either 1 or 0 to force-enable or force-disable atomic mode setting. Setting it to some other value will cause mutter to abort(). Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/548 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488>
This commit is contained in:
@@ -3330,6 +3330,7 @@ meta_renderer_native_finish_frame (MetaRendererNative *renderer_native,
|
||||
CLUTTER_FRAME_RESULT_PENDING_PRESENTED);
|
||||
break;
|
||||
case META_KMS_FEEDBACK_FAILED:
|
||||
add_onscreen_frame_info (crtc);
|
||||
clutter_frame_set_result (frame,
|
||||
CLUTTER_FRAME_RESULT_PENDING_PRESENTED);
|
||||
|
||||
|
Reference in New Issue
Block a user