Edit: I'm not sure how to format nicely here... so I updated the related PR. That said, this probably isn't the best reference location for this. In any case, posting in case helpful for anyone else. If it's useful for the project to better community (and potentially automate) some of this I'm happy to get involved, but here's what I've got for now:
There are fundamentally two driver paths for RK3588:
libMali path - Enables NPU for ML inference, basic GPU only
Panthor path - Enables full GPU acceleration, no NPU
Within each path, you can choose headless or desktop (XFCE/GNOME), but:
libMali + desktop = slow rendering (software only)
Panthor + desktop = smooth rendering (hardware accelerated)
Key insight: The NPU and GPU hardware are separate, but the software drivers conflict. You must choose which accelerator matters more for your use case.
Additional constraint:
Kernel matters - NPU only works on 6.1 vendor kernel. Mainline 6.12 has no NPU support but best GPU drivers.
This creates a matrix of ~6 viable configurations, each optimized for different workloads (production ML, ML development, desktop, latest kernel, etc).
More detailed breakdown:
https://github.com/armbian/build/pull/8979#issuecomment-3587135022