compositor: don't handle size or viewport src change in surface_update_damage()

This is incorrectly leads to buffer reuploading.
master
Kirill Primak 11 months ago committed by Simon Ser
parent 7dfbd87771
commit 5b08f91004

@ -249,13 +249,6 @@ static void surface_update_damage(pixman_region32_t *buffer_damage,
struct wlr_surface_state *current, struct wlr_surface_state *pending) { struct wlr_surface_state *current, struct wlr_surface_state *pending) {
pixman_region32_clear(buffer_damage); pixman_region32_clear(buffer_damage);
if (pending->width != current->width ||
pending->height != current->height ||
!wlr_fbox_equal(&pending->viewport.src, &current->viewport.src)) {
// Damage the whole buffer on resize or viewport source box change
pixman_region32_union_rect(buffer_damage, buffer_damage, 0, 0,
pending->buffer_width, pending->buffer_height);
} else {
// Copy over surface damage + buffer damage // Copy over surface damage + buffer damage
pixman_region32_t surface_damage; pixman_region32_t surface_damage;
pixman_region32_init(&surface_damage); pixman_region32_init(&surface_damage);
@ -289,7 +282,6 @@ static void surface_update_damage(pixman_region32_t *buffer_damage,
&pending->buffer_damage, &surface_damage); &pending->buffer_damage, &surface_damage);
pixman_region32_fini(&surface_damage); pixman_region32_fini(&surface_damage);
}
} }
static void *surface_synced_create_state(struct wlr_surface_synced *synced) { static void *surface_synced_create_state(struct wlr_surface_synced *synced) {

Loading…
Cancel
Save