Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

fix(wayland) : buffer->busy is always true in cpu render mode #242

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions wayland/wayland.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ struct buffer_hdl
int size;
struct wl_buffer *wl_buffer;
bool busy;
bool buffer_feedback;
};

struct buffer_allocator
Expand Down Expand Up @@ -1212,6 +1213,10 @@ static const struct wl_registry_listener registry_listener = {
static void handle_wl_buffer_release(void *data, struct wl_buffer *wl_buffer)
{
struct buffer_hdl *buffer_hdl = (struct buffer_hdl *)data;
if (!buffer_hdl->buffer_feedback)
{
buffer_hdl->buffer_feedback = true;
}
buffer_hdl->busy = false;
}

Expand Down Expand Up @@ -1926,6 +1931,11 @@ static void _lv_wayland_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv
const lv_coord_t hres = (disp_drv->rotated == 0) ? (disp_drv->hor_res) : (disp_drv->ver_res);
const lv_coord_t vres = (disp_drv->rotated == 0) ? (disp_drv->ver_res) : (disp_drv->hor_res);

if (!buffer->buffer_feedback)
{
buffer->busy = false;
}

/* If private data is not set, it means window has not been initialized */
if (!window)
{
Expand Down