- 13 Jan, 2019 4 commits
-
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
Minor fix: The loop always started at index 3, comparing against the value at index 2. So the resolution at index 1 (320x240) was never taken into account for anything.
-
Ulrich Sibiller authored
This solves weird window (menu) placement and drawing behaviour on right/lowest 25% of the screen. Fixes ArcticaProject/nx-libs#757 (Part 1/2)
-
Ulrich Sibiller authored
-
- 22 Dec, 2018 3 commits
-
-
Mike Gabriel authored
Attributes GH PR #754: https://github.com/ArcticaProject/nx-libs/pull/754
-
Ulrich Sibiller authored
This fixes an assertion being triggered on reconnect: assertion=assertion@entry=0x7f2f0bba6510 "(dpy->flags & XlibDisplayPrivSync) != 0", file=file@entry=0x7f2f0bba62fc "XlibInt.c", line=line@entry=895,
-
Ulrich Sibiller authored
-
- 19 Dec, 2018 32 commits
-
-
Mike Gabriel authored
-
Mike Gabriel authored
Attributes GH PR #744: https://github.com/ArcticaProject/nx-libs/pull/744
-
Ulrich Sibiller authored
If X2go runs in auto keyboard mode it will pass keyboard=null/null to the agent and set the keyboard afterwards with setxkbmap. This patch lets nxagent handle that situation internally (null/null will be interpreted as clone) and disables X2go's mechanism (by creating a dir that effectively blocks it; see x2gosetkeyboard) This is only activated if the agent is run as "x2goagent". Fixes ArcticaProject/nx-libs#368
-
Mike Gabriel authored
Attributes GH PR #743: https://github.com/ArcticaProject/nx-libs/pull/743
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
This avoids some roundtrips.
-
Ulrich Sibiller authored
Add possibility to pass more than model and layout via the keyboard parameter.
-
Ulrich Sibiller authored
Specifying -keyboard clone (or keyboard=clone in options) will clone XKB keyboard from the remote x server. This way many keyboard problems will hopefully never return... Should be the default but is not (yet) for compatibility reasons. Fixes ArcticaProject/nx-libs#373 (except the "do autoconf if no keyboard is provided" feature.) References: ArcticaProject/nx-libs#240 ArcticaProject/nx-libs#368
-
Mike Gabriel authored
Attributes GH PR #742: https://github.com/ArcticaProject/nx-libs/pull/742
-
Ulrich Sibiller authored
It may not fully fix the issue mentioned below but it does for the -keyboard commandline option at least. Fixes ArcticaProject/nx-libs#741
-
Ulrich Sibiller authored
Describes a check we are not doing here anymore...
-
Ulrich Sibiller authored
we have changed that to base some time ago.
-
Ulrich Sibiller authored
It will now create better working config files. References: ArcticaProject/nx-libs#239 ArcticaProject/nx-libs#368
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
avoid mix of 'variant' and 'variants'
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
we'll need the remote xkb in KeyboardProc in future so let's move it up.
-
Ulrich Sibiller authored
-
Mike Gabriel authored
Attributes GH PR #751: https://github.com/ArcticaProject/nx-libs/pull/751
-
Ulrich Sibiller authored
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Ulrich Sibiller authored
(partially) fixes ArcticaProject/nx-libs#666
-
Mike Gabriel authored
Attributes GH PR #753: https://github.com/ArcticaProject/nx-libs/pull/753
-
Ulrich Sibiller authored
Backport of this commit: commit a2880699e8f1f576e1a48ebf25e8982463323f84 Author: Keith Packard <keithp@keithp.com> Date: Tue Mar 25 08:21:16 2014 -0700 fb: fix fast-path blt detection 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 e32cc0b4c85c78cd8743a6e1680dcc79054b57ce 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>
-
Ulrich Sibiller authored
Fixes ArcticaProject/nx-libs#750 Backport of this commit: commit e32cc0b4c85c78cd8743a6e1680dcc79054b57ce 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.) On an Intel Core i7-2630QM with an NVIDIA GeForce GTX 460M running in NoAccel, the broken code and various fixes for -copywinwin{10,100,500} gives (edited to fit in 80 columns): 1: Disable the fastpath entirely 2: Replace memcpy with memmove 3: This fix 4: The code before this fix 1 2 3 4 Operation ------ --------------- --------------- --------------- ------------ 258000 269000 ( 1.04) 544000 ( 2.11) 552000 ( 2.14) Copy 10x10 21300 23000 ( 1.08) 43700 ( 2.05) 47100 ( 2.21) Copy 100x100 960 962 ( 1.00) 1990 ( 2.09) 1990 ( 2.07) Copy 500x500 So it's a modest performance hit, but correctness demands it, and it's probably worth keeping the 2x speedup from having the fast path in the first place. Signed-off-by:
Adam Jackson <ajax@redhat.com> Signed-off-by:
Keith Packard <keithp@keithp.com>
-
Mike Gabriel authored
Attributes GH PR #752: https://github.com/ArcticaProject/nx-libs/pull/752
-
- 17 Dec, 2018 1 commit
-
-
Ulrich Sibiller authored
Fixes this valgrind finding ==16977== Warning: invalid file descriptor -1 in syscall close() ==16977== Conditional jump or move depends on uninitialised value(s) ==16977== at 0x544B6B: XkbSendNewKeyboardNotify (xkbEvents.c:62) ==16977== by 0x540481: ProcXkbGetKbdByName (xkb.c:5330) ==16977== by 0x4341C5: Dispatch (NXdispatch.c:482) ==16977== by 0x40EB02: main (main.c:353) ==16977== Uninitialised value was created by a heap allocation ==16977== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16977== by 0x431BD7: NextAvailableClient (dispatch.c:3719) ==16977== by 0x47B297: AllocNewConnection (connection.c:821) ==16977== by 0x47B297: EstablishNewConnections (connection.c:910) ==16977== by 0x463DFE: ProcessWorkQueue (dixutils.c:541) ==16977== by 0x47635E: WaitForSomething (WaitFor.c:213) ==16977== by 0x434089: Dispatch (NXdispatch.c:360) ==16977== by 0x40EB02: main (main.c:353)
-