MSAA
一致する 2×、4×、8× のカラーと深度のサンプル数は、後のリゾルブまでホストのイメージに留まります。アステリックスは MSAA の深度とステンシルでこの経路を使っており、大きな意図しないリードバックがなくなりました。
2026年10月10日 までのリポジトリノート
ホストのイメージでのサンプル数
PlayStation 5 のレンダーターゲットは 2、4、8 サンプルで格納できます。PS5PCEM は、サンプル数が一致する場合、カラーターゲットと深度ターゲットを Vulkan のイメージに留め、後でリゾルブします。ゲストのサンプル数は、スウィズルのモードとメタデータのポインターと並んで、リソースのスナップショットの一部です。
Oberon の 16 パイプ、8 パッカーの RB+ のアドレス式は、カラーと深度の両方について配列スライスと 2×、4×、8× のサンプルビットを含みます。GPU のコンピュートによるデタイルはまだこの式を使いません。RB+ と MSAA のサーフェスは CPU のデタイルにフォールバックします。サンプルはそれでも正しく、フォールバックはコストであり、MSAA を完全に GPU 常駐とは書かない理由です。
アステリックスの深度とステンシル
Asterix & Obelix: Slap Them All! は、冒頭の森を MSAA の深度とステンシルで描画します。サンプル数を無視した深度のみのパスが、診断としてアタッチメントを読み戻していました。一致する MSAA の深度とステンシルのアタッチメントは永続的な深度の経路に留まり、ゲストが要求したステンシルの比較と更新が適用されます。
このバックエンドでは、MSAA のカラーアタッチメントがストレージイメージの用途を要求しなくなりました。RTX 3070 Ti、1080p 出力で、冒頭の森の静止した 30 秒の UI カウンターの計測は、中央値 46.45 FPS から 162.20 FPS に上がりました。この数値はその景色のものです。後のステージでの最低値ではありません。移動、ジャンプ、最初のローマ兵との遭遇は開発ビルドで再確認しています。
リゾルブに含まれないもの
一致するサンプル数の後のリゾルブは実装済みです。CMASK と結びついた圧縮 FMASK のサーフェスは別の仕組みで、この経路の外にあります。未対応の MSAA のインポートは、初期化されていない圧縮データをサンプルするのではなく、安全な初回のクリアを保ちます。
アステリックスの修正で、Vulkan のテスト 233 件すべてと、ネイティブの 2× と 4× の深度とステンシルのプローブに合格しました。署名済みのランナーに含まれています。この変更は 0.3.4 のリリースノートより新しいものです。
実装済みのこと
- 一致する 2×、4×、8× のカラーと深度のサンプル数のためのホストのイメージと、後のリゾルブ。
- ステンシルの比較と更新を含む、MSAA の深度とステンシルのアタッチメント。
- Oberon のサンプルビットの式を使う、MSAA と RB+ のアドレッシングの CPU デタイル。
- その静止した景色で中央値 162.20 FPS と計測された、アステリックスの冒頭の森の修正。
まだ足りないこと
- GPU のコンピュートによるデタイルは MSAA や RB+ をカバーしません。それらのアップロードは CPU を使います。
- CMASK と結びついた FMASK は、圧縮メタデータとしてはリゾルブしません。
- アステリックスの数値はひとつの GPU でのひとつの景色で、ゲームのフレームレートの約束ではありません。
関連するしくみ
これらのページについて