bjorn3
5af43fcaa2
graphics/vesad: Merge OffscreenBuffer into GraphicScreen
2024-12-28 14:51:02 +01:00
bjorn3
b5eeaed9e1
graphics/virtio-gpud: Use resource size rather than display size in set_scanout
...
This ensures we use the right size if the display got resized but the
resource hasn't been resized yet.
2024-12-28 14:32:56 +01:00
bjorn3
0b8648ff5b
graphics/virtio-gpud: Move some initialization code around
2024-12-28 14:16:56 +01:00
bjorn3
1ef298e576
graphics/virtio-gpud: Remove getters and setters for ResourceCreate2d
2024-12-28 14:04:10 +01:00
bjorn3
1d89ca7bd2
graphics/virtio-gpud: Remove unnecessary VolatileCell
...
The virtio queue abstraction already provides the necessary
synchronization to make everything data-race free without volatile
accesses.
2024-12-28 14:01:09 +01:00
bjorn3
9afe3b390b
graphics/vesad: Remove all usage of unstable features
2024-12-27 15:57:43 +01:00
bjorn3
ed9ad1aaf1
graphics/vesad: Remove old resizing code
...
Graphics clients will need to handle resizing themself anyway for
handoff between graphics drivers and as such don't need the graphics
to modify the framebuffer during resize.
2024-12-27 15:57:18 +01:00
Jeremy Soller
ee62075339
Merge branch 'unused_dup_impls' into 'master'
...
Remove all dup impls that only accept empty paths
See merge request redox-os/drivers!220
2024-12-27 14:14:23 +00:00
bjorn3
b1743d800c
Remove all dup impls that only accept empty paths
...
Those dups are handled by the kernel already by creating a new reference
to the underlying file descriptor.
2024-12-27 15:13:42 +01:00
Jeremy Soller
91f76826c0
Merge branch 'fix_multiple_virtio_displays' into 'master'
...
graphics/virtio-gpud: Don't crash when multiple displays are attached
See merge request redox-os/drivers!224
2024-12-27 14:13:00 +00:00
bjorn3
d7becba023
graphics/virtio-gpud: Don't crash when multiple displays are attached
2024-12-27 15:11:15 +01:00
Jeremy Soller
fed2e0fb40
Merge branch 'driver_graphics_crate' into 'master'
...
Add driver-graphics crate
See merge request redox-os/drivers!223
2024-12-27 14:03:27 +00:00
bjorn3
d2f1af9ca7
Add driver-graphics crate
...
This unifies the driver interface handling between graphics drivers and
makes it easier to change all graphics drivers in lockstep when adding
new features.
2024-12-27 12:47:43 +01:00
Jeremy Soller
365a018bb1
Merge branch 'virtio_gpud_refactor' into 'master'
...
Various virtio-gpud improvements
See merge request redox-os/drivers!222
2024-12-27 01:32:28 +00:00
bjorn3
b7f4af9bd2
graphics/virtio-gpud: Bring scheme impl closer in line with vesad
2024-12-26 22:19:35 +01:00
bjorn3
6f188cf7ef
graphics/fbcond: Unmap old offscreen buffer on handoff and resize
2024-12-26 21:58:41 +01:00
bjorn3
bf6e16c8c9
graphics/console-draw: Slightly simplify TextScreen::write
2024-12-26 21:58:07 +01:00
bjorn3
3fbf0fecbb
graphics/console-draw: Fix resizing to a smaller display
...
Without this commit ransid would generate move events with an
underflowed height which take forever to process.
2024-12-26 21:57:41 +01:00
bjorn3
1b6feeb7c7
graphics/virtio-gpud: Use VM window size as display size
...
Rather than hard coding 1920x1080. This doesn't yet handle resizing the
VM window at runtime though.
2024-12-26 20:59:08 +01:00
bjorn3
3ed3ff2edb
graphics/fbcond: Handle framebuffer resize during handoff
2024-12-26 20:57:53 +01:00
bjorn3
09de72e9a8
common: Fix mmap overwriting unintended memory in Sgl
...
If unaligned_length is for example 8193, the initial reservation would
be rounded up to the next page resulting in 12288. However the physmap
would previously round up to the next power of two forming 16384,
potentially overwriting one page of data directly after the reservation.
In case of bigger allocations, more pages could be overwritten.
2024-12-26 20:50:44 +01:00
bjorn3
62f1a80c3e
graphics/virtio-gpud: Move resources from Display to GpuScheme
...
Resources are global for the entire virtio-gpud device, not local to a
single display. In the future resource creation will become entirely
detached from specific displays.
2024-12-26 17:53:45 +01:00
bjorn3
2344206c21
graphics/virtio-gpud: Bundle resource id and resource mapping
2024-12-26 17:36:40 +01:00
Jeremy Soller
65d84afea6
Merge branch 'unused_imports' into 'master'
...
Fix a ton of unused import warnings
See merge request redox-os/drivers!219
2024-12-26 15:55:10 +00:00
Jeremy Soller
921c6b07f9
Merge branch 'driver_network_redox_scheme' into 'master'
...
Use redox-scheme in driver-network
See merge request redox-os/drivers!218
2024-12-26 15:54:44 +00:00
bjorn3
2c042f8c98
Fix a ton of unused import warnings
2024-12-26 16:05:04 +01:00
bjorn3
8eabb75524
Update redox-scheme to 0.3.0
2024-12-26 15:50:30 +01:00
bjorn3
20cd7b6dcd
driver-network: Use handle flags and offset stored by the kernel
2024-12-26 15:50:10 +01:00
bjorn3
c4dbcbecf2
Use redox-scheme in driver-network
2024-12-26 15:50:09 +01:00
Jeremy Soller
be6e942a08
Merge branch 'split_fbbootlogd' into 'master'
...
graphics: Introduce a separate daemon for the boot log
See merge request redox-os/drivers!217
2024-12-24 21:31:00 +00:00
bjorn3
12fc959737
graphics/fbcond: Move blocking operations back to the main thread
...
With fbbootlogd split out it is no longer essential to avoid blocking
operations on the main thread of fbcond. Moving them back to the main
thread simplifies things a fair bit.
2024-12-24 21:39:41 +01:00
bjorn3
4e2f1a730c
graphics: Introduce a separate daemon for the boot log
...
The daemon responsible for the boot log must never ever block to avoid
deadlocks, but doing so while still accepting keyboard input is
non-trivial. This commit splits the boot log out from fbcond into a
separate daemon to make this a lot easier to implement. This will also
allow making fbcond blocking again, which will simplify some things.
2024-12-24 21:39:41 +01:00
Jeremy Soller
911f966e15
Merge branch 'input_improvements' into 'master'
...
Couple of graphics and input subsystem refactorings
See merge request redox-os/drivers!216
2024-12-24 19:37:59 +00:00
bjorn3
5a1648fdca
graphics/fbcond: Migrate to redox-scheme
2024-12-24 16:56:11 +01:00
bjorn3
f4897c59b4
graphics/fbcond: Inline some helpers
2024-12-24 16:34:25 +01:00
bjorn3
aa35e573cf
input: Introduce ProducerHandle type
2024-12-24 15:28:56 +01:00
bjorn3
e3eb5fbb5d
input/ps2d: Use redox_event
2024-12-24 15:28:56 +01:00
bjorn3
0789069afc
input: Move all input drivers to a subdirectory
2024-12-24 15:28:56 +01:00
Jeremy Soller
9cf225fdc1
Merge branch 'misc_changes' into 'master'
...
graphics: Couple of misc changes
See merge request redox-os/drivers!215
2024-12-24 14:17:43 +00:00
bjorn3
84eed1ad0e
graphics: Introduce new ConsumerHandle type
...
This type has a method to open the current display.
2024-12-24 14:49:42 +01:00
bjorn3
a82fa31437
graphics/fbcond: Get display path in the background thread
2024-12-24 14:49:42 +01:00
bjorn3
a88f2c4b53
graphics/vesad: Remove support for reading resize events
...
Nobody actually listens for them from vesad itself anyway. Instead they
listen for them from inputd.
2024-12-24 14:49:42 +01:00
Jeremy Soller
a09d0fb761
Merge branch 'fix_vesad_damage_clip' into 'master'
...
vesad: Fix damage clipping
See merge request redox-os/drivers!214
2024-12-23 20:33:50 +00:00
bjorn3
db9ee0a495
vesad: Fix damage clipping
...
oops
2024-12-23 21:29:57 +01:00
Jeremy Soller
4c1658bbfe
Merge branch 'graphics_handover' into 'master'
...
graphics: Implement handoff from vesad to virtio-gpud
See merge request redox-os/drivers!213
2024-12-23 19:10:21 +00:00
bjorn3
05a6058131
Rustfmt
2024-12-23 19:05:00 +01:00
bjorn3
0019eecadd
virtio-gpud: Don't process flush requests for background VT's
...
This ensures that the foreground VT doesn't lockup if a background VT
spams us with flush requests. In the future we may want to add a
scheduler or collapse redundant flush requests.
2024-12-23 19:02:24 +01:00
bjorn3
025086acd1
virtio-gpud: Add offset method to XferToHost2d
...
This will hopefully avoid confusion if someone in the future changes the
XferToHost2d in flush to pass a smaller GpuRect. Without adjusting
offset this would cause glitches.
2024-12-23 19:02:24 +01:00
bjorn3
f6cc7d25df
graphics: Unify damage clipping
2024-12-23 19:02:24 +01:00
bjorn3
f2156d4654
graphics: Optimize the damage buffer api
...
It is now possible to write multiple damage locations in a single write
call. Vesad also no longer processes damage for background vt's. The
entire framebuffer will be redrawn once the vt switches to the
foreground anyway. And finally fsync now consistently redraws the entire
screen rather than having different behavior between vesad and
virtio-gpud.
2024-12-23 19:02:24 +01:00