wayland/egl: Resize EGL surface on update buffer for swrast
authorOlivier Fourdan <ofourdan@redhat.com>
Thu, 25 Oct 2018 12:48:15 +0000 (14:48 +0200)
committerJuan A. Suarez Romero <jasuarez@igalia.com>
Tue, 6 Nov 2018 12:59:38 +0000 (13:59 +0100)
commit55af17ffed289bdcc1396829e461245644175ed4
tree0b30bdf4cccbee60b8da33b5d66d0b522df10a35
parentb47a69ed4c907df5917de10cbe5ef12e2d900bce
wayland/egl: Resize EGL surface on update buffer for swrast

After commit a9fb331ea ("wayland/egl: update surface size on window
resize"), the surface size is updated as soon as the resize is done, and
`update_buffers()` would resize only if the surface size differs from
the attached size.

However, in the case of swrast, there is no resize callback and the
attached size is updated in `dri2_wl_swrast_commit_backbuffer()` prior
to the `swrast_update_buffers()` so the attached size is always up to
date when it reaches `swrast_update_buffers()` and the surface is never
resized.

This can be observed with "totem" using the GDK backend on Wayland (the
default) when running on software rendering:

  $ LIBGL_ALWAYS_SOFTWARE=true CLUTTER_BACKEND=gdk totem

Resizing the window would leave the EGL surface size unchanged.

To avoid the issue, partially revert the part of commit a9fb331ea for
`swrast_update_buffers()` and resize on the win size and not the
attached size.

Fixes: a9fb331ea - wayland/egl: update surface size on window resize
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
CC: Daniel Stone <daniel@fooishbar.org>
CC: Juan A. Suarez Romero <jasuarez@igalia.com>
CC: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
src/egl/drivers/dri2/platform_wayland.c