6 releases

0.1.6 Aug 29, 2024
0.1.5 Aug 27, 2024

#790 in Hardware support

Download history 63/week @ 2024-08-09 71/week @ 2024-08-16 427/week @ 2024-08-23 74/week @ 2024-08-30 11/week @ 2024-09-13 5/week @ 2024-09-20 8/week @ 2024-09-27 1/week @ 2024-10-04

278 downloads per month

MIT license

220KB
5.5K SLoC

HBM

HBM is a hardware buffer allocator.

hbm crate provides a Rust library to allocate, export/import, and access hardware buffers.

hbm-minigbm crate provides an unstable C API for minigbm's internal use.

hbm-gralloc crate will (it is currently empty) provide a HAL service for Graphics Allocator interface and an SP-HAL for Graphics Mapper interface on Android. It is mainly built via the Android build system rather than via cargo.

TODOs

  • multi-backend
    • e.g., drm-kms adds alignment and modifier constraints, vulkan decides the layout, dma-heap allocates dma-buf, and vulkan again maps/copies
  • more backends, such as vaapi, v4l2, libcamera, etc.
  • policy backend
    • collect constraints and generate a policy offline
    • load constraints from the policy at runtime
    • this is useful when sandboxed or for non-queryable constraints
  • require modifiers
  • no_std
  • hbm-gralloc
    • aidl codegen
    • implement allocator and mapper

Dependencies

~8.5MB
~195K SLoC