amdgpu_vkms(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ amdgpu_vkms ✨

okay so bestie, this is the amdgpu_vkms(9) page from the Kernel API Manual, and the amdgpu vkms interface literally provides a virtual KMS interface for several use cases, and honestly it’s giving:

  • devices without display hardware 🫢
  • platforms where the actual display hardware is not useful (e.g., servers) πŸ’…
  • SR-IOV virtual functions ⭐
  • device emulation/simulation 🌸
  • device bring up prior to display hardware being usable πŸ”₯

ngl, we previously emulated a legacy KMS interface, but there was a desire to move to the atomic KMS interface. The vkms driver did everything we needed, but we wanted KMS support natively in the driver without buffer sharing and the ability to support an instance of VKMS per device. iconic, honestly.

We first looked at splitting vkms into a stub driver and a helper module that other drivers could use to implement a virtual display, but this strategy ended up being messy due to driver specific callbacks needed for buffer management. πŸ’€ not the messy callbacks.

Ultimately, it proved easier to import the vkms code as it mostly used core drm helpers anyway. periodt. πŸ’–

🌸 SEE ALSO 🌸

  • Kernel file ./drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c β€” go peek at the source, bestie πŸ‘€

made with πŸ’– from source/version ./drivers/gpu/drm/amd/amdgpu, dated October 2026, for amdgpu_vkms(9) β€” bye bestie, slay your virtual display era πŸŽ€

πŸ“¦ where this page comes from