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);
@ -290,7 +283,6 @@ static void surface_update_damage(pixman_region32_t *buffer_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) {
void *state = calloc(1, synced->impl->state_size); void *state = calloc(1, synced->impl->state_size);

Loading…
Cancel
Save