Commit Graph

80 Commits

Author SHA1 Message Date
bjorn3 6a039c29fe drivers/graphics/ihdgd: Don't access CRTC in set_plane 2026-05-14 16:05:57 +02:00
bjorn3 5d6faacfb3 drivers/graphics/driver-graphics: Couple of fixups 2026-05-14 16:00:30 +02:00
bjorn3 0ee128ad8d drivers/graphics: Make everything work 2026-05-14 15:50:15 +02:00
bjorn3 76d6398473 drivers/graphics/driver-graphics: Add primary plane for every CRTC 2026-05-14 15:29:58 +02:00
Meijlen 835be6f654 drivers/graphics: Implement support for planes 2026-05-14 15:29:56 +02:00
bjorn3 5f4e5016a8 drivers/graphics/driver-graphics: Implement MODE_ADD_FB2 2026-05-14 14:56:33 +02:00
bjorn3 6875c90850 drivers/graphics/driver-graphics: Implement SET_VERSION and GET_UNIQUE
libdrm needs these when searching for drm devices.
2026-05-14 12:09:55 +02:00
bjorn3 009a9130d2 drivers/graphics: Report DRM_CAP_DUMB_PREFERRED_DEPTH to clients 2026-05-10 14:54:47 +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 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 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
bjorn3 01183044a3 Workaround deadlock in initnsmgr 2026-04-18 12:58:41 +02:00
bjorn3 071ce1e98f drivers/graphics/ihdgd: Fix a couple of warnings 2026-04-05 13:06:06 +02: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 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 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
bjorn3 36a9669c57 drivers/graphics/ihdgd: Pass DeviceFb to Plane::set_framebuffer 2026-03-21 13:31:04 +01:00
bjorn3 b1e4bcf54b drivers/graphics/ihdgd: Extract most of the plane configuration into separate functions 2026-03-21 13:21:29 +01:00
bjorn3 f5ce77203e drivers/graphics/ihdgd: Initialize planes inside GraphicsAdapter::init 2026-03-20 23:22:17 +01:00
bjorn3 6def27936a drivers/graphics: Pass KmsCrtcState to set_crtc 2026-03-20 23:19:50 +01:00
bjorn3 d08300c8b5 drivers/graphics: Make objects generic over GraphicsAdapter rather than specific driver data 2026-03-20 23:19:50 +01:00
bjorn3 eaa390156d drivers/graphics: Split out state modified during atomic mode setting 2026-03-19 23:39:32 +01:00
bjorn3 5b88dadc4f drivers/graphics: Move connector<->crtc binding to KmsConnector
A connector can only get input from one CRTC and the CRTC_ID property is
on the connector. There is no CONNECTOR_IDS property on CRTCs.
2026-03-19 23:25:37 +01:00
bjorn3 79e9e0987d drivers/graphics: Move property values into individual objects 2026-03-19 22:26:55 +01:00
bjorn3 cdb4ec4575 drivers/graphics: Remove unnecessary graphic-ipc dependencies
And other unnecessary dependencies. Also move all graphics-ipc contents
to the top of the crate.
2026-03-17 20:26:18 +01:00
bjorn3 09a23a3c4a drivers/graphics: Remove Damage from graphics-ipc 2026-03-17 20:19:52 +01:00
Ribbon 90ea974ce0 Add missing Cargo package description and update drivers README 2026-03-16 10:39:15 -06:00
bjorn3 e27726e8c3 drivers/graphics: Remove GraphicsAdapter::display_count 2026-03-15 13:30:00 +01:00
bjorn3 93a8179d1f drivers/graphics: Remove GraphicsAdapter::display_size
It is no longer used.
2026-03-15 13:10:25 +01:00
bjorn3 d7974b3143 drivers/graphics: Nicer way to define standard properties
All standard properties are now pre-allocated at KmsObjects creation and
given a fixed object id.
2026-03-15 12:29:51 +01:00
bjorn3 be6ae85541 drivers/graphics: Implement proper support for framebuffers
Including support for creating and destroying framebuffers.
2026-03-15 11:19:59 +01:00
bjorn3 84f6f67a98 drivers/graphics: Implement the cursor drm ioctls 2026-03-14 14:15:13 +01:00
bjorn3 985612d5e0 drivers/graphics: Changes to support SETCRTC in the future 2026-03-14 12:52:51 +01:00
bjorn3 63ca9efb8c drivers/graphics: Introduce CRTC objects
Currently still read-only.
2026-03-14 12:37:41 +01:00
bjorn3 20834544b7 drivers/graphics: Move KMS object handling to a submodule 2026-03-13 23:57:14 +01:00
bjorn3 977e13077d drivers/graphics: Require Debug to be implemented for Buffer 2026-03-13 23:23:16 +01:00
bjorn3 f6a7c194b2 drivers/graphics: Refcount all DRM objects
This is necessary to be able to properly handle objects that reference
each other and in doing so keep each other alive.
2026-03-13 23:23:15 +01:00
bjorn3 7f8ddd7a7e drivers/graphics: Add helpers for updating the connector state 2026-03-13 22:15:59 +01:00
bjorn3 c088e48948 drivers/graphics: Move DrmConnector and DrmEncoder to a separate module 2026-03-13 21:57:44 +01:00