diff --git a/types/wlr_surface.c b/types/wlr_surface.c index af1e9446..0f84312e 100644 --- a/types/wlr_surface.c +++ b/types/wlr_surface.c @@ -325,8 +325,7 @@ static void surface_damage_subsurfaces(struct wlr_subsurface *subsurface) { } } -static void surface_apply_damage(struct wlr_surface *surface, - bool invalid_buffer) { +static void surface_apply_damage(struct wlr_surface *surface) { struct wl_resource *resource = surface->current->buffer; if (resource == NULL) { // NULL commit @@ -335,12 +334,6 @@ static void surface_apply_damage(struct wlr_surface *surface, return; } - if (surface->buffer != NULL && !surface->buffer->released && - !invalid_buffer) { - // The buffer is still the same, no need to re-upload - return; - } - if (surface->buffer != NULL && surface->buffer->released) { pixman_region32_t damage; pixman_region32_init(&damage); @@ -376,7 +369,9 @@ static void surface_commit_pending(struct wlr_surface *surface) { surface_move_state(surface, surface->pending, surface->current); - surface_apply_damage(surface, invalid_buffer); + if (invalid_buffer) { + surface_apply_damage(surface); + } // commit subsurface order struct wlr_subsurface *subsurface;