Arcan

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins that include changes to files matching 'src/wayland/*'

2025-04-27
02:28
(platform) checkpoint commit for arcan platform decoupling and libification. Zig build currently can build a library containing OS platform abstractions, but there are still more to go: video, audio, event, fsrv and agp. CMake build currently does not build the platform library and keeps using platform layer the same as before. This commit also provides basic length based string module to provide more ergonomic and safer primitives to work with byte strings. For simplicity and sanity, the byte string module functions are tested using zig test runner. check-in: 280f9b1072 user: cipharius tags: arcan-platform-refactor
2025-02-03
22:48
(build) big refactor trying to unclutter shmif headers Cipharius owes me a beer. check-in: ff12ca7876 user: void tags: trunk, master
2025-02-02
12:21
(egl-dri/shmif) extend helpers to generalise more of the modifier mess This is incomplete as the buffer import still fails if we forward this way, but for Xarcan the 'desired' modifiers doesn't propagate correctly for clients that try to use modifiers and gets dropped since GLAMOR wants to manage its own FBO (and currently uses the wrong segment information to export) and reverts to readback mode. Imagine if all this fsckery had been some kind of opaque stream object that you interacted with rather than and endless chain of new sidebands with quirky flags, more descriptors and conditional branches to deal with them not being set by some broken client. check-in: 894e658d9e user: void tags: trunk, master
2025-01-29
11:46
(build) more c23 build warnings check-in: 28f7bcf113 user: void tags: trunk, master
09:43
(build) fix warnings from testing -std=c23 check-in: 81ecabbba0 user: void tags: trunk, master
2024-11-22
22:34
(waybridge) damage full surface if no damage has been provided this frame check-in: 68ad81c018 user: void tags: trunk, master
21:08
waybridge: set WAYLAND_DISPLAY for -exec, fixes 'no display' and dma-buf corruption in firefox check-in: b93ce1cee1 user: void tags: trunk, master
2024-06-02
19:32
(shmif) wire in ACCESSIBLITY defimpl hooks and allocate a primary slot This follows the pattern of the push-DEBUG segment to automatically build an internally managed attached segment for providing some kind of support should the client itself not provide an implementation. The current form simply maps it, converts into TUI and writes back that there is no 'alt' text. The next logical step is to use it and shmifsrv to spawn an afsrv_encode process latched to related-source window video buffer submission and use that with the tesseract_ocr mode or with a future LLM one to provide content description. check-in: c01fceef63 user: void tags: trunk, master
2023-05-20
00:27
(shmif/lua) add target anchorhint This is a concession to primarily allow toolkits and protocol bridges to systems that expect information about not just visibility and desired dimensions but also position and hierarchy. A side-effect to this is that it should make it rather trivial to put together a miniwm appl (or durden workspace owner tool) that just informs and delegates window management feedback to an external process written in whatever. check-in: 489081163f user: arcanfe@nospam tags: trunk, origin/arcan04_lts, master
2023-05-19
19:18
(shmif) more conservative _dirty mgmt Enforce the constraints in a way that could catch overflows and transform into full invalidation. Remove the wayland separate path and use the same dirty code there. check-in: afcc93aa21 user: arcanfe@nospam tags: trunk, origin/arcan04_lts, master
2022-11-30
10:41
(shmif/tui) move to mousestate helper This should pair with durden etc. moving towards using the 2-sample in one event form for delivering mouse events. check-in: e74a7b362d user: arcanfe@nospam tags: trunk, origin/arcan04_lts, master
2022-11-28
22:34
(wayland) fix layout switching (#268) check-in: 81eeb16685 user: noreply@github.com tags: trunk, origin/arcan04_lts, master
2022-09-17
12:46
(wayland) xdg_top: sneak in scale-factor to 0,0 resize This will likely rear its head elsewhere as well given how the scale factor chaos permeates the thing. The quickhack here is just to pre- scale the last committed shmif- buffer size on focus change. This fixes the issue with especially qt clients having its size reduced by scale-factor every non-resizing display hint step. check-in: 5906adac6f user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2022-05-26
07:23
Implement GNU install directory convention (#250) * (build) Implement GNU directory conventions With this patch, many hardcoded paths are now substituted by GNU conventions, as documented in the references below: https://cmake.org/cmake/help/v3.23/module/GNUInstallDirs.html https://www.gnu.org/prep/standards/html_node/Directory-Variables.html Caution: this was written and tested only for Linux and in Linux; however it should be extended to other Unix-like systems. * (build) Implement GNU directory conventions on BSD systems too This commit removes some hardcoded paths on BSD systems. Now hopefully all Unix-like systems will respect the GNU directory conventions. check-in: 4d7c933060 user: noreply@github.com tags: trunk, origin/arcan04_lts
2021-05-15
22:24
(waybridge) service -xwl mode segfault This was caused by the previous rework that allowed the meta-wm to be used both with Xarcan and Xwayland. The -exec-x11 mode kept on working though. check-in: 722926dbc5 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
12:58
(waybridge) check prevented seat-leave for popups This should fix some input focus issues. The problem was that the wrong surface is being checked for where the cursor or keyboard was currently 'active' and the leave->enter sequence was wrong, confusing some clients. check-in: 4be380aafd user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-04-10
02:30
(wayland) send ts in frame-callback AFAICT nobody really uses this value (too inaccurate for the context), but we were sending serial rather than the ms timestamp. check-in: 0889cc32df user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-04-07
05:47
(arcan_xwm) add -xarcan option This allows arcan_xwm (what is hidden behind arcan-wayland -exec-x11) to run standalone using Xarcan instead of Xwayland. This is mainly to help testing: arcan_xwm -xarcan chromium would launch window manager + chromium + xarcan in one board, but without the explicit protocol channel used by arcan-wayland. check-in: b998530c39 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-03-28
11:35
(wayland) subsurface on buffer-less surface hack So some special clients are looking for ways to make subsurfaces worse and suceeding. It seems to be 'tolerated' behavior to have subsurfaces attach to parents that themselves have null-buffers. This patch works around it to the extent that the clients won't crash, but not render correctly either. This happens with firefox. If that matters, use the x11 version or switch to something less awful, like qutebrowser. check-in: 91bdf5e8d4 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-03-08
00:22
(wayland) xdg_runtime_dir and pulse/native in -exec This takes yet another stab at the XDG_RUNTIME_DIR, WAYLAND_DISPLAY and DISPLAY environment chaos. It should fix the known permutations that caused some problem with clean void- installs and others that doesn't mandate the XDG basedir spec. The pulseaudio socket, if present, will also be linked into the tmpdir on -exec and -exec-x11 calls now. Previously we just created the folder but failed to link the socket. This should fix some sound and games issues. check-in: 97179f8878 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-03-03
02:02
Merge pull request #228 from jbeich/dragonfly Unbreak build on DragonFly check-in: f395495060 user: noreply@github.com tags: trunk, origin/arcan04_lts
2021-03-02
20:23
(build) install manpage on DragonFly similar to FreeBSD Allows DragonFly to consume FreeBSD package recipe as is. $ make check-plist -C sysutils/acfgfs ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist Error: Orphaned: share/man/man1/arcan_cfgfs.1.gz ===> Checking for items in pkg-plist which are not in STAGEDIR Error: Missing: man/man1/arcan_cfgfs.1.gz ===> Error: Plist issues found. *** Error code 1 check-in: 50cbd2085f user: jbeich@FreeBSD.org tags: trunk, origin/arcan04_lts
2021-02-27
16:35
(wayland) xdg_toplevel_decor type confusion wl_resource_set_implementation strikes again, great thing this is in a process of its own and not something privileged. check-in: f916c479ca user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-02-13
00:07
(wayland) possible null-deref in xwm on window destroy check-in: d40dfc392f user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-01-24
07:32
(wayland) incorrect version checks on mouse events This caused some older clients to quit with the oh-so-helpful 'opcode 5 null' message. check-in: 1b331d52d5 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2021-01-12
11:52
(wayland) zxdg_output logical height incorrect the width was sent twice, and Xwayland used this to determine caps so for some nested contexts the window size was wrong. Also adds a state-change marking x windows as 'realized' so WMs that want some manual control of the surfaces can simply hide them through this. check-in: a02326277a user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-13
05:44
(agp/shmif) buffer-allocator interface progress Should be about 2/3rds of the way for this one now. It is likely that some of the glitches we have on certain Iris+ intel GPUs are tied to the fact that FBOs in arcan_lwa are not allocated with a color store that carries format/modifier which allows it to be shared as a dma_buf. This is similar to the problem we have with not doing direct fbo scanout in normal arcan/egl-dri, which is a big performance hog. The reason for this detour was to be able to have a fbo->shader->screen pass from the start, but you should also not need to pay the price unless necessary. This required the agp- layer to be re-written so that FBOs have a swappable allocator function that tracks formats based on outgoing display and so on. This patch tests that agp/glshared does use the allocator interface correctly (ish, deallocation misses a spot on resize), as well as plugging in the BO-EGLImage-GLid allocation path needed in shmifext. Left is to: 1. forward modifiers correctly via DEVICEHINT. 2. plug them into the allocator, and switch to it. 3. allow a similar path in egl-dri when sane_direct_vobj applies. 4. add the allocator- provided BOs as framebuffers. 5. do the same for client allocated USE_SCANOUT flagged buffers. 6. handle the ensuing resize- edge case mess. check-in: 00f07fea57 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-10
16:36
(wayland/egl-dri) more modifiers adjustments The 'black-window' problem from before is actually that the wl-dma buf implementation in mesa/xwayland, for some clients, expected the version 3 set of available modifiers sent before moving on. Since we don't forward those from the plane yet it got stuck there. Reverted version for the time being until those properties can be plugged in. check-in: a807d10c38 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-08
18:43
(wayland) temporarily disable dma-buf for xwl The previous default to dma-buf seemed to cause some Xwayland clients to commit with empty buffers. Before solving that, disable dma-buf in favor of wl_drm if xwayland is requested. check-in: 1ae9fd091e user: arcanfe@nospam tags: trunk, origin/arcan04_lts
13:34
(wayland) configure with cont- size if !set geom This caused mpv and friends to jump back and forth in size on selection state changes. The interpretation of the spec here is liberal (orly) - so for configure it is supposed to be the 'geometry' (e.g. boundary of subsurfaces including decorations), and if we don't know (at setup) then 0,0 and the client is supposed to decide. The client does and sends it, but before it arrives we can get a hint about what the new size is supposed to be from up high. So we send the new configure, but then the client comes with its geometry and new buffer commit and so on. Longer story short - if geom is not set on a hint, use the current context one, if the problem persists, switch to the last hinted one. check-in: 5bcf425427 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-07
23:12
(build/wayland) drop zxdg-shell from build as well check-in: 3cf1c0e558 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
23:10
(wayland) drop zxdg-shell-unstable-v6 xdg-wm-base has been out long enough now that the clients that rely on the older unstable should be discarded or updated, enough has changed that it is dangerous to keep the older version around. check-in: 1874a32d42 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
19:49
(wayland) flush before -egl-shm / -dma default This should make the -egl-shm mode behave correctly and switch the dma-buf protocol to be enabled by default now. check-in: 1a265ea978 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-06
17:23
(wayland) forward drm/dma-buf correctly This was a rather serious modifier-patch regression that caused buffers to be commited with w,h=0 (instead of picking what was negotiated or what was set in the buffer itself). Previously that case was covered server side, but got removed when multiple planes were added. Fixes #211 check-in: e9f515d676 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-12-05
22:30
(build) add xcb-utils to protocols for xwayland The lack of this caused build errors on debian/ubuntu. check-in: 25aed46d56 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-11-24
10:20
(core/shmif) patch in modifiers/multi-plane This adds a long-pending patch for getting in multiplanar and modifiers into the gbm- based platform, which was one blocker for defaulting arcan-wayland to use dma-buf over legacy drm. As a bonus, the frameserver code is refactored to better handle cancellation and failures in mail-box mode for clients, and there is less needed for explicit synch when those kernel patches eventually come. It still has subtle and not so subtle breaks on CoffeLake GPUs at the least, using the tests/frameservers/glcube will assert/fail on debug MESA builds, and give graphics glitches otherwise. In order to get further with that we need better allocator control for rendertargets with 'swap' capabilities, so that should be ironed out (which is a big performance boost anyhow so). check-in: 6b85f95ef2 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-11-20
14:58
(wayland) drop ARCAN_CONNPATH on exec() This prevented using arcan_sdl and the likes to test how arcan behaves as a wayland client through sdl. check-in: 03b2ee63c1 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-11-19
00:51
Merge branch 'iceiceleo-master' check-in: 3f4a4d6019 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-11-12
17:08
(waybridge) seat null-deref on empty-cursor attach check-in: 35800def9e user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-11-11
21:45
(cmake) make it easier to build on *BSD check-in: df7702006b user: 74311820+iceiceleo@users.noreply.github.com tags: trunk, origin/arcan04_lts
2020-10-22
06:25
(waybridge) workaround for xwl- pairing race There seem to be more fun ahead that is in need of a more serious look. It seems we can still reach the state where pairing has been done, but the structure isn't fully constructed and another segreq is sent out. check-in: c7acc30c3a user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-10-09
04:42
(wayland) xwayland fixes (title propagation, size) More ongoing work in fixing the worst experience bits left for the first xwl release, the big ones left are how clipboard/selection does not forward at all, as well as the drag-rz asynch that is prominent with the builtin- helper. check-in: a32bfa19ec user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-10-01
02:08
(build) remove duplicates of uthash Several pieces depend on this implementation, but it was scattered in more places yet is now needed in even more, so consolidate into the external dir in wait for a better structure. check-in: 2f0209ef82 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-09-19
22:25
(build) more wayland versioning details there seem to specifically be issues with some protocols (hi wl_seat) that have more versions out there but are distributed as part of some base package, and thus a secondary version check is needed. check-in: 6f5ca1921e user: arcanfe@nospam tags: trunk, origin/arcan04_lts
17:05
(build) pull in some wayland xmls statically turns out that debian like distributions is quite behind on the contents of their xml files, causing build errors on such platforms. Instead of fighting this battle again and again, start pulling in the xml versions we are using manually. check-in: 465741ddfe user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-09-01
04:29
(wayland) subsurface unmapped commit fullalpha This transparently (in multiple ways) work around the case where clients commit hierarchies of unmapped subsurfaces as a way to establish anchors (Qt..) by commit a fully transparent buffer in the case where there is no wayland buffer attached. check-in: a0e5348d2d user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-08-23
04:42
(core/shmif) allow hints in segment request This is an optimization that should save a resize- synch delay in mapping subsegments. A common pattern, especially for allocate-heavy clients like wayland, is to set hints (partial updates, fd-signalling and so on) immediately after acquiring a new segment. This is likely to add up to a full frame delay before having access to the segment. With this change, the segment request carries the desired hints and will be applied to the subsegment immediately on allocation. While this does not currently apply to the primary, it is possibly worthwhile to have different standard hint-sets based on primary segment type, especially when we default to server-side text rendering for tui segments (as the tpack format toggle is a hints- enable action). check-in: ba97debee4 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-08-20
02:01
(wayland) xwl/zxdg_output edge cases this should fix xrandr reporting and some steam popups etc. in the builtin helper script and wltest test. Cause was that xwayland will ignore output updates when xdg_display is present, and we only updated wl_display and not xdg_display on new output sizes. check-in: a40e54c942 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-08-15
23:41
(wayland) fullscreen state propagation + live-spin The fullscreen state flag was not properly forwarded for xdg toplevels, and bridge- client event processing did not respect the error code from poll. This could cause an infinite/100% live-spin if the server side crashed at an inopportune time. check-in: 5c63bd3c96 user: arcanfe@nospam tags: trunk, origin/arcan04_lts
2020-08-07
02:40
add no-relative-ptr, ddev-copy working check-in: 26ee7de858 user: arcanfe@nospam tags: trunk, origin/arcan04_lts