display: make SAFE double-buffer non-blocking with pending submit

This commit is contained in:
Stanislav N Mikhailov
2026-04-04 20:38:35 +03:00
parent 529daa68c8
commit a2e378d911
3 changed files with 86 additions and 23 deletions
+4 -3
View File
@@ -78,7 +78,8 @@ uint16_t* display_begin_paint_try(void);
/* Блокирующе начинает рисование кадра и возвращает валидный буфер. */
uint16_t* display_begin_paint_blocking(void);
/* Завершает рисование кадра и запускает его отправку; false при ошибке контракта. */
/* Завершает рисование кадра и передаёт его в вывод (в SAFE+2 возможна отложенная отправка). */
/* false при ошибке контракта или переполнении очереди из одного pending-кадра. */
bool display_end_paint(void);
@@ -99,11 +100,11 @@ bool display_swap_buffers(void);
============================================================ */
/* Запускает DMA-передачу текущего scanout-буфера. */
/* Возвращает false, если DMA занят или сейчас открыта paint-секция. */
/* В SAFE+2 при занятом DMA ставит кадр в очередь из одного pending-кадра. */
bool display_submit(void);
/* Возвращает true, когда DMA неактивен и можно отправлять следующий кадр. */
/* Возвращает true, когда DMA неактивен и нет отложенного pending-кадра. */
bool display_ready(void);