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.