Ivan Molodetskikh
9ae3cad82b
gamma-control: Misc. clean ups and fixes
2024-03-15 13:29:36 +04:00
phuhl
89dfaa6cac
Adds support for wlr_gamma_control_unstable_v1 protocol
2024-03-15 13:29:36 +04:00
Ivan Molodetskikh
f6ffe8b3ab
tty: Make binding EGL wl-display optional
2024-03-14 18:08:52 +04:00
Ivan Molodetskikh
c15bc2a028
tty: Set max bpc to 8
2024-03-13 09:15:18 +04:00
Ivan Molodetskikh
e45dbb8ef6
Pass through subpixel layout
2024-03-08 17:06:46 +04:00
Ivan Molodetskikh
2750b2038b
Catch panics from edid-rs
...
Work around an integer overflow.
See: https://github.com/YaLTeR/niri/issues/239
2024-03-03 19:56:52 +04:00
Ivan Molodetskikh
93243d7772
Disentangle frame callback sequence from real DRM sequence
...
It can currently happen that the estimated VBlank timer fires right
before a real VBlank, which can cause some sequence collisions, which
might cause frame callbacks to never be sent. To prevent this, just
track the frame callback sequence fully separately. There isn't really
any harm in this, and if we accidentally increment it more frequently
than necessary then nothing terrible will happen.
2024-03-02 08:20:17 +04:00
Ivan Molodetskikh
88ac16c99a
tty: Bump sequence on successful queue_frame()
...
Before this commit:
- niri queues frame
- successful VBlank happens, sequence is bumped, frame callbacks are
sent
- niri receives commit, redraws, queues next frame, tries to send frame
callbacks, but there wasn't a new VBlank yet, so the sequence is old,
and frame callbacks aren't sent
- frame callbacks are sent only next VBlank
2024-03-01 12:56:55 +04:00
Ivan Molodetskikh
0add457cf0
tty: Avoid zero estimated vblank timer
2024-03-01 08:27:44 +04:00
Ivan Molodetskikh
202406aadf
Fix presentation feedback panic with zero presentation time
2024-03-01 07:55:09 +04:00
Ivan Molodetskikh
92d9c7ff4f
Add emulate-zero-presentation-time debug flag
2024-03-01 07:54:58 +04:00
Ivan Molodetskikh
48f0f6fb3c
Implement gradient borders
2024-02-21 22:15:21 +04:00
Ivan Molodetskikh
7d41f113cb
Change non-bug error! to warn!
...
Be consistent with our usage.
2024-02-21 09:20:34 +04:00
Ivan Molodetskikh
b8aa0a86e7
Fix debug tint desync for new outputs
2024-02-21 07:58:23 +04:00
Ivan Molodetskikh
d8fb8d5ef0
Update for Smithay MultiGpu shadow copies
2024-02-18 21:12:07 +04:00
Ivan Molodetskikh
8e1d4de0dc
tty: Filter out interlaced modes
...
They don't seem to work. wlroots also filters them:
https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/feb54979c0940655e36119c63e18a9ee72cc03b0/backend/drm/drm.c#L1461
2024-02-14 21:14:01 +04:00
Ivan Molodetskikh
78cda2e67f
tty: Truncate Edid strings to nul
...
Otherwise they crash in wayland-rs when converting to CString.
2024-02-14 19:49:34 +04:00
Shawn Wallace
385454378b
Implement DRM leasing
...
Closes #178
2024-02-12 09:48:54 +04:00
Ivan Molodetskikh
a99f34cba8
tty: Activate monitors on session resume
2024-02-12 08:45:45 +04:00
Ivan Molodetskikh
bd2277fa25
tty: Notify idle activity on session resume
2024-02-12 08:42:34 +04:00
Ivan Molodetskikh
5c4d9824a4
Remove logind-zbus dependency
...
It isn't updated and we don't really need it anyway.
2024-02-10 14:58:22 +04:00
Ivan Molodetskikh
b2298db5c5
Split render_helpers.rs
2024-02-06 11:25:25 +04:00
Ivan Molodetskikh
3dc4a5fdac
Fix Clippy warnings
2024-02-05 17:40:16 +04:00
Ivan Molodetskikh
3789d85588
Add lib.rs, become a mixed lib-bin crate
...
Will be used for visual tests.
2024-02-05 17:40:16 +04:00
Ivan Molodetskikh
9afd728ae9
Add error messages to backend initialization
2024-02-01 16:55:46 +04:00
Christian Meissl
b813f99abd
tty: reset surface state after changing monitor state
...
changing the "ACTIVE" property of a surface requires
to re-evaluate the surface state.
2024-01-30 08:03:21 +04:00
Christian Meissl
5f99eb13ab
Remove hack for fixed EGLDisplay issue
2024-01-25 07:49:51 +04:00
Christian Meissl
20326b093c
Update smithay
2024-01-25 07:49:51 +04:00
Ivan Molodetskikh
ab9706cb30
screencast: Emit MonitorsChanged
2024-01-23 12:02:52 +04:00
Ivan Molodetskikh
cbbb7a26fc
Update Smithay, use device changed session resume code
...
Should fix most cases of monitors failing to light up after a TTY
switch.
2024-01-22 16:13:39 +04:00
Ivan Molodetskikh
df48337d83
tty: Delay output config update until resume
...
We can't do anything while paused.
2024-01-21 10:25:39 +04:00
Ivan Molodetskikh
f5e9b40140
tty: Check changes against pending connectors and mode
...
If we queued some DRM changes, they will be in pending. Also be more
resilient by removing unwrap.
2024-01-21 10:24:42 +04:00
Ivan Molodetskikh
40c85da102
Add an IPC socket and a niri msg outputs subcommand
2024-01-17 10:45:18 +04:00
Ivan Molodetskikh
768b326028
Rename connectors to enabled_outputs
2024-01-17 10:25:23 +04:00
Ivan Molodetskikh
6703d5ce72
tty: Add Tracy span to on_output_config_changed()
2024-01-17 10:21:40 +04:00
Ivan Molodetskikh
1f9abaaa58
Add live-reload for output mode
2024-01-16 18:02:30 +04:00
Ivan Molodetskikh
eb4946c3d8
tty: Extract pick_mode()
2024-01-16 18:01:25 +04:00
Ivan Molodetskikh
5f440f7be3
Add live-reload for output on/off
2024-01-16 15:34:00 +04:00
Ivan Molodetskikh
6644cc16ff
tty: Remove connector arg from connector_disconnected()
2024-01-16 15:33:37 +04:00
Ivan Molodetskikh
6ca3b6ddb5
Move output scale setting into niri
2024-01-16 09:46:02 +04:00
Ivan Molodetskikh
64c41fa2c8
Move config into a separate crate
...
Get miette and knuffel deps contained within.
2024-01-07 09:28:14 +04:00
Ivan Molodetskikh
3d5de921cd
Add render-drm-device debug config option
2024-01-06 09:14:48 +04:00
Ivan Molodetskikh
8703feedee
tty: Print full path to render node
2024-01-06 08:46:30 +04:00
Ivan Molodetskikh
1c7c5b3f28
tty: Avoid non-linear cross-device formats
2024-01-05 23:23:32 +04:00
Ivan Molodetskikh
5cd31e5730
Implement multi-GPU support
...
Rendering always happens on the primary GPU.
2024-01-03 18:16:20 +04:00
Ivan Molodetskikh
de3fc2def0
Make rendering generic over renderer
2024-01-03 18:05:15 +04:00
Ivan Molodetskikh
fd1d4b07fd
Replace renderer() with with_primary_renderer()
2024-01-03 11:38:09 +04:00
Ivan Molodetskikh
8b5acd5e6e
Rename RenderResult::Error to Skipped
2024-01-03 11:38:07 +04:00
Ivan Molodetskikh
31bb9096e2
Move Niri::render() invocation to backends
2024-01-03 11:38:02 +04:00
Ivan Molodetskikh
57a7347620
Move import_dmabuf to backends
2024-01-03 11:37:04 +04:00