1 points par GN⁺ 2024-08-31 | 1 commentaires | Partager sur WhatsApp

GPU API MkII

Présentation du projet
  • La nouvelle API GPU de SDL a été introduite
  • Elle est similaire au projet MoonWorks et cible des API modernes (comme Vulkan)
  • Elle est déjà utilisée dans des jeux comme Samurai Gunn 2
Principales fonctionnalités et avantages
  • Fonctionnalités de calcul : l’API Refresh permet d’utiliser simplement les fonctionnalités de calcul
  • Système de shaders : utilisation d’une compilation hors ligne, avec prise en charge de plusieurs formats
  • Sécurité des ressources : la sécurité des ressources est garantie en interne, sans exposer à l’utilisateur une API complexe
Système de shaders
  • Utilisation du script shaderbuild.py pour la compilation hors ligne des shaders
  • Lors de la génération des modules de shaders, les formats IR de chaque backend sont utilisés
  • SDL n’encapsule pas lui-même de compilateur de shaders
Avancement du développement
  • Début de la prise en charge de Metal
  • Prise en charge de la génération de shaders via un port FNA3D
  • Ajout prévu de la prise en charge du hardware instancing
Retours de la communauté
  • Avis variés sur l’approche de compilation hors ligne des shaders
  • Évaluation positive de la gestion du cycle dans SDL_gpu
  • Besoin d’améliorations continues pour la prise en charge de divers backends
Plans à venir
  • Rédaction de commentaires de documentation dans le style SDL
  • Renforcement de la prise en charge de Metal et D3D12
  • Ajout de programmes de test et correction de bugs

# Résumé de GN⁺

  • La nouvelle API GPU de SDL prend en charge des API graphiques modernes et peut être utilisée dans divers jeux
  • Le système de shaders adopte une compilation hors ligne afin d’optimiser les performances
  • Elle continue d’être améliorée en intégrant les retours de la communauté, avec un renforcement prévu du support de Metal et de D3D12
  • Cette API est utile pour les développeurs de jeux, en offrant de la flexibilité grâce à la prise en charge de divers backends

1 commentaires

 
GN⁺ 2024-08-31
Commentaires sur Hacker News
  • SDL3 est encore en préversion, mais la nouvelle API GPU a été fusionnée dans la branche principale

    • La nouvelle API GPU permet d’écrire le code graphique et les shaders une seule fois pour qu’ils fonctionnent sur plusieurs plateformes, y compris les consoles, avec un minimum d’efforts
    • Auparavant, il fallait Unity, Unreal ou une solution sur mesure
    • WebGPU/WGSL est aussi une initiative similaire pour une pile graphique multiplateforme
    • À l’heure actuelle, l’API GPU de SDL3 ne prend pas en charge WebGPU comme backend
  • Il est surprenant que l’API GPU de SDL soit arrivée à maturité aussi vite

    • WebGPU native est en cours de développement et n’est pas encore terminé
    • Comme l’API GPU de SDL prend en charge davantage de plateformes, on aurait pu s’attendre à ce que cela prenne plus de temps
  • Heureux d’avoir pu contribuer à la partie dx12

  • SDL est un logiciel de grande qualité, qui se compile rapidement sur plusieurs plateformes et fonctionne toujours

    • J’attends beaucoup de cette nouvelle API
  • Je suis un grand fan de SDL

    • Quand j’ai cherché une bibliothèque de jeu multiplateforme, SDL et son API offraient le bon équilibre
    • J’avais besoin d’une bibliothèque C(++) capable de créer des fenêtres et des contextes graphiques
    • Je ne voulais pas devoir apprendre un nouveau langage
  • J’ai hâte de voir ce que tout cela va donner

    • J’espère qu’il y aura davantage d’options pour construire des moteurs de jeu et des applications sur mesure
  • Apprendre Vulkan a été amusant et enrichissant, mais la progression m’a semblé lente

    • Si SDL3 avait existé dès le début, j’aurais probablement accompli davantage
  • Je n’ai jamais utilisé cette bibliothèque, mais j’aimerais voir des exemples de capacités de calcul GPU multiplateforme

    • J’aurais besoin de suggestions pour savoir par où commencer
  • J’aimerais voir Raylib obtenir un backend SDL GPU

    • Dans ce cas, je l’utiliserais immédiatement
  • Je me demande si cela a un rapport avec https://github.com/grimfang4/sdl-gpu

    • Ou si c’est quelque chose de complètement distinct qui porte simplement le même nom