Skip to content

drmkit 0.1.0

Choose a tag to compare

@jwinarske jwinarske released this 14 Oct 13:09
· 159 commits to main since this release
07fffd4

The first release: a behavioral-parity port of drm-cxx v5.0.0 (2b260d0), as twenty-one crates.

Added

  • drmkit-core, -modeset, -dumb, -fmt, -sync, -log, -time: device handles and cached properties, atomic requests, mode selection and page-flip dispatch, dumb buffers, format modifiers and IN_FORMATS, sync_file fences, diagnostics, and a swappable presentation clock.
  • drmkit-planes: the plane registry and the allocator that assigns layers to planes, with reading planes off a device behind device.
  • drmkit-scene, -scene-sources, -scene-set, -scene-gbm: a layer stack lowered to a frame and committed, composition for what does not fit, the sources a layer's pixels come from, several scenes committed together, and layers fed by a GBM surface.
  • drmkit-present: the scanout spine — buffer rings, modifier negotiation, frame pacing, and a backend that drives them.
  • drmkit-display: EDID through libdisplay-info (edid), the hotplug watch (hotplug), driver and connector capabilities, colour pipelines and tone mapping.
  • drmkit-cursor, -capture, -csd: cursor themes and cursor planes, readback of what a CRTC is scanning out, and client-side decorations.
  • drmkit-gbm: GBM allocation, with libgbm opened at run time.
  • drmkit-session, -input: holding devices across a VT switch through libseat, and libinput devices with xkb key resolution.
  • drmkit: every member crate re-exported as a module behind a feature of the same name, with the system libraries as features of their own.

What the port leaves out, and why, is recorded per test file in TEST_PARITY.md and per divergence in docs/parity-findings.md.

All 21 crates are on crates.io, with documentation on docs.rs. Start with the drmkit crate, whose features pick the member crates.