bjorn3
56d4fdd025
graphics: Replace adapter.displays() with .display_count()
2025-06-30 19:58:25 +02:00
bjorn3
5ddddd91df
graphics: Pass CursorPlane by shared ref to handle_cursor
2025-06-29 18:03:01 +02:00
4lDO2
657bf13d7c
Use library call for iopl.
2025-04-13 21:22:45 +02:00
bjorn3
d318679112
graphics/fbbootlogd: Tell logd to use us as log sink
2025-04-06 20:11:47 +02:00
bjorn3
65c23ed77d
graphics/vesad: Disable kernel graphical debug as late as possible
2025-04-06 17:12:10 +02:00
bjorn3
f1b5ba52ed
Rustfmt
2025-04-04 20:41:31 +02:00
bjorn3
215b8185c2
Handle vt switching for cursors without requiring a cursor update
...
This requires storing the cursor state on the driver-graphics side to be
be able to restore the correct state for the target vt.
2025-04-04 20:37:43 +02:00
bjorn3
abab5c9a3c
Avoid passing unused fields to VIRTIO_GPU_CMD_MOVE_CURSOR
2025-04-04 20:25:57 +02:00
bjorn3
03cf0955d2
Move cursor resource writing to driver-graphics
2025-04-04 20:04:25 +02:00
Dimitar Gjorgievski
de4cc6ed4a
adding support for gpu cursor
2025-04-03 21:21:32 +00:00
Jeremy Soller
bbac3ff4f4
Merge branch 'fix_damage' into 'master'
...
graphics/console-draw: Fix damage calculation
See merge request redox-os/drivers!259
2025-03-15 21:42:00 +00:00
bjorn3
7e6534ff35
graphics/console-draw: Fix damage calculation
2025-03-15 22:09:14 +01:00
bjorn3
fb24979c51
Reduce verbosity of debug logs during booting
...
These logs are only useful when actively working on the respective driver.
2025-03-15 21:09:12 +01:00
bjorn3
f48ae933ff
graphics: Only allow passing a single damage area at a time
...
Currently only fbbootlogd and fbcond make use of support for multiple
damage areas and they are not all that performance critical anyway.
Orbital always passes a single damage area per write call. Out of all
graphics drivers we have and are likely to get only vesad could
potentially benefit from fine-grained damage areas. This commit doesn't
significantly impact performance of fbcond.
2025-03-15 18:49:59 +01:00
bjorn3
ffbfecbdb0
graphics/fbcond: Make it robust against initial graphics driver being broken
2025-03-15 17:30:39 +01:00
bjorn3
87d71bc708
graphics/fbbootlogd: Merge Display into FbbbootlogScheme
2025-03-15 17:27:14 +01:00
bjorn3
54113f8fde
graphics/fbbootlogd: Make it robust against initial graphics driver being broken
2025-03-15 17:21:23 +01:00
bjorn3
9290cffa70
graphics/fbbootlogd: Extract handle_handoff method
2025-03-15 17:18:28 +01:00
bjorn3
b9d043f6e2
inputd: Add ConsumerHandle::read_events
2025-03-15 17:09:45 +01:00
bjorn3
56808dbfb1
graphics/fbbootlogd: Remove input events background thread
2025-03-15 16:53:58 +01:00
bjorn3
943cbe3707
graphics/fbbootlogd: Remove workaround that prevents blocking on the graphics driver
...
Instead logd will no longer block on fbbootlogd to prevent the deadlock
that this worked around.
2025-03-15 16:53:44 +01:00
bjorn3
5d76acfd74
Update to redox-scheme 0.4
2025-03-14 22:11:30 +01:00
bjorn3
7bb1693e86
graphics/graphics-ipc: Fix Damage::clip
2025-03-13 19:04:28 +01:00
bjorn3
f2d3d16455
graphics/bgad: Use redox-scheme
2025-03-13 17:00:54 +01:00
bjorn3
09ef96ae80
graphics/drivers-graphics: Fix some comments and remove no longer necessary feature
2025-03-13 17:00:54 +01:00
bjorn3
be5b865058
graphics: Rename resource to framebuffer
...
This matches the Linux DRM name.
2025-03-06 21:41:26 +01:00
bjorn3
92295f2ea4
graphics/graphics-ipc: Use u32 fields in Damage
...
The fields should never be negative and this saves a couple of casts.
2025-03-06 20:49:21 +01:00
bjorn3
ee3382aed0
graphics/virtio-gpud: Add helper to submit a fenced request
...
This is necessary for implementing hardware cursor support.
2025-03-06 20:49:20 +01:00
bjorn3
fc92f0b0ce
graphics: Rename the legacy graphics API to the v1 graphics API
...
It is quite likely that the next graphics API won't be the last one and
as such would become a legacy API too. Consistently using version
numbers makes it easier to refer to the exact version you mean.
2025-03-06 20:49:20 +01:00
bjorn3
972e19e900
graphics: Always pass damage to graphics drivers
...
This way the drivers don't have to special case switching between VTs.
2025-03-06 20:49:17 +01:00
bjorn3
88cfa76e2c
graphics: Merge set_scanout and flush_resource into update_plane
...
The old api was pretty virtio-gpu specific. The new api is closed to how
atomic mode setting on Linux works.
2025-03-06 20:48:41 +01:00
bjorn3
e9d8d7ceaf
Implicitly create a new VT for each consumer
...
Instead of requiring the graphics driver to create a fixed set of VTs in
advance. This fixes the graphical interface when there is a graphics
driver but no boot framebuffer. Previously in that case vesad would exit
before it creates any VT and thus no consumer could show anything as
their VT was missing. In the future creating new VTs on the fly could
also allow a display manager to use a separate VT for each user session.
2025-03-02 20:28:34 +01:00
Jeremy Soller
2e82009412
Merge branch 'centralize_error_handling' into 'master'
...
Make all pcid_interface methods abort the process on errors
See merge request redox-os/drivers!242
2025-03-02 18:45:17 +00:00
bjorn3
39dd9118c0
graphics/fbcond: Handle missing graphics driver at startup
2025-03-02 19:19:08 +01:00
bjorn3
de0239d3ed
inputd: Automatically switch to first vt once created
2025-03-02 16:33:39 +01:00
bjorn3
e7fe3183b0
Make all pcid_interface methods abort the process on errors
...
Effectively the only way to recover from errors in the communication
with pcid is by restarting the driver from scratch possibly after
restarting pcid. As such moving the aborts from individual drivers to
pcid_interface simplifies drivers while at the same time allowing nicer
error messages.
2025-03-02 12:36:35 +01:00
bjorn3
fe31bd0578
inputd: Remove deactivate event
...
It is no longer useful now that virtio-gpud permanently takes over
control of the display when it starts.
2025-03-01 20:00:29 +01:00
bjorn3
4f2268bbfe
graphics/vesad: Exit gracefully when there is no boot framebuffer
2025-03-01 19:54:33 +01:00
bjorn3
d26ee5a58d
graphics/fbbootlogd: Handle non-existent graphics adapter
...
This ensures a serial console shows up with all non-graphics related
daemons started when there is no framebuffer passed by the bootloader.
2025-03-01 19:23:56 +01:00
bjorn3
68af18aead
graphics/vesad: Make some fields and methods private
2025-03-01 18:23:31 +01:00
bjorn3
91f814a42c
graphics/vesad: Simplify sync loop
...
LLVM should optimize it to pretty much the same code, but using a
regular for loop makes it's behavior clearer.
2025-03-01 18:22:18 +01:00
bjorn3
0c42f431bd
graphics/vesad: Merge screen.rs into scheme.rs
2025-03-01 18:09:23 +01:00
bjorn3
31450e5770
graphics/fbbootlogd: Get rid of fevent and tracking handles
...
Fbbootlogd doesn't do non-blocking operations, so fevent isn't needed.
And the kernel shouldn't pass closed handles to us and even if it does
due to a bug, it is harmless to silently ignore the fact that the handle
was closed.
2025-02-22 16:33:22 +01:00
bjorn3
4b61e7bc86
graphics/fbbootlogd: Inline TextScreen into FbbootlogScheme
2025-02-22 16:33:22 +01:00
bjorn3
e973f89139
Remove unnecessary feature gates
...
Some of these have been stabilized while others were likely no longer
used at all.
2025-02-22 14:38:33 +01:00
bjorn3
5fc04c332d
graphics: Move Damage from inputd to graphics-ipc
2024-12-28 16:26:18 +01:00
bjorn3
7b11acbc46
graphics: Introduce graphics-ipc crate
...
While for now this for now only includes helpers for the current limited
display interface which is relatively simple to implement manually, in
the future we will likely need a more complex interface with gpu drivers
that would be hard to get right without a common crate proving the
interface.
2024-12-28 16:21:58 +01:00
bjorn3
5bfce514be
graphics/console-draw: Collapse consecutive damage entries
2024-12-28 15:18:55 +01:00
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