summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-01-21xwayland: add support for use core profile for glamor. (v2)glamor-core-profileDave Airlie1-1/+14
This adds support to Xwayland to try and use OpenGL core profile for glamor first. v1.1: use version defines. v2: let glamor work out core profile itself. Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: add core profile support to EGL glamor. (v2)Dave Airlie1-4/+22
This breaks ABI unfortunately as we have to pass the core profile info from the egl part of glamor to the glamor part of glamor. v1.1: use version defines. v2: let glamor work it out itself Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21ephyr: Create 3.3 core profile context if possible (v3)Keith Packard1-1/+17
On desktop GL, Ask for a 3.3 core profile context if that's available, otherwise create a generic context. v2: tell glamor the profile is a core one. v2.1: add/use GL version defines v3: let glamor work out core itself Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: add core profile support. (v2)Dave Airlie3-1/+12
Glamor works out from the profile if it is core. This flag is used to disable quads for rendering. v1.1: split long line + make whitespace conform (Michel) v1.2: add GL 3.1 version defines v2: move to having glamor work out the profile. Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: Use GL_RED instead of GL_ALPHA if we have texture_swizzle (v2)Keith Packard7-10/+34
GL_RED is supported by core profiles while GL_ALPHA is not; use GL_RED for one channel objects (depth 1 to 8), and then swizzle them into the alpha channel when used as a mask. [airlied: updated to master, add swizzle to composited glyphs and xv paths] v2: consolidate setting swizzle into the texture creation code, it should work fine there. Handle swizzle when setting color as well. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: don't do copy if we have 0 boxes to copy.Dave Airlie1-0/+3
This happens if you run twm + mplayer + xclock and drag the clock over the mplayer. If we don't catch it, we cause an illegal draw elements command to be passed to GL. Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: initial attempt at component alpha in single passDave Airlie6-14/+98
It's been on the list to add dual source blending support to avoid the two pass componentAlpha code, radeon has done this for a while in EXA, so let's add support to bring glamor up to using it. This adds dual blend to both render and composite glyphs paths. Initial results show close to doubling of speed of x11perf -rgb10text. Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: Use vertex array objectsKeith Packard4-24/+75
Core contexts require the use of vertex array objects, so switch both glamor and ephyr/glamor over. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor/xv: add vbo support (v2.1)Dave Airlie1-11/+30
This converts the Xv code to using VBOs instead of client ptrs. This is necessary to move towards using the core profile later. v2: put all boxes into single vbo, use draw arrays to offset things. (Eric) v2.1: brown paper bag with releasing vbo. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-21glamor: use vbos in gradient/picture code.Dave Airlie2-29/+31
This converts two client arrays users to using vbos, this is necessary to move to using core profile later. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-19present: Handle wraparound when comparing MSC valuesMichel Dänzer1-5/+27
When a window moves from one CRTC to another, present_window_to_crtc_msc updates window_priv->msc_offset according to the delta between the current MSC values of the old and new CRTC: window_priv->msc_offset += new_msc - old_msc; window_priv->msc_offset is initially 0, so if new_msc < old_msc, window_priv->msc_offset wraps around and becomes a large number. If the window_msc parameter passed in is small (in particular if it's 0, such as is the case when the client just wants to know the current window MSC value), the returned CRTC MSC value may still be a large number. In that case, the existing MSC comparisons in pixmap_present weren't working as intended, resulting in scheduling a wait far into the future when the target MSC had actually already passed. This would result in the client (e.g. the Chromium browser) hanging when moving its window between CRTCs. In order to fix this, introduce msc_is_(equal_or_)after helper functions which take the wraparound into account for comparing two MSC values. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2016-01-19glamor: Disable debugging messages other than GL API errorsMichel Dänzer1-0/+3
According to Nicolai Hähnle, the relevant specification says "All messages are initially enabled unless their assigned severity is DEBUG_SEVERITY_LOW", so we need to explicitly disable the messages we don't want to get. Failing that, we were accidentally logging e.g. shader stats intended for shader-db. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93659 Tested-by: Laurent Carlier <lordheavym@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2016-01-13glamor: store old fonts in double width textures.Dave Airlie3-8/+29
There is a problem with some fonts that the height necessary to store the font is greater than the max texture size, which causes a fallback to occur. We can avoid this by storing two macro columns side-by-side in the texture and adjusting the calculations to suit. This fixes xfd -fn -*-*-*-*-*-*-*-*-*-*-*-*-*-* falling back here, when it picks -arabic-newspaper-medium-r-normal--32-246-100-100-p-137-iso10646-1 Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-13glamor: fallback if font is too large for FBO size.Dave Airlie1-0/+5
running xfontsel on haswell here, with a max texture size of 8kx8k, one font wants 9711 height. This fallsback to sw in this case. A proper solution probably involves using an array texture. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2016-01-06os: Failure to remove a non-existent log file is not an errorAdam Jackson1-1/+1
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2016-01-06Fix build when XSERVER_PLATFORM_BUS is not defined.Thomas Klausner1-0/+4
Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
2016-01-06Fix uninitialized variable warnings reported by clangThomas Klausner1-3/+5
v2: Move initializing pos into the first clause of the for statement. We have to keep this macro equivalent to a plain for statement from the user's perspective, otherwise callers need to {} things to keep control flow correct. [ajax] Signed-off-by: Thomas Klausner <wiz@NetBSD.org> Acked-by: Michel Dänzer <michel.daenzer@amd.com>
2016-01-05Avoid segfault in CloseWellKnownConnections when using -displayfdAlan Coopersmith1-1/+2
When -displayfd is looping through the possible display ids to use, if it can't open all the listening sockets for one (say when :0 is already in use), it calls CloseWellKnownConnections to close all the ListenTransConns entries before the point that ListenTransFds was allocated & initialized, so CloseWellKnownConnections would segfault trying to read entries from a NULL ListenTransFds pointer. Introduced by commit 7b02f0b8 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Keith Packard <keithp@keithp.com>
2016-01-05Use unique logfile names when starting server with -displayfdAlan Coopersmith3-28/+101
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93212 Previously all X servers started with -displayfd would overwrite Xorg.0.log - now a temporary name of Xorg.pid-<pid>.log is used until after -displayfd finds an open display - then it is renamed to the traditional Xorg.<display>.log name. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2016-01-05modesetting should not reference gbm when it's not definedAlan Coopersmith1-0/+6
Fixes build errors of: present.c: In function 'ms_do_pageflip': present.c:410:17: error: 'drmmode_bo' has no member named 'gbm' new_front_bo.gbm = glamor_gbm_bo_from_pixmap(screen, new_front); ^ present.c:412:22: error: 'drmmode_bo' has no member named 'gbm' if (!new_front_bo.gbm) { ^ present.c: In function 'ms_present_check_flip': present.c:536:36: error: 'drmmode_bo' has no member named 'gbm' if (drmmode_crtc->rotate_bo.gbm) ^ Introduced by commit 13c7d53d Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2016-01-05Revert "Fix uninitialized variable warnings reported by clang"Adam Jackson1-3/+1
Crashes at startup: dmt:~/git/xserver% ./hw/kdrive/ephyr/Xephyr :1 (EE) Backtrace: (EE) 0: ./hw/kdrive/ephyr/Xephyr (OsSigHandler+0x29) [0x47c8f9] (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7f38d4de6b1f] (EE) 2: ./hw/kdrive/ephyr/Xephyr (InitNotifyFds+0x17) [0x478697] (EE) 3: ./hw/kdrive/ephyr/Xephyr (OsInit+0x1e) [0x47c99e] (EE) 4: ./hw/kdrive/ephyr/Xephyr (dix_main+0x11c) [0x446efc] (EE) 5: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f38d4dd2580] (EE) 6: ./hw/kdrive/ephyr/Xephyr (_start+0x29) [0x427099] (EE) 7: ? (?+0x29) [0x29] (EE) (EE) Segmentation fault at address 0x0 This reverts commit a221d4737c167589da44595c795d54f2c36b439a.
2016-01-05Fix uninitialized variable warnings reported by clangThomas Klausner1-1/+3
Signed-off-by: Thomas Klausner <wiz@NetBSD.org> Acked-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-21xfree86: move check for driver->PreInit upPeter Hutterer1-11/+11
No real change, but if the driver is broken and doesn't provide a PreInit function, then we don't need to worry about logind. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2015-12-18xfree86: add NoMatchFoo directives for InputClass sectionsPeter Hutterer5-18/+103
InputClass sections use various MatchFoo directives to decide which device to apply to. This usually works fine for specific snippets but has drawbacks for snippets that apply more generally to a multitude of devices. This patch adds a NoMatchFoo directive to negate a match, thus allowing snippets that only apply if a given condition is not set. Specifically, this allows for more flexible fallback driver matching, it is now possible to use a snippet that says "assign driver foo, but only if driver bar wasn't already assigned to it". For example: Section "InputClass" Identifier "libinput for tablets" MatchIsTablet "true" NoMatchDriver "wacom" Driver "libinput" EndSection The above only assigns libinput to tablet devices if wacom isn't already assigned to this device, making it possible to select a specific driver by installing/uninstalling it. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2015-12-18xfree86: whitespace fixPeter Hutterer1-2/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-12-09vfb: add randr support (v2)Siim Põder1-0/+123
The motivation for getting this is chrome remote desktop that runs under Xvfb and wants to use RANDR to adjust screen size according to the remote desktop client screen size. Apparently there are other use cases as well, the bug mentions gnome-settings-daemon testing. [ajax: massaged commit message] Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=26391 Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Lambros Lambrou <lambroslambrou@google.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Michal Srb <msrb@suse.com> Signed-off-by: Siim Põder <siim@p6drad-teel.net>
2015-12-09randr: Silence unused variable warningAdam Jackson1-1/+0
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-08sync: Don't allow creating a system counter before sync is initializedAdam Jackson1-18/+3
It probably doesn't work very well since there's other extension setup we're not doing on this path, and in any event it's not a thing that happens currently. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08glxproxy: Silence shadowed-variable warningsAdam Jackson1-2/+3
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08glxproxy: Silence set-but-unused-variable warningsAdam Jackson2-31/+6
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08dmx: Run 'doxygen -u' to upgrade the doxygen config fileAdam Jackson1-794/+1635
Also change the dot font setting back to the default of Helvetica as doxygen no longer ships FreeSans. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08dmx: Silence unused variable warning in dmxcompatAdam Jackson1-2/+0
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08dmx: Silence lex/yacc-related config parser warningsAdam Jackson6-5/+8
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-08systemd-logind.c: don't parse VT settings for non-seat0 X serversLaércio de Sousa1-1/+2
Since non-seat0 X servers no longer touch VTs, I believe these settings are unnecessary. Signed-off-by: Laércio de Sousa <laerciosousa@sme-mogidascruzes.sp.gov.br> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-12-08xserver: Fix configure.ac check for libsystemd/-daemonBob Ham1-11/+14
The configure script looks for the libsystemd-daemon pkg-config module. If the configure script finds it, the script will add libsystemd-daemon to a list of modules which are used to consolidate CFLAGS and LIBS. The check for libsystemd-daemon was altered to fallback to libsystemd if libsystemd-daemon was not found (libsystemd-daemon was brought into libsystemd). Unfortunately, the configure script still adds "libsystemd-daemon" to the list of modules to consolidate, instead of "libsystemd". With this patch, we set a variable depending on which pkg-config module is found and add that to the module list instead. Changes since v1: - Rearranged logic so that we do a versioned check for libsystemd first, then look for libsystemd-daemon. - Cleaned up the check a bit, only performing the module checks if we don't have --with-systemd-daemon=no, in a similar style to --with-dtrace. - Changed the variable name to LIBSYSTEMD_DAEMON as per feedback. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Bob Ham <bob.ham@collabora.com>
2015-12-07prime: Damage full destination rectangle when we start dirty trackingMichel Dänzer1-0/+21
This makes sure that the destination pixmap contents will be fully initialized. Without this, a PRIME output starts out with garbage. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2015-12-07x86emu: Squash a warningAdam Jackson1-1/+1
Apologies, should have caught this one when applying the previous x86emu patch. Signed-off-by: Adam Jackson <ajax@redhat.com>
2015-12-07x86emu: Correctly handle 0x66 prefix for some instructionsJulian Pidancet1-50/+142
(Sorry for double posting) I repost this patch because I havn't got any replies from maintainers since I posted the initial patch back in March. Some instructions are not emulated correctly by x86emu when they are prefixed by the 0x66 opcode. I've identified problems in the emulation of these intructions: ret, enter, leave, iret and some forms of call. Most of the time, the problem is that these instructions should push or pop 32-bit values to/from the stack, instead of 16bit, when they are prefixed by the 0x66 special opcode. The SeaBIOS project aims to produce a complete legacy BIOS implementation as well as a VGA option ROM, entirely written in C and using the GCC compiler. In 16bit code produced by the GCC compiler, the 0x66 prefix is used almost everywhere. This patch is necessary to allow the SeaBIOS VGA option ROM to function with Xorg when using the vesa driver. SeaBIOS currently use postprocessing on the ROM assembly output to replace the affected instruction with alternative unaffected instructions. This is obviously not very elegant, and this fix in x86emu would be more appropriate. v2: - Decrement BP instead of EBP in accordance with the Intel Manual - Assign EIP instead of IP when poping the return address from the stack in 32-bit operand size mode in ret_far_IMM, ret_far, and iret - When poping EFLAGS from the stack in iret in 32-bit operand size mode, apply some mask to preserve Read-only flags. v3: - Rebase Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
2015-12-07present: Do not replace Pixmaps on redirected Window on unflipChris Wilson1-9/+19
When unflipping, we may find that our flip window has been redirected. If we replace the redirected Window with the Screen Pixmap we then have mutliple fullscreen Windows believing that their own the Screen Pixmap - multiple fullscreen Windows that are being flipped by Clients, and so continue to flip causing popping between e.g. the compositor and the game. [ajax: Fix up present_execute() hunk to account for changes introduced in fe07ec19e212a68076560d243a2a935c54589068] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-07present: When cancelling a pending synchronous flip, requeue itChris Wilson2-1/+16
The vblank event request for a synchronous flip is scheduled for the vblank before the target flip msc (so that the flip itself appears at the right frame). If we cancel that flip and so wish to schedule a copy instead, that copy needs to be postponed by a frame in order for it be performed at the requested time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-07present: Requery pending flips with the right sync_flip modeChris Wilson2-2/+4
When verifying whether a pending flip is still valid, we need to pass down the orignal sync_flip mode (e.g. if the driver only supports sync flips, verifying a async flip will falsely fail). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-07modesetting: create entities for pci and old probe. (v2)Dave Airlie1-23/+26
This moves the code from the platform case into a common function, and calls that from the other two. v2: Emil convinced me we don't need to lookup pEnt here, so let's not bother. Reported-by: Mark Kettenis <mark.kettenis@xs4all.nl> Reviewed-by: Mark Kettenis <kettenis@openbsd.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-12-07modesetting: drop platform_dev pointer.Dave Airlie2-10/+1
This isn't used anywhere, so no point storing it until we need it. Reviewed-by: Mark Kettenis <kettenis@openbsd.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-12-03Xorg.wrap: activate libdrm based detection for KMS driversArkadiusz Miśkiewicz1-0/+1
Xorg.wrap includes code guarded with WITH_LIBDRM for detecting KMS drivers. Unfortunately it is never activated since code missed to include file which defines WITH_LIBDRM. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92894 Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2015-12-02randr: Stop dirty tracking for shared pixmap being destroyedMichel Dänzer1-3/+8
Otherwise, we leave a dangling reference to the destroyed pixmap in the master screen's pixmap_dirty_list. Fixes regression from commit cf5d6414 ("randr: Factor out shared pixmap destruction"). Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
2015-12-02Revert "hw/xfree86: Use NotifyFd for device and other input fd wakeups"Adam Jackson1-26/+41
Reported to break libinput: http://lists.freedesktop.org/archives/xorg-devel/2015-December/048091.html This reverts commit 1df07dc36ca145c59f51176d9ab2651112506d75.
2015-12-01os: Use NotifyFd interface for listen descriptorsKeith Packard3-69/+42
Replace the custom path for dealing with new incoming connections with the general-purpose NotifyFd API. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2015-12-01hw/xfree86: Use NotifyFd for device and other input fd wakeupsKeith Packard1-41/+26
Remove code in xf86Wakeup for dealing with device and other input and switch to using the new NotifyFd interface. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2015-12-01render: Use OsTimer for animated cursor timingKeith Packard1-27/+30
This replaces the block/wakeup handlers with an OsTimer. This also avoids problems with performing rendering during the wakeup handler. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2015-12-01os/xdmcp: Replace xdmcp block/wakeup handlers with timer and NotifyFdKeith Packard1-78/+36
This removes the block and wakeup handlers and replaces them with a combination of a NotifyFd callback and timers. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>