Skip to content
  • Olivier Fourdan's avatar
    wayland/egl: Resize EGL surface on update buffer for swrast · 55af17ff
    Olivier Fourdan authored and Juan A. Suárez's avatar Juan A. Suárez committed
    After commit a9fb331e ("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 a9fb331e for
    `swrast_update_buffers()` and resize on the win size and not the
    attached size.
    
    Fixes: a9fb331e
    
     - wayland/egl: update surface size on window resize
    Signed-off-by: default avatarOlivier 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: default avatarJuan A. Suarez <jasuarez@igalia.com>
    55af17ff