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