1. 02 Jun, 2021 1 commit
    • Erik Kurzinger's avatar
      glx: don't create implicit GLXWindow if one already exists · 8cb33f20
      Erik Kurzinger authored
      
      
      If a GLXMakeCurrent request specifies an X window as its drawable,
      __glXGetDrawable will implicitly create a GLXWindow for it. However,
      the client may have already explicitly created a GLXWindow for that X
      window. If that happens, two __glXDrawableRes resources will be added
      to the window.
      
      If the explicitly-created GLXWindow is later destroyed by the client,
      DrawableGone will call FreeResourceByType on the X window, but this
      will actually free the resource for the implicitly-created GLXWindow,
      since that one would be at the head of the list.
      
      Then if the X window is destroyed after that, the resource for the
      explicitly-created GLXWindow will be freed. But that GLXWindow was
      already destroyed above. This crashes the server when it tries to call
      the destroyed GLXWindow's destructor. It also means the
      implicitly-created GLXWindow would have been leaked since the
      FreeResourceByType call mentioned above skips calling the destructor.
      
      To fix this, if __glXGetDrawable is given an X window, it should check
      if there is already a GLXWindow associated with it, and only create an
      implicit one if there is not.
      Signed-off-by: Erik Kurzinger's avatarErik Kurzinger <ekurzinger@nvidia.com>
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      8cb33f20
  2. 11 May, 2021 15 commits
  3. 30 Apr, 2021 1 commit
    • Erik Kurzinger's avatar
      xwayland-eglstream: fix X11 rendering to flipping GL / VK window · 4f6fbd50
      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>
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <mdaenzer@redhat.com>
      4f6fbd50
  4. 24 Apr, 2021 3 commits
  5. 16 Apr, 2021 7 commits
  6. 13 Apr, 2021 1 commit
  7. 09 Apr, 2021 12 commits