1
0
Fork 0
forked from wry/wry
Commit graph

44 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
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
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
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
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
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
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
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
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
21e2216ce5 autocommit 2022-04-08 23:02:38 CEST 2022-04-08 23:02:38 +02:00
Julian Orth
be32036824 autocommit 2022-04-07 17:31:31 CEST 2022-04-07 17:31:31 +02:00
Julian Orth
1d33088dba autocommit 2022-04-05 21:08:07 CEST 2022-04-05 21:08:07 +02:00
Julian Orth
a3e9f21fc5 autocommit 2022-04-05 18:28:42 CEST 2022-04-05 18:28:42 +02:00
Julian Orth
e897d271af autocommit 2022-04-04 14:29:04 CEST 2022-04-04 14:29:04 +02:00
Julian Orth
1f71290dab autocommit 2022-04-04 00:28:58 CEST 2022-04-04 00:28:58 +02:00
Julian Orth
9842264fad autocommit 2022-03-29 15:40:59 CEST 2022-03-29 15:40:59 +02:00
Julian Orth
6ebf731aea autocommit 2022-03-29 14:11:25 CEST 2022-03-29 14:11:25 +02:00
Julian Orth
a15a02a95c autocommit 2022-03-13 22:20:31 CET 2022-03-13 22:20:31 +01:00
Julian Orth
156bd5b042 autocommit 2022-03-13 19:41:04 CET 2022-03-13 19:41:04 +01:00
Julian Orth
e18be65210 autocommit 2022-03-13 19:01:43 CET 2022-03-13 19:01:43 +01:00
Julian Orth
133035e0a6 autocommit 2022-03-12 22:58:30 CET 2022-03-12 22:58:30 +01:00
Julian Orth
eb1d500561 autocommit 2022-03-11 20:04:41 CET 2022-03-11 20:04:41 +01:00
Julian Orth
0ae73ab9c4 autocommit 2022-03-11 19:24:53 CET 2022-03-11 19:24:53 +01:00
Julian Orth
b1890894b2 autocommit 2022-03-11 18:15:21 CET 2022-03-11 18:15:21 +01:00