Julian Orth
9de63bddf3
render: don't require framebuffer to perform shm screencopies
2024-02-28 13:41:08 +01:00
Julian Orth
58cdfbcb26
metal: scan out in more circumstances
2024-02-23 15:27:38 +01:00
Julian Orth
41754e268f
render: force black background color for fullscreen nodes
2024-02-23 15:27:38 +01:00
Julian Orth
a02815253a
x: use modifier-aware buffer import
2024-02-19 18:36:18 +01:00
Julian Orth
64e133caf6
metal: simplify framebuffer swapchain
2024-02-19 17:38:09 +01:00
Julian Orth
47e469b252
metal: only use direct scanout on the render device
2024-02-19 12:30:38 +01:00
Julian Orth
114c293950
config: allow disabling direct scanout
2024-02-19 12:30:38 +01:00
Julian Orth
da84e9ec27
metal: implement direct scanout
2024-02-19 12:30:37 +01:00
Julian Orth
fed2ceb8b5
drm: add unique identifiers to dmabufs
2024-02-19 12:27:28 +01:00
Julian Orth
d4fc672fb3
tree: move output scale to global
2024-02-16 19:15:03 +01:00
Julian Orth
0ba8648844
video: unify output rendering
2024-02-16 18:27:51 +01:00
Julian Orth
01e3930ced
wayland: run idle code unconditionally
2024-02-15 18:40:29 +01:00
Julian Orth
cf332e8436
render: implement a vulkan renderer
2024-02-08 15:24:02 +01:00
Julian Orth
4ba8550da8
render: compute image width/height in single function call
2024-02-08 15:24:02 +01:00
Julian Orth
bf90204db6
video: always use correct modifiers
2024-02-08 15:24:02 +01:00
Julian Orth
e0ed29038e
metal: use IN_FORMATS plane property
2024-02-08 15:24:02 +01:00
Julian Orth
44e9de7c93
render: lift non-generic render code out of the gl implementation
2024-02-08 15:24:02 +01:00
Julian Orth
074347c71d
render: remove on_output
2024-02-08 15:24:02 +01:00
Julian Orth
78b557b4a1
input: implement wl_seat version 9
2024-02-04 19:56:45 +01:00
Julian Orth
887e2b6cbc
input: add support for natural scrolling
...
Closes #69
2024-02-04 18:50:52 +01:00
Julian Orth
24e410a5b5
render: hide graphics API behind traits
2023-10-22 20:42:35 +02:00
Julian Orth
d650b3375d
render: split module into gfx_apis and renderer
2023-10-22 20:28:32 +02:00
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