bk99.de entertain the web since 1997

The road to Vulkan on Asahi Linux

Summary

Asahi Lina explains the new Apple GPU UAPI, explicit synchronisation and Rust extensions on the way to Vulkan. The driver already supported parallel GPU jobs from several applications. The work found two memory bugs in the existing DRM scheduler.

Ideas

  • Kernel and user space drivers communicate via a permanently stable GPU UAPI.
  • An early demo interface was not enough for parallel Vulkan workloads.
  • Explicit synchronisation makes dependencies between GPU jobs visible.
  • Several virtual GPU address spaces prepare for Vulkan requirements.
  • Rust abstractions open up DRM fences, scheduler and sync objects in a more memory-safe way.

Insights

  • A UAPI frozen too early can create decades of technical debt.
  • Graphics performance depends on synchronisation as much as on computing power.
  • New driver work can uncover bugs in shared kernel components.

Facts

  • A result buffer delivers timings, statistics and decoded GPU errors to Mesa.

Recommendations

  • Only stabilise public kernel interfaces after realistic parallel and error cases.
  • Test graphics changes together with kernel, Mesa and several applications.

References

Read the original article

Search the Web Archive