1 ポイント 投稿者 GN⁺ 2024-06-06 | 1件のコメント | WhatsAppで共有
  • Honeykrispはまだエンドユーザー向けには未リリースで、開発者向けのsource codeのみが公開されている状態
  • M1向けHoneykrispはAppleハードウェアで初のconformant Vulkan実装であり、portability waiverなしでVulkan 1.3の全仕様を実装している
  • Honeykrispは既存のM1 Vulkan作業ではなく、NVIDIA GPU向けオープンソースNVK driverをベースとしており、M1コードを追加しNVIDIA関連部分を削除する形で始まった
  • Vulkan 1.3 conformance test suiteの最終結果はPass 686930, Fail 0と記録された
  • すべての状態を動的状態として扱い、prologとepilogをビルド・コンパイル・キャッシュするコードを追加して、full dynamic stateEXT_shader_objectの方向で実装している
  • zero-copy renderingのためにEXT_image_drm_format_modifierを実装
  • Direct3D互換性のため、DXVKとvkd3d-protonが要求するEXT_custom_border_colorをサポートし、border colour補正はshaderにコードを注入する方式でエミュレーションしている
  • custom border colourエミュレーションは「simple, correct, and slow」と明記されており、今後driver tricksで高速化する計画
  • 次の作業は、DXVKvkd3d-protonがDirect3Dレイヤー化に必要とする項目の実装で、例としてtransform feedbackが挙げられている

1件のコメント

 
GN⁺ 2024-06-06
Hacker Newsの意見
  • 本当に印象的な仕事で、共有され反復的に改善されるオープンなコンポーネントの価値がよく表れている
    Protonが移植されるまでどれくらいかかるのか気になるが、Vulkan実装が最適でもGPUアーキテクチャの違い、ARM変換のオーバーヘッド、Proton自体のコストのため、多くのゲームは性能が悪そうだと思う
    それでもSnapdragonのようなSoCがデスクトップでより一般的になれば、今後はより多くのゲームがユニファイドメモリとARMをターゲットにすると楽観している

    • Asahiでのゲーム体験がmacOSより簡単でシンプルになるなら、かなり皮肉な話になりそうだ
      この10年間AppleがVulkanを無視してきたことがどれほど大きな失敗だったかを示しているが、手遅れになるまでは絶対に認めない気がする
    • dxvkが不要なゲームのかなりの数が60FPS以上で動く。https://vt.social/@lina/112524118075585601を参照
      Alyssaは最近FEXの性能改善も進めている
  • LinuxにVulkanを追加し、Asahi LinuxでDirectXを変換するこの取り組みが、Apple SiliconにAAAゲームを呼び込みたいAppleの夢に影響するのか気になる
    AppleはAAA開発会社がゲームをMetalに移植し、iPhone、iPad、Mac、Vision Proで単一のコードベースで動くことを望んでいるはずだ
    もしかするとMacゲーマーがAAA PCタイトルを遊ぶためにAsahi Linuxをインストールするようになるかもしれない

    • Appleの夢はAAAゲームがApple Siliconに載ることではなく、Apple App Storeに載ることだ。ProtonのようなレイヤーはGPTKのように作れる
      本当に望んでいるのはSteamやEpic Games Storeではなく、App StoreにAAAゲームが入ることであり、だからGPTKは中途半端で、ライセンスもValveがSteamに直接統合できないようにしているのだと思う
    • Asahi Linuxは、ゲームのためにデュアルブートしていたMacユーザーにとって新しいBoot Campになるかもしれない
      M1でWhiskeyを使ってDiablo II Resurrectedを試したが、Windowsネイティブのゲームがあれほどそのまま動くのはかなり印象的だった。今は愚かなBlizzardランチャーのアップデートがクラッシュを起こしてゲームの起動を妨げているだけだ
      古いDX9ゲームではあるが、EverQuest IIもM1 Mac miniで1440pで非常によく動き、Asahi LinuxはGuild Warsのような古い32ビットタイトルにも役立つかもしれない
    • Appleが本当にそれを望んでいたなら、単にVulkanを実装すればよい
    • AppleはすでにGame Porting Toolkitを公開している
  • Vulkan 1.3をよく知らないが、低レベルのグラフィックスAPI作業に興味があるならぜひ見てみる価値がある。Vulkan 1.0とはまったく別次元で、状況を一変させる
    最初の障壁さえ越えれば作業は楽しく、すべての動的状態と事前レンダーパス設定の削除のおかげで、はるかに扱いやすい。20年間使ってきたOpenGLよりも簡単になり、グラフィックスプログラミングが再び楽しくなる
    最新ドライバさえあれば、およそ10年以内のGPUを持つすべてのデスクトッププラットフォームで大半の機能を使える
    残念ながら、すぐに始められるような「合理的なデフォルト」フレームワークはないが、各種言語向けの便利なヘルパーライブラリは多い

    • OpenGLは20年間少しずつ触ってきており、プロのゲームプログラマではないが余暇に3Dコンテンツを作っている
      Vulkanに移る時間がなかったが、結局は初期化と設定の壁さえ越えればよさそうだ。その後はOpenGLには戻らない気がする
      この記事が少し刺激になって、実際にやってみようという気になった
    • Vulkan 1.3を具体的に始められるチュートリアルや文書はあるだろうか? 最後に探したときは、古いやり方と新しいやり方がさまざまな組み合わせで混ざった資料ばかりだった
      OpenGLももともとそうだったので大差ないのかもしれないが、Khronosは本当にうまくやったものだという感じがする
  • ES 3.2対応のためにさっき更新したばかりなのに、もう驚かされている。自分のM1はAsahiのために作られたかのように感じる
    正直、macOSはインストール時か、誤って一度起動しただけかもしれない。こういう詳細なアップデートがあるのはうれしい
    ブラウザでゼロコピー・レンダリングをサポートしているものがあるのか、それともまだコンポジタ層が何重にも挟まっているのか気になる。WebGL2のtransform feedbackがreadbackを引き起こして塞がれていた記憶もある

    • macOSを完全に削除できるのか? これを見ると旅行用にMac miniを検討したくなる
  • 何かクラッシュしてもコンパイラバグのはずがないと思っていたが、4月16日は実際にコンパイラバグだった
    キャリアの中でそんなことを経験したことはないと自信を持って言えるが、抽象化レベルが低くなるほど珍しくなくなるのかもしれない

    • コンパイラバグのはずはなく、CPUバグのはずも絶対にない
      ただし、低レベルのカーネル開発者ならどちらも当てはまることがある
      冗談はさておき、実際にはそうでない場合のほうがずっと多いが、確かに起こりはする
    • 少なくともレジスタ割り当て器の部分は自分で書いたのではないか?
      テスト中の自作物である開発中コンパイラなら、「コンパイラバグのはずがない」という格言はあまり当てはまらない
  • シェーダーに変わった構造が入っている: if (condition) { while (true) { } }
    condition は常に偽だが、コンパイラはそれを知らない
    標準準拠のシェーダーコンパイラ作者を苦しめる毒薬のようなものはさておき、この構造の目的が何なのか気になる

  • これを VM の中で使えるのか気になる。macOS で開発していておおむね満足しているが、テスト用に VMware の Ubuntu イメージを動かしている
    3D グラフィックアプリを作っているので、VMware のパススルーがどの程度なのかよく分からない。VM で Apple Silicon GPU が仮想化されるのか、このディストリビューションを動かせばグラフィック性能がもっと良くなるのか気になる

    • ネイティブでインストールする必要がある。macOS 上の Windows/Linux/macOS VM で良い 3D 性能 を求めるなら、VMware より Parallels のほうがずっと良い
  • これが MoltenVK とどういう関係なのか説明してもらえる? ネイティブドライバなので MoltenVK は不要になるのか?

    • MoltenVK は、macOS で Vulkan アプリケーションを実行できるよう Metal ベースで作られた Vulkan 実装
      Asahi Linux は Apple M シリーズプロセッサで Linux を互換動作させることを目指した開発中のディストリビューションで、この記事は Asahi 上で GPU アクセラレーション付き Vulkan を動作させる内容だ
    • これは M1 Mac ハードウェア上の Asahi Linux で Vulkan を使う話だ。MoltenVK は macOS で Metal 上に Vulkan を提供する
    • これは macOS ではなく Linux の Vulkan に関する話だ
    • MoltenVK は Metal を Vulkan に変換する。Metal は OS X と iOS の主要グラフィックス API で、こちらは Linux 向けの ネイティブ Vulkan 実装
      記事にもそう書かれている。これは OS X 上で直接動かせるものではないので、MoltenVK の必要性がなくなるわけではない