1. 14 Jul, 2020 1 commit
  2. 12 Jul, 2020 1 commit
  3. 09 Jul, 2020 2 commits
  4. 08 Jul, 2020 1 commit
    • Olivier Fourdan's avatar
      xwayland: Add a pkg-config file for Xwayland · 5188603f
      Olivier Fourdan authored
      
      
      Xwayland is usually spawned by the Wayland compositor which sets the
      command line options.
      
      If a command line option is not supported, Xwayland will fail to start.
      
      That somehow makes the Xwayland command line option sort of ABI, the
      Wayland compositor need to know if a particular option is supported by
      Xwayland at build time.
      
      Also, currently, Xwayland is being installed along with the rest of the
      common executable programs that users may run, which is sub-optimal
      because, well, Xwayland is not a common executable program, it's meant
      to be a proxy between the Wayland compositor and the legacy X11 clients
      which wouldn't be able to run on Wayland otherwise.
      
      Xwayland would be better installed in `libexec` but that directory is
      (purposedly) not in the user `PATH` and therefore the Wayland compositor
      may not be able to find Xwayland in that case.
      
      To solve both problems (which options are supported by Xwayland and
      where to look for it), add a `pkg-config` file specifically for Xwayland
      which gives the full path to Xwayland (`xwayland`) and which options it
      supports (using `pkg-config` variables).
      
      The `pkg-config` file also provides the `Version` so the build scripts
      can check for a particular version if necessary.
      
      Obviously, Wayland compositors are not required to use the `pkg-config`
      file and can continue to use whatever mechanism they deem preferable.
      Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <mdaenzer@redhat.com>
      5188603f
  5. 07 Jul, 2020 4 commits
  6. 05 Jul, 2020 2 commits
  7. 03 Jul, 2020 2 commits
    • Olivier Fourdan's avatar
      xwayland: Use a fixed DPI value for core protocol · b0413b6e
      Olivier Fourdan authored
      
      
      The way Xwayland works (like all Wayland clients), it first queries the
      Wayland registry, set up all relevant protocols and then initializes its
      own structures.
      
      That means Xwayland will get the Wayland outputs from the Wayland
      compositor, compute the physical size of the combined outputs and set
      the corresponding Xwayland screen properties accordingly.
      
      Then it creates the X11 screen using fbScreenInit() but does so by using
      a default DPI value of 96. That value is used to set the physical size
      of the X11 screen, hence overriding the value computed from the actual
      physical size provided by the Wayland compositor.
      
      As a result, the DPI computed by tools such as xdpyinfo will always be
      96 regardless of the actual screen size and resolution.
      
      However, if the Wayland outputs get reconfigured, or new outputs added,
      or existing outputs removed, Xwayland will recompute and update the
      physical size of the screen, leading to an unexpected change of DPI.
      
      To avoid that discrepancy, use a fixed size DPI (defaults to 96, and can
      be set using the standard command lime option "-dpi") and compute a
      physical screen size to match that DPI setting.
      
      Note that only affects legacy core protocols, X11 clients can still get
      the actual physical output size as reported by the Wayland compositor
      using the RandR protocol, which also allows for the size to be 0 if the
      size is unknown or meaningless.
      Signed-off-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      Closes: xorg/xserver#731
      b0413b6e
    • SimonPilkington's avatar
      xwayland: Initialise values in xwlVidModeGetGamma() · 6748a409
      SimonPilkington authored
      ProcVidModeGetGamma() relies on GetGamma() to initialise values if it
      returns TRUE. Without this, we're sending uninitialised values to
      clients.
      
      Fixes: xorg/xserver#1040
      6748a409
  8. 02 Jul, 2020 1 commit
  9. 27 Jun, 2020 1 commit
  10. 25 Jun, 2020 4 commits
  11. 24 Jun, 2020 1 commit
    • Martin Weber's avatar
      hw/xfree86: Avoid cursor use after free · 7ae221ad
      Martin Weber authored
      
      
      During a VT-Switch a raw pointer to the shared cursor object
      is saved which is then freed (in case of low refcount) by a call to
      xf86CursorSetCursor with argument pCurs = NullCursor.
      This leads to a dangling pointer which can follow in a use after free.
      
      This fix ensures that there is a shared handle saved for the VT-Switch cycle.
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <mdaenzer@redhat.com>
      7ae221ad
  12. 23 Jun, 2020 1 commit
  13. 19 Jun, 2020 3 commits
  14. 05 Jun, 2020 1 commit
    • Adam Jackson's avatar
      xwayland: Set the vendor name for GLX_EXT_libglvnd · fc4f2485
      Adam Jackson authored
      Without this the client library will flail around looking for a default
      provider, probably one named "indirect", and that defeats the point of
      having the EGL provider for direct context support in the first place.
      
      This assumes that "mesa" will work, of course, and in general it should.
      Mesa drivers will DTRT through the DRI3 setup path, and if our glamor is
      atop something non-Mesa then you should fall back to llvmpipe like 1.20.
      In the future it might be useful to differentiate the vendor here based
      on whether glamor is using gbm or streams.
      
      Fixes: xorg/xserver#1032
      fc4f2485
  15. 03 Jun, 2020 1 commit
  16. 27 May, 2020 3 commits
    • Jan Beich's avatar
      meson: split udev from udev_kms which requires systemd · b5b52979
      Jan Beich authored
      DragonFly and FreeBSD can use xf86-input-libinput with config/udev.
      
      ld: error: undefined symbol: xf86PlatformDeviceProbe
      >>> referenced by xf86platformBus.c
      >>>               xf86platformBus.c.o:(xf86platformProbe) in archive hw/xfree86/common/libxorg_common.a
      
      ld: error: undefined symbol: xf86PlatformDeviceCheckBusID
      >>> referenced by xf86platformBus.c
      >>>               xf86platformBus.c.o:(xf86platformProbeDev) in archive hw/xfree86/common/libxorg_common.a
      
      ld: error: undefined symbol: xf86PlatformReprobeDevice
      >>> referenced by xf86platformBus.c
      >>>               xf86platformBus.c.o:(xf86platformVTProbe) in archive hw/xfree86/common/libxorg_common.a
      
      ld: error: undefined symbol: NewGPUDeviceRequest
      >>> referenced by udev.c
      >>>               udev.c.o:(device_added) in archive config/liblibxserver_config.a
      
      ld: error: undefined symbol: DeleteGPUDeviceRequest
      >>> referenced by udev.c
      >>>               udev.c.o:(device_removed) in archive config/liblibxserver_config.a
      b5b52979
    • Jan Beich's avatar
      glx: unbreak on Unix without /usr/include/drm · be731e0b
      Jan Beich authored
      In file included from ../glx/glxdri2.c:35:
      /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found
       #include <drm.h>
                ^~~~~~~
      In file included from ../glx/glxdriswrast.c:39:
      /usr/local/include/GL/internal/dri_interface.h:43:10: fatal error: 'drm.h' file not found
       #include <drm.h>
                ^~~~~~~
      be731e0b
    • Jan Beich's avatar
      os: unbreak xsha1 on FreeBSD · f2cf236d
      Jan Beich authored
      ../os/xsha1.c:36:10: fatal error: 'sha1.h' file not found
       #include <sha1.h>
                ^~~~~~~~
      ../os/xsha1.c:45:5: error: implicit declaration of function 'SHA1Init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          SHA1Init(ctx);
          ^
      ../os/xsha1.c:54:5: error: implicit declaration of function 'SHA1Update' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          SHA1Update(sha1_ctx, data, size);
          ^
      ../os/xsha1.c:63:5: error: implicit declaration of function 'SHA1Final' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          SHA1Final(result, sha1_ctx);
          ^
      f2cf236d
  17. 20 May, 2020 2 commits
  18. 18 May, 2020 1 commit
  19. 13 May, 2020 1 commit
    • Carlos Garnacho's avatar
      xwayland: Improve checks for confined_to on InputOnly windows · 0777cf46
      Carlos Garnacho authored
      
      
      In this pretty Wine/Proton specific kludge, we try to handle confining grabs
      on InputOnly windows by trying to find the InputOutput window that the pointer
      would get visually confined to.
      
      The grabbing window and the visible window come from different clients, so
      we used to simply resort to the pointer focus. This is troublesome though, as
      the call may happen very soon at a time that the toplevel wasn't yet mapped by
      the Wayland compositor, so the pointer focus may well be out of date soon.
      
      In these situations, it does seem that even though the confining grab happens
      too early to have the wayland surface mapped, the xserver view of the WindowPtr
      does already reflect the size. Use this to find out the better window to
      assign the confining grab to, one whose geometry fully contains the InputOnly
      window's.
      Signed-off-by: Carlos Garnacho's avatarCarlos Garnacho <carlosg@gnome.org>
      Reviewed-by: default avatarOlivier Fourdan <ofourdan@redhat.com>
      0777cf46
  20. 12 May, 2020 4 commits
  21. 11 May, 2020 1 commit
  22. 08 May, 2020 1 commit
  23. 07 May, 2020 1 commit