]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
drm: Retry setting scanout buffer on failure
authorOleg Solovyov <mcpain@altlinux.org>
Wed, 8 Dec 2021 16:15:47 +0000 (19:15 +0300)
committerRay Strode <halfline@gmail.com>
Sat, 15 Jan 2022 04:58:38 +0000 (04:58 +0000)
Plymouth currently assumes that setting the scanout buffer will succeed.
if it fails because of a driver bug or transient failure it should try
again next frame.

This commit adds that error handling code.

src/plugins/renderers/drm/plugin.c

index 02e9413a5f8c78b9dac2c998cdc8a74cf03d322d..10711c65d3b2af55a36455057d649a0ec8b8ecad 100644 (file)
@@ -1628,9 +1628,9 @@ reset_scan_out_buffer_if_needed (ply_renderer_backend_t *backend,
                         return false;
 
         if (head->scan_out_buffer_needs_reset) {
-                ply_renderer_head_set_scan_out_buffer (backend, head,
-                                                       head->scan_out_buffer_id);
-                head->scan_out_buffer_needs_reset = false;
+                did_reset = ply_renderer_head_set_scan_out_buffer (backend, head,
+                                                                   head->scan_out_buffer_id);
+                head->scan_out_buffer_needs_reset = !did_reset;
                 return true;
         }