1
0
Fork 0
forked from wry/wry
Commit graph

102 commits

Author SHA1 Message Date
Julian Orth
036af4abaa all: address clippy issues 2023-02-04 14:20:10 +01:00
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
0b46391789 all: fix clippy lints 2022-11-13 22:50:18 +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
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
ae991b9038 all: address clippy lints 2022-08-13 17:46:23 +02:00
Julian Orth
5a4e48e54a wayland: add jay_screencast 2022-07-30 12:08:18 +02:00
Julian Orth
6b4d16aba7 all: run rustfmt 2022-07-26 22:01:55 +02:00
Julian Orth
30aa6de35c config: add Connector::set_enabled 2022-07-26 21:52:52 +02:00
Julian Orth
05b30c0a09 metal: keep output presentable if atomic commit fails 2022-07-25 20:21:23 +02:00
Julian Orth
375d7da2f2 cursor: don't overwrite busy hardware buffers 2022-06-01 22:24:57 +02:00
Julian Orth
3b8935cf55 all: implement hardware cursors 2022-06-01 21:46:31 +02:00
Julian Orth
6cc97ee56e metal,config: allow enabling tap-to-click 2022-06-01 14:29:56 +02:00
Julian Orth
e52a60b3b6 wayland: implement scaling
This involves many subsystems:

- config:
    - allow setting the connector scale
    - allow setting the cursor size
- cursors:
    - load server cursors for all requested sizes and scales
- wl_surface:
    - track the output the surface belongs to
    - send wl_surface.enter/leave
- wl_output:
    - implement wl_output.scale
- text:
    - pre-render texts for all used scales
- renderer:
    - properly align scale textures and rectangles
- wp_fractional_scale:
    - new interface for fractional scaling
2022-05-30 17:00:25 +02:00
Julian Orth
20f0fba553 input: rename axix_smooth to axis_px 2022-05-27 17:02:44 +02:00
Julian Orth
50c87d6da7 wayland: implement wl_seat v8 2022-05-27 15:39:48 +02:00
Julian Orth
145e4dbc24 wayland: add times to all input events 2022-05-26 12:25:59 +02:00
Julian Orth
4d3570bc7e metal: more connector change improvements
- compare modes by value
- restart connectors which could not be preserved
2022-05-20 18:34:20 +02:00
Julian Orth
ebe5d4c3e0 metal: re-process unprocessed device changes after resume 2022-05-20 18:16:46 +02:00
Julian Orth
9db389835d tree,metal: handle monitor hotplug 2022-05-19 16:54:13 +02:00
Julian Orth
e5c0916a25 all: fix memory leaks 2022-05-18 22:42:36 +02:00
Julian Orth
9416efeabe runtime: replace epoll by io-uring 2022-05-12 22:50:33 +02:00
Julian Orth
dcdd91c0b0 io-uring: add readable/writable 2022-05-12 20:33:58 +02:00
Julian Orth
e27cf29693 config: tell the config about drm devices 2022-05-10 16:43:09 +02:00
Julian Orth
5e21e00059 config: generate graphics-initialized event in the frontend 2022-05-06 17:15:13 +02:00
Julian Orth
ce183a0f45 all: run rustfmt 2022-05-06 16:47:54 +02:00
Julian Orth
d2913449ea metal: handle gpu reset
Unfortunately this doesn't seem to work on amdgpu [1]. I've tested that
it works on i915.

[1] https://gitlab.freedesktop.org/drm/amd/-/issues/1749
2022-05-06 16:45:56 +02:00
Julian Orth
e1d5bf0e5d autocommit 2022-05-01 17:23:55 CEST 2022-05-01 17:23:55 +02:00
Julian Orth
ac56970f14 autocommit 2022-04-30 13:53:02 CEST 2022-04-30 13:53:02 +02:00
Julian Orth
3d4a6b21f3 autocommit 2022-04-30 13:45:20 CEST 2022-04-30 13:45:20 +02:00
Julian Orth
ed0beb8ff5 autocommit 2022-04-28 20:33:24 CEST 2022-04-28 20:33:24 +02:00
Julian Orth
1242a6c1e1 autocommit 2022-04-28 19:49:51 CEST 2022-04-28 19:49:51 +02:00
Julian Orth
a8ad097f8b autocommit 2022-04-28 14:26:32 CEST 2022-04-28 14:26:32 +02:00
Julian Orth
324eb835bb autocommit 2022-04-27 20:37:49 CEST 2022-04-27 20:37:49 +02:00
Julian Orth
57899b3f35 autocommit 2022-04-27 18:04:02 CEST 2022-04-27 18:04:02 +02:00
Julian Orth
50b792db78 autocommit 2022-04-16 13:42:13 CEST 2022-04-16 13:42:13 +02:00
Julian Orth
fdf0ab7388 autocommit 2022-04-15 20:23:03 CEST 2022-04-15 20:23:03 +02:00
Julian Orth
5f13954dbc autocommit 2022-04-14 19:52:11 CEST 2022-04-14 19:52:11 +02:00
Julian Orth
35ddfbcbe3 autocommit 2022-04-14 16:06:11 CEST 2022-04-14 16:06:11 +02:00
Julian Orth
916e3644c3 autocommit 2022-04-13 21:01:32 CEST 2022-04-13 21:01:32 +02:00
Julian Orth
6b3316e920 autocommit 2022-04-10 18:26:13 CEST 2022-04-10 18:26:13 +02:00
Julian Orth
af152f7f3e autocommit 2022-04-10 01:54:16 CEST 2022-04-10 01:54:16 +02:00
Julian Orth
befd5e99b2 autocommit 2022-04-10 01:35:15 CEST 2022-04-10 01:35:15 +02:00
Julian Orth
21e2216ce5 autocommit 2022-04-08 23:02:38 CEST 2022-04-08 23:02:38 +02:00