mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
wayland/egl: Resize EGL surface on update buffer for swrast
After commita9fb331ea("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 commita9fb331eafor `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> (cherry picked from commit55af17ffed)
This commit is contained in:
parent
7053fe50c3
commit
a93d19f542
1 changed files with 2 additions and 2 deletions
|
|
@ -1661,8 +1661,8 @@ swrast_update_buffers(struct dri2_egl_surface *dri2_surf)
|
|||
if (dri2_surf->back)
|
||||
return 0;
|
||||
|
||||
if (dri2_surf->base.Width != dri2_surf->wl_win->attached_width ||
|
||||
dri2_surf->base.Height != dri2_surf->wl_win->attached_height) {
|
||||
if (dri2_surf->base.Width != dri2_surf->wl_win->width ||
|
||||
dri2_surf->base.Height != dri2_surf->wl_win->height) {
|
||||
|
||||
dri2_wl_release_buffers(dri2_surf);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue