- 03 Apr, 2014 23 commits
-
-
Michael Thayer authored
load_cursor_argb() may need to be able to fail and have the server fall back to a software cursor in at least the following circumstances. 1) The hardware can only support some ARGB cursors and this does not just depend on cursor size. 2) Virtual hardware may not wish to pass through a cursor to the host at a particular time but may wish to accept the same cursor at another time. This patch adds a return value to the API and makes the server do the software fall-back on failure. Signed-off-by:
Michael Thayer <michael.thayer@oracle.com> Reviewed-by:
Dave Airlie <airlied@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Michael Thayer authored
An X11 client may need to know whether the X server virtual terminal is currently the active one. This change adds a root window property which provides that information. Intended interface user: the VirtualBox Guest Additions. Signed-off-by:
Michael Thayer <michael.thayer@oracle.com> Reviewed-by:
Dave Airlie <airlied@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Daniel Stone authored
This hook allows drivers to be notified when a pixmap gains a new ID. (ABI break.) Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
-
Kristian Høgsberg authored
Started out as an Xorg module to be used from Xorg drivers to let Xorg run under a wayland server. The idea was to be able to reuse the 2D acceleration from the Xorg driver. Now with glamor being credible, a better plan is to just make Xwayland its own DDX, similar to Xwin and Xquartz. This is a much better fit, as much of the code in the original approach had to hack around Xorg doing Xorg things like take over the VT, probe input devices and read config files. Another big win is that Xwayland dosn't need to be setuid root. The Xwayland support for DRI3, Glamor and render nodes was done by Axel Davy <axel.davy@ens.fr>, who also did a lot of work on the rebase to the Xwayland DDX. Contributions from: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Corentin Chary <corentin.chary@gmail.com> Daniel Stone <daniel@fooishbar.org> Kristian Høgsberg <krh@bitplanet.net> Robert Bragg <robert@linux.intel.com> Scott Moreau <oreaus@gmail.com> Tiago Vignatti <tiago.vignatti@intel.com> Giovanni Campagna <gcampagn@redhat.com> Jonas Ådahl <jadahl@gmail.com> Ray Strode <rstrode@redhat.com> Trevor McCort <tjmccort@gmail.com> Rui Matos <tiagomatos@gmail.com> Axel Davy <axel.davy@ens.fr> Jasper St. Pierre <jstpierre@mecheye.net> Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Axel Davy <axel.davy@ens.fr>
-
Keith Packard authored
Accelerates text painting with GPU-based geometry computation and stippling v2: Simplify get_glyphs, expand single character variable names to more descriptive ones. (Markus Wick) v3: Rebase against the glamor_prepare_* un-renaming (changes by anholt). Improves x11perf -f8text by 417.908% +/- 11.0144% (n=10) Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This constructs suitable shaders using the glamor_program infrastructure for poly glyph blt, and then gets rid of the no-op wrapper of miImageGlyphBlt. Improves x11perf -f8text by 11.6221% +/- 1.04585% (n=10) Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This accelerates poly_fill_rect using GPU-based geometry computation Improves x11perf -rect100 by 41.5127% +/- 7.63888% (n=10) Improves x11perf -rect10 by 3745.72% +/- 94.7503% (n=6) v2: Rebase on skipping the prepare rewrite for now, and fix the GLSL 1.20 and GLES2 cases (changes by anholt). Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This accelerates spans operations using GPU-based geometry computation -wellipse500 goes from about 4k/sec before the patch, to ~8k/sec in the GLES2 fallback loop, to ~100k/sec in desktop mode. v2: Rebase on skipping the prepare rewrite for now, and fix the GLSL 1.20 and GLES2 cases (changes by anholt). Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
These use glTexSubimage2D for upload and glReadPixels for download. There are a variety of interfaces to the basic function as needed by the callers. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This prevents performance regressions from losing acceleration support on older hardware as we transition to using glamor_program.c for acceleration. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This currently computes the GLSL version in a fairly naïve fashion, and leaves that in the screen private for other users. This will let us update the version computation in one place later on. v2: Drop an accidental rebase-squashed hunk (change by anholt). Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This lets other code jump directly into the fb code for fallbacks Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
I think the sense of the return value was just flipped here; if you return TRUE, then the calling code assumes that the pixmap *has* been uploaded and that an FBO is available. When it tries to use it, it crashes though. Returning false makes the caller bail back to software. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
This happens when you have 4bpp pixmaps; it's not an error, so stop flooding the log file when it happens. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
There was a spurious declaratoin in glamor.h for glamor_poly_line_nf Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
The glamor_init calls to glamor_init_xv_shader were never getting run because GLAMOR_XV was never defined. Instead of trying to make that work, fix glamor_xv_init to make the call instead. Further, just get rid of the glamor_fini_xv_shader function entirely as the shader program will be destroyed when the context is destroyed at server reset time. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
Move the configuration of screen->SetWindowPixmap out from under it. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Keith Packard authored
All of the glamor _nf functions must check to see if the DDX can access the pixmap directly before returning failure back to the driver; this restructures the point code to split out the _nf checking from the _gl code. Signed-off-by:
Keith Packard <keithp@keithp.com> Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Eric Anholt <eric@anholt.net>
-
Eric Anholt authored
This reverts commit b5a61239. Not only did I screw up and introduce a warning, it turns out glXChooseFBConfig() explicitly ignores this attribute. Thanks, GLX. Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Julien Cristau <jcristau@debian.org>
-
Keith Packard authored
-
Peter Hutterer authored
This was the wrong fix to the problem, and it triggered a change in XKB behavior: previously a button event would unlock a latched modifier, now it doesn't anymore. https://bugs.freedesktop.org/show_bug.cgi?id=73155 Note that the new behavior is is strictly spec compliant but we've had the other behavior for a long time so we shouldn't break it. The bug this patch originally fixed was a null-pointer dereference when releasing button events on server shutdown. This was addressed by the commit below, so the need for this patch has gone away anyway. commit 3e4be403 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Fri Jan 25 11:47:32 2013 +1000 dix: when shutting down slave devices, shut down xtest devices last This reverts commit 2decff63. Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by:
Hans de Goede <hdegoede@redhat.com>
-
Hans de Goede authored
When no logfile was specified (xf86LogFileFrom == X_DEFAULT) and we're not running as root log to $XDG_DATA_HOME/xorg/Xorg.#.log as Xorg won't be able to log to the default /var/log/... when it is not running as root. Signed-off-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
- 01 Apr, 2014 8 commits
-
-
Kristian Høgsberg authored
When we create a glamor pixmap by calling glamor_create_pixmap() directly, we need to call glamor_destroy_pixmap() to destroy it. Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Kristian Høgsberg authored
This flag lets a DDX allocate a glamor pixmap without allocating the texture that backs it. The DDX can then allocate the texture itself and then set it later. Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Kristian Høgsberg authored
A DDX that implements the glamor EGL functions need to pull in this prototype but shouldn't need to pull in glamor_priv.h Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Kristian Høgsberg authored
By passing the client pointer to the dri3_open implementation, we allow the clients to implement the open callback asynchronously. If the client ignore count is positive after returning from dri3_open, we assume that authentication is in progress and doesn't send the reply. The code to send the reply is moved into a helper function, which the implementation can call upon receiving its authenticaion reply. Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Kristian Høgsberg authored
Normally composite will decide to add implicit redirection when a window with an alternate visual is a parent of a window with a regular visual or vice versa. This uses extra pixmap memory and incurs an extra copy. This exception mechanism provides a way for a DDX to override this if the DDX knows that its acceleration architecture will render correctly. The relevant case is that of an RGB window reparented into a ARGB parent frame window. If the DDX knows that the acceleration architecture in use will pad the alpha channel to opaque when rendering to the RGB window, the implicit redirection can be avoided. This patch adds a new composite function: CompositeRegisterImplicitRedirectionException() which lets a DDX register a pair of parent and child window visuals, that will not be implicitly redirected even if the normal policy would have made that choice. Signed-off-by:
Kristian Høgsberg <krh@bitplanet.net> Reviewed-by:
Keith Packard <keithp@keithp.com>
-
Keith Packard authored
This allows DDXen to override the window picking to account for native windows not seen by the X server. The bulk of the picking logic is exposed as a new helper function, miSpriteTrace(). This function completes the sprite trace filled out by the caller, and can be set up to start the search from a given toplevel window. v2: Leave existing XYToWindow API in place for API compatibility Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Kristian Høgsberg <krh@bitplanet.net>
-
Hans de Goede authored
Rather then a full path prefix, this is a preparation patch for adding support for logging to another location when not running as root. Signed-off-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Keith Packard authored
-
- 29 Mar, 2014 1 commit
-
-
Adam Jackson authored
Printing these as ErrorF is fairly obnoxious, since it means the non-hardware servers now spew stuff to the console for entirely routine events. And actually, printing these at all is fairly obnoxious, since a) we're printing a line for every extension, whether it's enabled or not, and b) we're not actually initializing the extension at this point. Signed-off-by:
Adam Jackson <ajax@redhat.com> Reviewed-by:
Daniel Stone <daniel@fooishbar.org> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
- 28 Mar, 2014 1 commit
-
-
Keith Packard authored
The width parameter is used to disable the blit fast-path (memcpy) when source and destination rows overlap in memory. This check was added in [0]. Unfortunately, the calculation to determine if source and destination lines overlapped was incorrect: (1) it converts width from pixels to bytes, but width is actually in bits, not pixels. (2) it adds this byte offset to dst/srcLine, which implicitly converts the offset from bytes to sizeof(FbBits). Fix both of these by converting addresses to byte pointers and width to bytes and doing comparisons on the resulting byte address. For example: A 32-bpp 1366 pixel-wide row will have width = 1366 * 32 = 43712 bits bpp = 32 (bpp >> 3) = 4 width * (bpp >> 3) = 174848 FbBits (FbBits *)width => 699392 bytes So, "careful" was true if the destination line was within 699392 bytes, instead of just within its 1366 * 4 = 5464 byte row. This bug causes us to take the slow path for large non-overlapping rows that are "close" in memory. As a data point, XGetImage(1366x768) on my ARM chromebook was taking ~140 ms, but with this fixed, it now takes about 60 ms. XGetImage() -> exaGetImage() -> fbGetImage -> fbBlt() [0] commit e32cc0b4 Author: Adam Jackson <ajax@redhat.com> Date: Thu Apr 21 16:37:11 2011 -0400 fb: Fix memcpy abuse The memcpy fast path implicitly assumes that the copy walks left-to-right. That's not something memcpy guarantees, and newer glibc on some processors will indeed break that assumption. Since we walk a line at a time, check the source and destination against the width of the blit to determine whether we can be sloppy enough to allow memcpy. (Having done this, we can remove the check for !reverse as well.) v3: Convert to byte units This first checks to make sure the blt is byte aligned, converts all of the data to byte units and then compares for byte address range overlap between source and dest. Signed-off-by:
Keith Packard <keithp@keithp.com> Reviewed-by:
Daniel Kurtz <djkurtz@chromium.org>
-
- 27 Mar, 2014 7 commits
-
-
Jon Turney authored
Handle -displayfd and an explicit display number sensibly, e.g. use the explicitly specified display number, and write it to the displayfd v2: displayfd might be 0, so use -1 as invalid value v3: Rebase for addition of NoListenAll flag Signed-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Kristian Høgsberg <krh@bitplanet.net>
-
Jon Turney authored
Include os.h for ErrorF() to fix implicit-function-declaration warnings when configured with --enable-debug. hw/xfree86/parser/DRI.c: In function 'xf86parseDRISection': hw/xfree86/parser/DRI.c:87:5: error: implicit declaration of function 'ErrorF' [-Werror=implicit-function-declaration] hw/xfree86/parser/Extensions.c: In function 'xf86parseExtensionsSection': hw/xfree86/parser/Extensions.c:77:5: error: implicit declaration of function 'ErrorF' [-Werror=implicit-function-declaration] Signed-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Julien Cristau <jcristau@debian.org>
-
Jon Turney authored
See http://tinderbox.x.org/builds/2014-03-23-0010/logs/xserver/#buildSigned-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Tested-by:
Julien Cristau <jcristau@debian.org> Reviewed-by:
Julien Cristau <jcristau@debian.org>
-
Jon Turney authored
Build fbcmap_mi.c once, rather than once for each DDX, and make it part of libfb or libwfb convenience library. Since 84e8de12 we don't have fbcmap.c This is a sort of revert of 17d85387 v2: Remove libkdrivestubs.la from configure.ac Signed-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Gaetan Nadon <memsize@videotron.ca>
-
Jon Turney authored
Signed-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Gaetan Nadon <memsize@videotron.ca>
-
Jon Turney authored
Build dpmsstubs.c once as a convenience library, rather than once for each DDX which wants to use it Signed-off-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Gaetan Nadon <memsize@videotron.ca>
-
Julien Cristau authored
The XResizeWindow call wasn't replaced by the xcb equivalent, so we were no longer setting the initial window size, only wm size hints. Regression from commit a2b73da7 "Xephyr: start converting hostx.c over to xcb" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74849Signed-off-by:
Julien Cristau <jcristau@debian.org> Reported-by:
Laércio de Sousa <lbsousajr@gmail.com> Tested-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by:
Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by:
Keith Packard <keithp@keithp.com>
-