1. 25 Feb, 2019 1 commit
  2. 25 Oct, 2018 1 commit
  3. 15 Oct, 2018 1 commit
  4. 07 Aug, 2018 1 commit
  5. 01 Aug, 2018 1 commit
  6. 19 Jun, 2018 1 commit
  7. 10 May, 2018 1 commit
  8. 09 May, 2018 1 commit
    • Aaron Plattner's avatar
      meson: Fix module_dir configuration (v2) · b6bf68b8
      Aaron Plattner authored
      meson.build has code to set the module_dir variable to
      ${libdir}/xorg/modules if the module_dir option string is empty.
      However, this has several problems:
      
      1. The variable is only used for an unused @moduledir@ substitution in
         the man page. The rule for xorg-server.pc uses option('module_dir')
         directly instead.
      2. The 'module_dir' option has a default value of 'xorg/modules' so the
         above rule doesn't do anything by default.
      3. The xorg-server.pc rule uses ${exec_prefix}/option('module_dir'), so
         the effect of #2
      
       is that the default moduledir is different between
         autoconf and meson. E.g. if ${prefix} is /X, then you get
      
           autoconf: moduledir=/X/lib/xorg/modules
           meson:    moduledir=/X/xorg/modules
      
      Fix this by using the module_dir variable when generating xorg-server.pc, and by
      using join_paths() to assign module_dir unconditionally.
      
      v2: Keep the 'xorg/modules' default path, but use join_paths() unconditionally (Thierry Reding)
      Signed-off-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
      Reviewed-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      b6bf68b8
  9. 30 Apr, 2018 1 commit
  10. 24 Apr, 2018 1 commit
    • Lyude Paul's avatar
      xwayland: Add glamor egl_backend for EGLStreams · 54ac0971
      Lyude Paul authored
      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
  11. 19 Apr, 2018 1 commit
    • Lyude Paul's avatar
      meson: Ensure we always build Xext/hashtable.c for glx · 4e28a6a2
      Lyude Paul authored
      
      
      Seems that while glxvnd relies on some of the hashtable functions in
      Xext, we only build hashtable support for Xext if we're also building
      the res extension. This leads to some errors if you try to build glx
      without res enabled:
      
      glx/liblibglxvnd.a(vndcmds.c.o): In function `LookupVendorPrivDispatch':
      /home/lyudess/Projects/xserver/glx/vndcmds.c:65: undefined reference to `ht_find'
      /home/lyudess/Projects/xserver/glx/vndcmds.c:67: undefined reference to `ht_add'
      glx/liblibglxvnd.a(vndcmds.c.o): In function `GlxDispatchInit':
      /home/lyudess/Projects/xserver/glx/vndcmds.c:405: undefined reference to `ht_generic_compare'
      /home/lyudess/Projects/xserver/glx/vndcmds.c:405: undefined reference to `ht_generic_hash'
      /home/lyudess/Projects/xserver/glx/vndcmds.c:405: undefined reference to `ht_create'
      glx/liblibglxvnd.a(vndcmds.c.o): In function `GlxDispatchReset':
      /home/lyudess/Projects/xserver/glx/vndcmds.c:468: undefined reference to `ht_destroy'
      collect2: error: ld returned 1 exit status
      ninja: build stopped: subcommand failed.
      
      So, make sure that hashtable.c gets both for both glx and res
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: Lyude Paul's avatarLyude Paul <lyude@redhat.com>
      4e28a6a2
  12. 10 Apr, 2018 1 commit
  13. 02 Apr, 2018 3 commits
    • Adam Jackson's avatar
      xserver 1.20 RC3 · df6cbf7a
      Adam Jackson authored
      
      Signed-off-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      df6cbf7a
    • Thierry Reding's avatar
      meson: Add pixman-1 to required modules in xorg-server.pc · 80d40984
      Thierry Reding authored
      
      
      pixman headers will be included for builds of external modules against
      the xorg-server SDK. Make sure pixman is listed as a required module so
      that the correct CFLAGS will be added.
      
      Note that the xorg-server.pc generated by the autotools-based build has
      many more modules listed, but this seems to be enough to build at least
      some of the external drivers against an X server built with Meson (I've
      tested with xf86-input-libinput, xf86-video-nouveau and xf86-video-ati).
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      80d40984
    • Thierry Reding's avatar
      meson: Remove usage of pkg-config --variable=includedir · f3b0a2ae
      Thierry Reding authored
      
      
      Querying a pkg-config variable using the --variable option produces the
      value of the given variable as stored in the pkg-config file and should
      not be used to add directories to the include search path.
      
      The reason for this is that it breaks cross-compilation, because header
      files are installed relative to the host sysroot. pkg-config supports a
      PKG_CONFIG_SYSROOT_DIR environment variable that points to this sysroot
      and will prepend that to the path of directories in -I or -L options in
      pkg-config's Cflags, Libs or Libs.private keywords. However, because no
      context can be inferred from variable names, as opposed to the keywords
      with fixed meaning, the sysroot path will not be prepended to them. The
      build system is responsible for doing so if necessary since it is aware
      of the context in which the variable is used.
      
      Adding the include directory returned by pkg-config to the include path
      leaks build system information into the cross-build and break with very
      confusing errors such as this:
      
      	In file included from include/misc.h:82:0,
      			 from dix/atom.c:55:
      	/usr/include/pthread.h:682:6: warning: '__regparm__' attribute directive ignored [-Wattributes]
      	      __cleanup_fct_attribute;
      	      ^~~~~~~~~~~~~~~~~~~~~~~
      
      or this:
      
      	In file included from include/misc.h:139:0,
      			 from dix/atom.c:55:
      	/usr/include/stdlib.h:133:8: error: '_Float128' is not supported on this target
      	 extern _Float128 strtof128 (const char *__restrict __nptr,
      		^~~~~~~~~
      
      Fix this by replacing the include directory with the appropriate xproto
      dependency required to add the correct include directory to the compile
      command for subdirectories that are missing the dependency. As detailed
      above, this gives pkg-config the opportunity to prepend the sysroot for
      all paths in -I compiler options.
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      f3b0a2ae
  14. 28 Mar, 2018 4 commits
  15. 27 Mar, 2018 7 commits
  16. 21 Mar, 2018 1 commit
  17. 09 Mar, 2018 1 commit
  18. 05 Mar, 2018 3 commits
  19. 02 Mar, 2018 3 commits
  20. 28 Feb, 2018 1 commit
  21. 27 Feb, 2018 2 commits
    • Keith Packard's avatar
      Add RandR leases with modesetting driver support [v6] · e4e34476
      Keith Packard authored
      
      
      This adds support for RandR CRTC/Output leases through the modesetting
      driver, creating a lease using new kernel infrastructure and returning
      that to a client through an fd which will have access to only those
      resources.
      
      v2:	Restore CRTC mode when leases terminate
      
      	When a lease terminates for a crtc we have saved data for, go
      	ahead and restore the saved mode.
      
      v3:	Report RR_Rotate_0 rotations for leased crtcs.
      
      	Ignore leased CRTCs when selecting screen size.
      
      	Stop leasing encoders, the kernel doesn't do that anymore.
      
      	Turn off crtc->enabled while leased so that modesetting
      	ignores them.
      
      	Check lease status before calling any driver mode functions
      
      	When starting a lease, mark leased CRTCs as disabled and hide
      	their cursors. Also, check to see if there are other
      	non-leased CRTCs which are driving leased Outputs and mark
      	them as disabled as well. Sometimes an application will lease
      	an idle crtc instead of the one already associated with the
      	leased output.
      
      	When terminating a lease, reset any CRTCs which are driving
      	outputs that are no longer leased so that they start working
      	again.
      
      	This required splitting the DIX level lease termination code
      	into two pieces, one to remove the lease from the system
      	(RRLeaseTerminated) and a new function that frees the lease
      	data structure (RRLeaseFree).
      
      v4:	Report RR_Rotate_0 rotation for leased crtcs.
      
      v5: Terminate all leases on server reset.
      
      	Leases hang around after the associated client exits so that
      	the client doesn't need to occupy an X server client slot and
      	consume a file descriptor once it has gotten the output
      	resources necessary.
      
      	Any leases still hanging around when the X server resets or
      	shuts down need to be cleaned up by calling the kernel to
      	terminate the lease and freeing any DIX structures.
      
      	Note that we cannot simply use the existing
      	drmmode_terminate_lease function on each lease as that wants
      	to also reset the video mode, and during server shut down that
      
         modesetting: Validate leases on VT enter
      
      	The kernel doesn't allow any master ioctls to run when another
      	VT is active, including simple things like listing the active
      	leases. To deal with that, we check the list of leases
      	whenever the X server VT is activated.
      
         xfree86: hide disabled cursors when resetting after lease termination
      
      	The lessee may well have played with cursors and left one
      	active on our screen. Just tell the kernel to turn it off.
      
      v6:	Add meson build infrastructure
      
      [Also bumped libdrm requirement - ajax]
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      e4e34476
    • Keith Packard's avatar
      xf86-video-modesetting: Record non-desktop kernel property at PreInit time · b91c787c
      Keith Packard authored
      
      
      Save any value of the kernel non-desktop property in the xf86Output
      structure to avoid non-desktop outputs in the default configuration.
      
      [Also bump randrproto requirement to a version that defines
      RR_PROPERTY_NON_DESKTOP - ajax]
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Reviewed-by: Adam Jackson's avatarAdam Jackson <ajax@nwnk.net>
      b91c787c
  22. 19 Feb, 2018 2 commits
  23. 14 Feb, 2018 1 commit