1 ポイント 投稿者 GN⁺ 2024-08-31 | 1件のコメント | WhatsAppで共有

GPU API MkII

プロジェクト紹介
  • SDLの新しいGPU APIが導入された
  • MoonWorksプロジェクトと似ており、モダンなAPI(Vulkanなど)を対象としている
  • Samurai Gunn 2 などのゲームで使用中
主な機能と利点
  • コンピュート機能: Refresh APIはコンピュート機能を簡単に利用できるようにする
  • シェーダーシステム: オフラインコンパイル方式を採用し、さまざまなフォーマットをサポート
  • リソース安全性: 内部的にリソースの安全性を保証し、ユーザーに複雑なAPIを露出しない
シェーダーシステム
  • shaderbuild.py スクリプトを使ってオフラインでシェーダーをビルド
  • シェーダーモジュール生成時に各バックエンドのIRフォーマットを使用
  • SDL自体はシェーダーコンパイラをラップしない
開発の進捗状況
  • Metalのサポートを開始
  • FNA3Dポートを通じてシェーダー生成をサポート
  • ハードウェアインスタンシングのサポートを今後追加予定
コミュニティのフィードバック
  • オフラインシェーダーコンパイル方式についてさまざまな意見
  • SDL_gpuのサイクル処理方式に対する好意的な評価
  • 多様なバックエンド対応のため継続的な改善が必要
今後の計画
  • SDLスタイルのドキュメントコメントを作成
  • MetalおよびD3D12サポートを強化
  • テストプログラムの追加とバグ修正

# GN⁺のまとめ

  • SDLの新しいGPU APIはモダンなグラフィックスAPIをサポートし、さまざまなゲームで利用可能
  • シェーダーシステムはオフラインコンパイル方式を採用し、性能を最適化
  • コミュニティのフィードバックを反映して継続的に改善中で、MetalおよびD3D12サポートを強化予定
  • このAPIはゲーム開発者にとって有用で、多様なバックエンドをサポートして柔軟性を提供する

1件のコメント

 
GN⁺ 2024-08-31
Hacker Newsの意見
  • SDL3はまだプレビュー段階だが、新しいGPU APIがメインブランチにマージされた

    • 新しいGPU APIにより、グラフィックスコードとシェーダーを一度書けば、最小限の手間でクロスプラットフォーム(コンソールを含む)で動作させられる
    • 以前はUnity、Unreal、またはカスタムソリューションが必要だった
    • WebGPU/WGSLも同様のクロスプラットフォームなグラフィックススタックへの取り組みである
    • 現時点でSDL3 GPU APIはWebGPUをバックエンドとしてサポートしていない
  • SDL GPU APIがこれほど早く完成したことに驚いている

    • WebGPU Nativeは開発中で、まだ完成していない
    • SDL GPU APIはより多くのプラットフォームをサポートしているため、もっと時間がかかると思っていた
  • dx12部分に貢献できてうれしい

  • SDLは高品質なソフトウェアで、複数のプラットフォームで高速にコンパイルでき、常に動作する

    • 新しいAPIに期待している
  • SDLの大ファンだ

    • クロスプラットフォームのゲームライブラリを探していたとき、SDLとそのAPIはちょうどよいバランスを提供してくれた
    • ウィンドウとグラフィックスコンテキストを作成できるC(++)ライブラリが必要だった
    • 新しい言語を学びたくなかった
  • これが今後どうなっていくのか楽しみだ

    • カスタムゲームエンジンやアプリを構築するための選択肢が増えることを願っている
  • Vulkanを学ぶのは楽しく有益だったが、進みが遅く感じられる

    • もし最初からSDL3があったなら、もっと多くの成果を出せていただろう
  • このライブラリを使ったことはないが、クロスプラットフォームGPUコンピューティング機能の例を見てみたい

    • どこから始めるべきか提案がほしい
  • RaylibがSDL GPUバックエンドを手に入れるのを見てみたい

    • そうなればすぐに使うだろう
  • これがhttps://github.com/grimfang4/sdl-gpu と関係あるのか気になる

    • それとも同名のまったく別のものなのか気になる