Commit Graph

175 Commits

Author SHA1 Message Date
bjorn3 d110147d62 drivers/graphics/driver-graphics: Introduce KmsObjects::remove helper 2026-05-13 21:19:05 +02:00
bjorn3 d1cf7d53d2 drivers/graphics/driver-graphics: Introduce set_connector_edid helper
And don't create a new blob unless the EDID actually changes.
2026-05-13 21:18:59 +02:00
bjorn3 74bd1db73a drivers/graphics/virtio-gpu: Move some block_on calls to the callers 2026-05-13 20:02:01 +02:00
bjorn3 e2c67fa8f8 drivers/graphics/virtio-gpu: Extract create_dumb_buffer_inner as async function 2026-05-13 20:00:25 +02:00
bjorn3 ebdf681eab drivers/graphics/virtio-gpu: Introduce send_request_cursor 2026-05-13 19:46:56 +02:00
bjorn3 7c533510a9 drivers/graphics/driver-graphics: Match error codes of Linux 2026-05-12 21:15:59 +02:00
bjorn3 e4462ccc09 drivers/graphics/driver-graphics: Report dummy TILE property for connectors 2026-05-10 15:28:39 +02:00
bjorn3 3f4ad965de drivers/graphics/driver-graphics: Report ACTIVE property for CRTCs 2026-05-10 15:22:15 +02:00
bjorn3 e93431cac0 drivers/graphics/driver-graphics: Replace From and TryFrom impls with KmsObjectKind trait 2026-05-10 15:09:34 +02:00
bjorn3 009a9130d2 drivers/graphics: Report DRM_CAP_DUMB_PREFERRED_DEPTH to clients 2026-05-10 14:54:47 +02:00
bjorn3 853e050fc8 drivers/graphics/driver-graphics: Use unzip in get_object_properties_data 2026-05-10 12:17:35 +02:00
bjorn3 d528fb73b4 drivers: Use map_bar instead of physmap where possible
Physmap requires root, while map_bar in the future could be run as
unprivileged process given a pcid handle for the target device.
2026-05-09 20:12:41 +02:00
bjorn3 018d795eb0 drivers/graphics: Avoid unnecessary force probes
Force probes can be rather expensive on real hardware so according to
the drm_mode_get_connector docs it should only be done at startup, on a
hotplug event and when explicitly requested by the user.
2026-05-09 12:16:22 +02:00
bjorn3 2436639271 drivers/graphics: Avoid duplicate get_connector calls 2026-05-09 12:07:58 +02:00
bjorn3 15c3327adb drivers/graphics/ihdgd: Remove unnecessary reset call
alloc_buffers already starts as empty.
2026-05-08 20:24:09 +02:00
bjorn3 1dcf00dc8e drivers/graphics/driver-graphics: Replace hw_cursor_size with has_cursor_plane
Clients get the cursor size using get_cap. hw_cursor_size is only used
to determine the existence of a cursor plane nowadays.
2026-05-07 22:20:59 +02:00
bjorn3 e9188e0f91 drivers/graphics/driver-graphics: Reduce visibility of some functions 2026-05-07 22:20:12 +02:00
bjorn3 7a08d30285 Rustfmt 2026-05-06 21:43:53 +02:00
bjorn3 8fdd5f3998 drivers/graphics/ihdgd: Replace DeviceFb with GpuBuffer for dumb buffers
Dumb buffers only have a size like GpuBuffer, not width, height and
stride like DeviceFb.
2026-05-06 21:32:32 +02:00
bjorn3 221d228f36 drivers/graphics/ihdgd: Support page flipping 2026-05-06 21:32:29 +02:00
Migue Magic e577bfc2ea Optimize console-draw write function 2026-05-03 09:06:37 -06:00
bjorn3 009ffe1dbc Fix compilation 2026-04-27 22:09:53 +02:00
Migue Magic 180bfe15a7 Fix typos across 3 drivers 2026-04-27 12:27:11 -06:00
bjorn3 daf726c30d scheme-utils: Have FpathWriter handle writing the scheme name 2026-04-19 19:07:41 +02:00
bjorn3 64d23e9e05 scheme-utils: Introduce FpathWriter helper 2026-04-19 19:07:41 +02:00
bjorn3 28900f7c49 scheme-utils: Introduce Blocking as counterpart to ReadinessBased for blocking schemes 2026-04-19 11:05:04 +02:00
bjorn3 6686c73d26 Implement on_close method of SchemeSync instead of using a separate method 2026-04-19 10:42:19 +02:00
bjorn3 01183044a3 Workaround deadlock in initnsmgr 2026-04-18 12:58:41 +02:00
bjorn3 6311833765 drivers/graphics/bgad: Remove bgad
The only thing it does it changing the size of the region that the
graphics adapter sees as framebuffer. It doesn't actually tell vesad to
resize the framebuffer nor does it implement an actual full graphics
driver. For basic usage the bootloader setup framebuffer is sufficient
and for anything more advanced, virtio-gpu is a much better option that
we already have a full graphics driver for.
2026-04-14 21:18:43 +02:00
bjorn3 317a0178b6 Introduce scheme-utils crate and HandleMap type
HandleMap deduplicates the id assignment for handles and unlike most
existing implementations handles overflow just fine.
2026-04-13 22:19:07 +02:00
Jeremy Soller 6deaaa71a7 Merge branch 'check-shadow-buf' into 'main'
drivers/graphics: Add API to check if shadow buffer present

See merge request redox-os/base!222
2026-04-12 06:49:51 -06:00
Wildan M c2f46bf383 drivers/graphics: Add API to check if shadow buffer present 2026-04-12 12:39:09 +07:00
bjorn3 071ce1e98f drivers/graphics/ihdgd: Fix a couple of warnings 2026-04-05 13:06:06 +02:00
bjorn3 21d1db3538 drivers/graphics/driver-graphics: Extract activate_vt method 2026-04-05 12:56:30 +02:00
bjorn3 bf5286d25d drivers/graphics: Replace CpuBackedBuffer::sync_range with CpuBackedBuffer::sync_rect
This can be a bit more efficient by doing bounds checks before the main
loop.
2026-03-28 16:53:59 +01:00
Jeremy Soller 58459178b0 Merge branch 'gpu_drm36' into 'main'
drivers/graphics/ihdgd: Implement support for mapping memory to the GPU

See merge request redox-os/base!208
2026-03-27 20:40:22 -06:00
bjorn3 6473d987c3 drivers/graphics/ihdgd: List correct pipes for Alchemist 2026-03-28 00:02:38 +01:00
bjorn3 f152bbad23 drivers/graphics/ihdgd: Implement support for mapping memory to the GPU
This is done by adding entries to the global GTT page table. At startup
it only contains entries for a small chunk of memory reserved for the
GPU. This small chunk is rarely enough to contain all framebuffers we
need to allocate.
2026-03-27 22:45:26 +01:00
bjorn3 70bba179c4 drivers/graphics/ihdgd: Introduce GpuBuffer
Unlike DeviceFb a GpuBuffer only has a size, not a width, height and
stride. In the future GpuBuffer can be used for dumb buffers as well as
any other kind of memory we may need to allocate on the gpu.
2026-03-23 22:23:32 +01:00
Jeremy Soller 107f8696fd Merge branch 'gpu_drm35' into 'main'
Couple of GPU buffer improvements

See merge request redox-os/base!198
2026-03-23 07:23:21 -06:00
bjorn3 d274ac2817 drivers/graphics: Return proper pitch to the drm client for dumb buffers 2026-03-22 19:53:38 +01:00
bjorn3 8ae815aca7 drivers/graphics: Replace width and height methods on Buffer with size
A buffer is not necessarily a framebuffer. It may also be a blob of
bytes.
2026-03-22 19:46:32 +01:00
auronandace e3c6ca1573 upgrade to latest spin crate and add to workspace 2026-03-22 15:43:32 +00:00
auronandace 557a3d1954 consolidate several dependencies into the workspace 2026-03-22 15:11:33 +00:00
bjorn3 fcee1d7d86 drivers/graphics/ihdgd: Measure fb stride in bytes rather than pixels
This is how stride is generally stored.
2026-03-22 12:54:34 +01:00
bjorn3 7177fe0a86 drivers/graphics: Implement shadow buffer for dumb buffers
This is necessary to get even remotely acceptable performance when dumb
buffers are backed by write-combining memory.
2026-03-21 19:01:54 +01:00
bjorn3 e6efc5f99b drivers/graphics/fbcond: Fix log message 2026-03-21 18:02:38 +01:00
bjorn3 05ca76bf59 drivers/inputd: Remove some leftover code from the old way display resizing was handled 2026-03-21 13:49:46 +01:00
bjorn3 afa6b64104 drivers/graphics/ihdgd: Introduce DeviceFb::alloc 2026-03-21 13:31:05 +01:00
bjorn3 56552cc6b3 drivers/graphics/ihdgd: Introduce helpers to fetch current plane state 2026-03-21 13:31:05 +01:00