1. 16 Jun, 2021 1 commit
    • Kyle Brenneman's avatar
      GLX: Remove the XESetCloseDisplay callback during teardown. · 4a08df7b
      Kyle Brenneman authored
      When libGLX.so is unloaded, call XESetCloseDisplay to remove the display close
      callback for any displays that still exist.
      Otherwise, if libGLX.so is loaded using dlopen, and then unloaded while a
      display is still open, then XCloseDisplay would try to call the (now dangling)
  2. 30 Apr, 2021 1 commit
  3. 27 Apr, 2021 1 commit
  4. 21 Apr, 2021 1 commit
    • Kyle Brenneman's avatar
      GLdispatch: Add a build option to disable entrypoint patching. · c1c60ac8
      Kyle Brenneman authored
      Added a --disable-entrypoint-tracking configure option and an
      'entrypoint-patching' meson option to disable libGLdispatch's entrypoint
      patching at build time.
      If entrypoint patching is disabled, then it #ifdef's out the mprotect call, and
      acts as if mprotect had failed, which causes libGLdispatch to skip trying to
      perform any patching.
      Fixes glvnd/libglvnd#217
  5. 22 Feb, 2021 1 commit
  6. 11 Feb, 2021 1 commit
  7. 19 Nov, 2020 1 commit
    • Kyle Brenneman's avatar
      GLX: Fix a potential deadlock in OnDisplayClosed. · dd2d28a0
      Kyle Brenneman authored
      In OnDisplayClosed, unlock the __glXDisplayInfoHash lock before locking
      In CommonMakeCurrent, it holds glxContextHashLock while it tries to take the
      __glXDisplayInfoHash lock, so if CommonMakeCurrent and OnDisplayClosed run at
      the same time, they could deadlock.
      To avoid that, OnDisplayClosed will set a new inTeardown flag in the
      __GLXdisplayInfoHash, then it will unlock the display hash before calling
      After __glXDisplayClosed is finished, OnDisplayClosed will lock
      __glXDisplayInfoHash again long enough to remove the display from the
      The inTeardown flag tells __glXLookupDisplay to return NULL, since after that
      point, nothing should be trying to look up the display. In principle, we could
      just remove the display from the hashtable up front, but then if something did
      try to look up the display, then __glXLookupDisplay would try to create a new
      __GLXdisplayInfo for it.
      Fixes glvnd/libglvnd#213
  8. 18 Nov, 2020 2 commits
    • Kyle Brenneman's avatar
      Merge branch 'vendordev' into 'master' · 1457209a
      Kyle Brenneman authored
      egl: use device dispatch if at least one vendor suceeds
      See merge request glvnd/libglvnd!235
    • Ronan Pigott's avatar
      egl: use device dispatch if at least one vendor suceeds · a527411d
      Ronan Pigott authored
      Currently, in InitDeviceListInternal if any egl vendor fails to list
      its devices for any reason the construction of the device list is
      abandoned. That means that even if we have one vendor successfully
      serving the application, the failure of another vendor library will
      break any api calls related to egl devices.
      Instead, if a vendor fails queryDevicesEXT the device mapping logic
      should proceed as if it listed no devices. If the relevant device
      belongs to the failed vendor then the dispatch will still fail with
  9. 12 Aug, 2020 1 commit
  10. 11 Aug, 2020 1 commit
    • Kyle Brenneman's avatar
      Add .arm directives for the GLX entrypoint stubs. · 6cd95fbf
      Kyle Brenneman authored
      Add .arm and .thumb directives before and after the ARMv7 GLX dispatch stubs.
      The function addresses that get passed around don't take Thumb into account, so
      if they're compiled as Thumb, then they'd still get executed as ARM, which
      would cause them to crash a SIGILL.
  11. 06 Aug, 2020 2 commits
  12. 01 Jul, 2020 2 commits
  13. 25 Jun, 2020 5 commits
  14. 10 Jun, 2020 2 commits
  15. 20 May, 2020 2 commits
  16. 07 May, 2020 2 commits
  17. 21 Feb, 2020 3 commits
  18. 24 Jan, 2020 1 commit
  19. 17 Jan, 2020 1 commit
  20. 16 Jan, 2020 1 commit
  21. 15 Jan, 2020 1 commit
  22. 10 Jan, 2020 1 commit
  23. 17 Dec, 2019 2 commits
  24. 13 Dec, 2019 4 commits