1
0
Fork 0
forked from wry/wry
Commit graph

355 commits

Author SHA1 Message Date
Julian Orth
9812a02f87 io: use io_uring for all io
There should no longer be any

- read
- write
- connect
- sendmsg
- recvmsg
- accept

calls in the codebase. Previously we were using a mix of io_uring and
these calls which had some negative effects: Since we were using the old
system calls, we had to set the file descriptors to non-blocking. But
our io_uring code did not handle EAGAIN. This lead to programs sometimes
being killed when the wayland IO was actually blocking.

Now all file descriptors are set to blocking, but io_uring makes it
non-blocking from our perspective. The one exception are evdev files
because they are read via libinput and libinput uses the old system
calls.
2022-12-31 17:56:58 +01:00
Julian Orth
2db0ee8995 seat: update hardware cursor upon identical re-attach
This happens if the client re-uses the same wl_surface in
wl_pointer::set_cursor. If, in the same call, the client changes the
hotspot, we have to re-render the hardware cursor.
2022-12-16 22:06:56 +01:00
Julian Orth
09b4668a53 test: run unit tests on sr.ht 2022-11-20 11:42:33 +01:00
Julian Orth
0697911b7c docs: configure gh-pages deployment 2022-11-20 11:36:47 +01:00
Julian Orth
cd47baa934 wayland: implement tearing-control-v1
Currently has no effect because there are no tearing atomic commits. But
by implementing this we make mesa expose VK_PRESENT_MODE_IMMEDIATE_KHR.
2022-11-18 19:43:03 +01:00
Julian Orth
0b46391789 all: fix clippy lints 2022-11-13 22:50:18 +01:00
Julian Orth
82a62e3fd9 utils: fix rects_to_bands 2022-11-13 22:49:19 +01:00
Julian Orth
13bcdecd1b video: actually created the bridge BO in the render device 2022-11-13 21:40:02 +01:00
Julian Orth
28e91e0c5d metal: support multi-gpu systems via copying 2022-11-13 21:35:14 +01:00
Julian Orth
d43e7b345c docs: update readme 2022-11-13 16:53:02 +01:00
Julian Orth
79ee6900fa video: prefer non-nvidia devices when selecting render device 2022-11-13 16:53:02 +01:00
Julian Orth
141997d9d6 video: choose render device in the frontend 2022-11-13 16:53:02 +01:00
Julian Orth
049b86f4e2 config: add DrmDevice::make_render_device 2022-11-13 16:53:02 +01:00
Julian Orth
c6c87bdaa1 backend: add DevicesEnumerated event 2022-11-13 16:53:02 +01:00
Julian Orth
dddd68ba06 x: add XDrmDevice 2022-11-13 13:11:55 +01:00
Julian Orth
e29fd0e70c metal: log drm device model 2022-11-13 00:16:36 +01:00
Julian Orth
5b2eb5855a tree: update to latest version of wp_fractional_scale 2022-11-12 15:05:58 +01:00
Julian Orth
e61d6ab074 all: fix clippy lints 2022-11-03 19:26:35 +01:00
Julian Orth
729e47a756 build: upgrade to rust 1.65 2022-11-03 19:23:55 +01:00
Julian Orth
335677bbcd wayland: implement xwayland_shell_v1 2022-10-18 17:43:49 +02:00
Julian Orth
1f64fefc86 registry: implement xwayland-only globals 2022-10-16 21:05:44 +02:00
Julian Orth
887fab0936 xwayland: don't send raw wl_surface's to xwm
This handles a race where the surface was already destroyed when the
message was handled.
2022-10-16 20:58:21 +02:00
Julian Orth
6193569596 xwayland: add x-surface indirection 2022-10-16 20:53:59 +02:00
Julian Orth
8059457afb video: add support for a/xbgr8888 formats 2022-10-10 19:02:20 +02:00
Julian Orth
ab6a39bd34 clippy: call drop explicitly 2022-10-10 19:01:36 +02:00
Julian Orth
a5e17142de xdg_decoration: send toplevel-configure after configure
This works around a bug in chrome where it fails to start if the first
xdg_surface::configure does not contain the toplevel configuration
itself.
2022-10-10 19:00:42 +02:00
Julian Orth
2af6d29554 all: run rustfmt 2022-08-20 23:05:34 +02:00
Julian Orth
d67eefdaf0 tree: destroy layer shell surfaces when output is disconnected 2022-08-20 23:03:29 +02:00
Julian Orth
ae991b9038 all: address clippy lints 2022-08-13 17:46:23 +02:00
Julian Orth
0fe59effe2 seat: ignore duplicate set_selection request
This works around [1] and [2].

[1]: https://gitlab.gnome.org/GNOME/gtk/-/issues/5097
[2]: https://github.com/mahkoh/jay/issues/47
2022-08-13 12:57:45 +02:00
Julian Orth
a8f627f15c tree: render top layer over fullscreen windows 2022-07-31 13:18:20 +02:00
Julian Orth
3c074fe4cf tests: fix compilation 2022-07-31 12:00:03 +02:00
Julian Orth
35dbd483bc all: run rustfmt 2022-07-31 11:55:18 +02:00
Julian Orth
9c21d118d6 tree: render overlayes over fullscreen windows 2022-07-31 11:28:25 +02:00
Julian Orth
a162055f1d portal: add a desktop portal 2022-07-31 11:25:57 +02:00
Julian Orth
323a6ed953 all: update uapi dependency 2022-07-31 11:25:57 +02:00
Julian Orth
8b93957f31 text: add metrics and dynamic height 2022-07-31 11:25:57 +02:00
Julian Orth
2568b7b1f5 pipewire: add pipewire client 2022-07-31 11:25:57 +02:00
Julian Orth
2512470231 wayland: add a generic wayland client 2022-07-30 13:16:58 +02:00
Julian Orth
163adbd893 renderer: add renderer_base 2022-07-30 12:55:09 +02:00
Julian Orth
f84b4619ba dbus: expose more functionality 2022-07-30 12:48:45 +02:00
Julian Orth
fc9795cb5d tree: use create_workspace where appropriate 2022-07-30 12:08:21 +02:00
Julian Orth
1bdfa4c85e tree: batch output render data updates 2022-07-30 12:08:21 +02:00
Julian Orth
5a4e48e54a wayland: add jay_screencast 2022-07-30 12:08:18 +02:00
Julian Orth
022d8d1db0 wayland: add jay_workspace_watcher 2022-07-30 12:03:55 +02:00
Julian Orth
83baa6aadb wayland: add jay_workspace 2022-07-30 12:03:55 +02:00
Julian Orth
53ca7b5b2a wayland: add jay_render_ctx 2022-07-30 12:03:55 +02:00
Julian Orth
b3c20c5309 wayland: add jay_pointer 2022-07-30 12:03:55 +02:00
Julian Orth
3e3bc38920 wayland: add jay_output 2022-07-30 12:03:53 +02:00
Julian Orth
6bc7330989 input: ignored caps_lock and num_lock during modifire matching 2022-07-27 07:55:48 +02:00