Expand description
Modesetting operations that the DRM subsystem exposes.
Summary
The DRM subsystem provides Kernel Modesetting (KMS) functionality by exposing the following resource types:
-
FrameBuffer - Specific to an individual process, these wrap around generic GPU buffers so that they can be attached to a Plane.
-
Planes - Dedicated memory objects which contain a buffer that can then be scanned out by a CRTC. There exist a few different types of planes depending on the use case.
-
CRTC - Scanout engines that read pixel data from a Plane and sends it to a Connector. Each CRTC has at least one Primary Plane.
-
Connector - Represents the physical output, such as a DisplayPort or VGA connector.
-
Encoder - Encodes pixel data from a CRTC into something a Connector can understand.
Further details on each resource can be found in their respective modules.
Usage
To begin using modesetting functionality, the Device
trait
must be implemented on top of the basic super::Device
trait.
Modules
Helpers for atomic modesetting.
Connector
CRTC
DumbBuffer
Encoder
Framebuffer
Plane
Property
Structs
Commit flags for atomic mode setting
A filter that can be used with a ResourceHandles
to determine the set of
Crtcs that can attach to a specific encoder.
Iterator over Event
s of a device. Create via Device::receive_events()
.
Resolution and timing information for a display mode.
Display mode flags
Mode property flags
Display mode type flags
Page Flip event
Flags to alter the behaviour of a page flip
The set of plane::Handle
that a
Device
exposes.
Wrapper around a set of property IDs and their raw values.
The set of ResourceHandles
that a
Device
exposes. Excluding Plane resources.
Vblank event
Enums
An event from a device.
Target to alter the sequence of page flips
Type of a plane
Traits
This trait should be implemented by any object that acts as a DRM device and provides modesetting functionality.
Handle for a drm resource
Functions
Convert from a raw drm object value to a typed Handle
Type Definitions
Raw handle for a drm resource