Les premiers 90% de la solution…
Les APIs graphiques sont optimales sur la plupart des points : portabilité, dev/déploiement facile, support fabricant/outils, accès complet HW, partage de code inter-GPU, interop visualisation.
Il y a des nuances entre les différentes APIs portables qui orienteront le choix :
- OpenGL est préférable pour le support des anciens GPUs & OSes (< 2012).
- Vulkan résout de nombreux problèmes d’OpenGL
sur les GPUs récent. Côté support…
- Excellent sous Linux : Programmes qui tournent avec zéro travail d’installation.
- Bon sous Windows : Le pilote OS ne sera pas forcément OK, le pilote fabricant si.
- Bof sous macOS : Nécessite une couche d’émulation type MoltenVK.
- WebGPU1 améliore l’ergonomie et le
support Win/Mac/Web + ancien HW, mais à un prix :
- API jeune, donc change encore souvent + couverture incomplète des fonctionnalités HW.
- Couche d’abstraction → Les outils type débogueur, profileur… sont plus difficiles à utiliser.
Pour ces raisons, je recommande pour l’instant Vulkan (via vulkano) pour les applis Linux.
1
Bien qu’issue du monde du web, cette API est aussi utilisable en natif via des implémentations comme wgpu.