1. 29 Apr, 2021 1 commit
    • Erik Kurzinger's avatar
      xwayland-eglstream: fix X11 rendering to flipping GL / VK window · 07f26e16
      Erik Kurzinger authored
      
      
      If a window is being used for direct rendering with OpenGL or Vulkan, and is
      using the flipping path for presentation, it's pixmap will be set to a dma-buf
      backed pixmap created by the client-side GL driver. However, this means that
      xwl_glamor_eglstream_post_damage won't work since it requires that the pixmap
      has an EGLSurface that it can render to, which dma-buf backed pixmaps do not.
      
      In this case, though, xwl_glamor_eglstream_post_damage is not necessary since
      glamor will have rendered directly to the pixmap, so we can simply pass it
      directly to the compositor. There's no need for the intermediate copy we
      normally do in that function.
      
      Therefore, this change adds an early-return case to post_damage for dma-buf
      backed pixmaps, and removes the corresponding asserts from that function and
      allow_commits.
      Signed-off-by: Erik Kurzinger's avatarErik Kurzinger <ekurzinger@nvidia.com>
      Acked-by: Olivier Fourdan's avatarOlivier Fourdan <ofourdan@redhat.com>
      07f26e16
  2. 09 Apr, 2021 2 commits
  3. 08 Jan, 2021 1 commit
  4. 23 Nov, 2020 1 commit
  5. 19 Nov, 2020 1 commit
  6. 30 Oct, 2020 1 commit
  7. 22 Sep, 2020 2 commits
  8. 05 Jul, 2020 1 commit
  9. 06 Jan, 2020 1 commit
  10. 20 Dec, 2019 4 commits
  11. 28 Nov, 2019 1 commit
    • Olivier Fourdan's avatar
      xwayland: Add buffer release callback · 77658741
      Olivier Fourdan authored
      
      
      The API `wl_buffer_add_listener` is misleading in the sense that there
      can be only one `wl_buffer` release callback, and trying to add a new
      listener when once is already in place will lead to a protocol error.
      
      The Xwayland EGL backends may need to set up their own `wl_buffer`
      release listener, meaning that there is no way to our own `wl_buffer`
      release callback.
      
      To avoid the problem, add our own callback API to be notified when the
      `wl_buffer` associated with an `xwl_pixmap` is released, triggered from
      the different `xwl_pixmap` implementations.
      
      Also update the Present code to use the new buffer release callback API.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <ofourdan@redhat.com>
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <mdaenzer@redhat.com>
      77658741
  12. 08 Nov, 2019 1 commit
  13. 04 Nov, 2019 1 commit
    • Hans de Goede's avatar
      glamor/xwayland: Define EGL_NO_X11 · 741bd734
      Hans de Goede authored
      
      
      Define EGL_NO_X11 everywhere were we also define MESA_EGL_NO_X11_HEADERS,
      EGL_NO_X11 is the MESA_EGL_NO_X11_HEADERS equivalent for the egl headers
      shipped with libglvnd.
      
      This fixes the xserver not building with the libglvnd-1.2.0 headers:
      
      In file included from /usr/include/EGL/eglplatform.h:128,
                       from /usr/include/epoxy/egl_generated.h:11,
                       from /usr/include/epoxy/egl.h:46,
                       from glamor_priv.h:43,
                       from glamor_composite_glyphs.c:25:
      /usr/include/X11/Xlib.h:222:2: error: conflicting types for 'GC'
        222 | *GC;
            |  ^~
      In file included from glamor.h:34,
                       from glamor_priv.h:32,
                       from glamor_composite_glyphs.c:25:
      ../include/gcstruct.h:282:3: note: previous declaration of 'GC' was here
        282 | } GC;
            |   ^~
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      741bd734
  14. 16 Oct, 2018 1 commit
  15. 21 Jun, 2018 6 commits
  16. 24 Apr, 2018 1 commit
    • Lyude Paul's avatar
      xwayland: Add glamor egl_backend for EGLStreams · 54ac0971
      Lyude Paul authored and Adam Jackson's avatar Adam Jackson committed
      This adds initial support for displaying Xwayland applications through
      the use of EGLStreams and nvidia's custom wayland protocol by adding
      another egl_backend driver. This also adds some additional egl_backend
      hooks that are required to make things work properly.
      
      EGLStreams work a lot differently then the traditional way of handling
      buffers with wayland. Unfortunately, there are also a LOT of various
      pitfalls baked into it's design that need to be explained.
      
      This has a very large and unfortunate implication: direct rendering is,
      for the time being at least, impossible to do through EGLStreams. The
      main reason being that the EGLStream spec mandates that we lose the
      entire color buffer contents with each eglSwapBuffers(), which goes
      against X's requirement of not losing data with pixmaps.  no way to use
      an allocated EGLSurface as the storage for glamor rendering like we do
      with GBM, we have to rely on blitting each pixmap to it's respective
      EGLSurface produ...
      54ac0971