1. 21 Jul, 2020 1 commit
  2. 16 Jul, 2020 9 commits
  3. 13 Jul, 2020 1 commit
  4. 29 Apr, 2020 1 commit
  5. 04 Mar, 2020 1 commit
  6. 02 Mar, 2020 1 commit
    • Ivan Molodetskikh's avatar
      egl: allow INVALID format for linux_dmabuf · c376865f
      Ivan Molodetskikh authored
      As per
      the compositor may advertise DRM_FORMAT_MOD_INVALID as a supported
      modifier. This patch makes mesa recognize this fact and allow
      linux_dmabuf usage with the INVALID modifier in this case.
      In case the driver doesn't support modifiers, we can still use
      linux-dmabuf protocol instead of the legacy wl_drm interface to create
      wl_buffers. This will help compositors to handle these buffers better.
      In this commit, the INVALID modifier is allowed to be added to the list
      of supported modifiers, and create_wl_buffer will be able to use
      linux_dmabuf with an INVALID modifier if the compositor advertised it as
      Signed-off-by: Ivan Molodetskikh's avatarIvan Molodetskikh <yalterz@gmail.com>
      Tested-by: Marge Bot <!2147>
      Part-of: <!2147>
  7. 18 Oct, 2019 1 commit
  8. 11 Oct, 2019 1 commit
  9. 20 Sep, 2019 3 commits
  10. 21 Aug, 2019 1 commit
  11. 13 Aug, 2019 1 commit
  12. 07 Aug, 2019 1 commit
  13. 01 Jul, 2019 1 commit
  14. 10 Jun, 2019 1 commit
  15. 05 Jun, 2019 1 commit
    • Emil Velikov's avatar
      egl/dri: flesh out and use dri2_create_drawable() · 2282ec0a
      Emil Velikov authored
      Wrap the loader->createNewDrawable() dance into a helper and use it
      throughout the codebase.
      This addresses a cases like surfaceless (SL) on swrast (SL on kms_swrast
      is fine) where we'd attempt using the wrong driver and crash out.
      v2: fixup quirky GBM (Mathias)
      v3: fixup GBM for real (Marek)
      Cc: mesa-stable@lists.freedesktop.org
      Cc: Mathias Fröhlich <Mathias.Froehlich@web.de>
      Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de> (v1)
      Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v1)
      Signed-off-by: Emil Velikov <emil.velikov@collabora.com> (v2)
      Signed-off-by: Marek Olšák <marek.olsak@amd.com> (v2)
      Reviewed-by: Emil Velikov's avatarEmil Velikov <emil.velikov@collabora.com>
  16. 14 May, 2019 2 commits
  17. 20 Feb, 2019 1 commit
  18. 14 Feb, 2019 1 commit
  19. 29 Jan, 2019 2 commits
    • Mario Kleiner's avatar
      egl/wayland-drm: Only announce formats via wl_drm which the driver supports. · 820dfcea
      Mario Kleiner authored and Adam Jackson's avatar Adam Jackson committed
      Check if a pixel format is supported by the Wayland servers gpu driver
      before exposing it to the client via wl_drm, so we avoid reporting formats
      to the client which the server gpu can't handle.
      Restrict this reporting to the new color depth 30 formats for now, as the
      ARGB/XRGB8888 and RGB565 formats are probably supported by every gpu under
      the sun.
      Atm. this is mostly useful to allow proper PRIME renderoffload for depth
      30 formats on the typical Intel iGPU + NVidia dGPU "NVidia Optimus" laptop
      Tested on Intel, AMD, NVidia with single-gpu setup and on a Intel + NVidia
      Optimus setup.
      Signed-off-by: Mario Kleiner's avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
    • Mario Kleiner's avatar
      egl/wayland: Allow client->server format conversion for PRIME offload. (v2) · a34b0d68
      Mario Kleiner authored and Adam Jackson's avatar Adam Jackson committed
      Support PRIME render offload between a Wayland server gpu and a Wayland
      client gpu with different channel ordering for their color formats,
      e.g., between Intel drivers which currently only support ARGB2101010
      and XRGB2101010 import/display and nouveau which only supports ABGR2101010
      rendering and display on nv-50 and later.
      In the wl_visuals table, we also store for each format an alternate
      sibling format which stores colors at the same precision, but with
      different channel ordering, e.g., ARGB2101010 <-> ABGR2101010.
      If a given client-gpu renderable format is not supported by the server
      for import, but the alternate format is supported by the server, expose
      the client-gpu renderable format as a valid EGLConfig to the client. At
      eglSwapBuffers time, during the blitImage() detiling blit from the client
      backbuffer to the linear buffer, the client format is converted to the
      server supported format. As we have to do a copy for PRIME anyway,
      this channel swizzling conversion comes essentially for free.
      Note that even if a server gpu in principle does support sampling
      from the clients native format, this conversion will be a performance
      advantage if it allows to convert to the servers preferred format
      for direct scanout, as the Wayland compositor may then be able to
      directly page-flip a fullscreen client wl_buffer onto the primary
      plane, or onto a hardware overlay plane, avoiding an extra data copy
      for desktop composition.
      Tested so far under Weston with: nouveau single-gpu, Intel single-gpu,
      AMD single-gpu, "Optimus" Intel server iGPU for display + NVidia
      client dGPU for rendering.
      v2: Implement minor review comments by Eric Engestrom: Add some
          comment and assert, and some style fixes for clarity.
          No functional change.
      Signed-off-by: Mario Kleiner's avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
  20. 28 Nov, 2018 3 commits
  21. 16 Nov, 2018 1 commit
  22. 06 Nov, 2018 1 commit
    • 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
      This can be observed with "totem" using the GDK backend on Wayland (the
      default) when running on software rendering:
      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: Juan A. Suárez's avatarJuan A. Suarez <jasuarez@igalia.com>
  23. 01 Nov, 2018 1 commit
  24. 31 Aug, 2018 1 commit
    • Juan A. Suárez's avatar
      egl/wayland: do not leak wl_buffer when it is locked · 54a9622d
      Juan A. Suárez authored
      If color buffer is locked, do not set its wayland buffer to NULL;
      otherwise it can not be freed later.
      Rather, flag it in order to destroy it later on the release event.
      v2: instruct release event to unlock only or free wl_buffer too (Daniel)
      This also fixes dEQP-EGL.functional.swap_buffers_with_damage.* tests.
      CC: Daniel Stone <daniel@fooishbar.org>
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
  25. 21 Aug, 2018 1 commit
  26. 16 Aug, 2018 1 commit