【レポート】

CEDEC2005 - Xbox 360ハードウェアの詳細が明らかに

6 Xbox 360サウンド機能の詳細 & eDRAM容量は10MBで足りるのか

    西川善司  [2005/09/09]

    Xbox 360のサウンド機能の詳細

    Xbox 360のサウンド機能についてはこれまでナゾが多かったのだが、今回のセッションでだいぶクリアになった。

    サウンド素材はWindows環境下のサウンドフォーマットである「WMAPro」に若干のゲーム向け独自仕様変更を施した「XMA」オーディオフォーマットを標準とし、サウスブリッジ内にこのXMAを256声同時にデコードすることができるXMAデコーダが実装される。XMA自体の圧縮レートは可変であるが、1/8圧縮レートで十分実用な音質であると説明された。

    そして、デコード後の音声の処理は全てPX CPUコア2で行われるという。具体的にいうと、上層のマルチチャンネルのミキシング処理、立体音響処理、そして下層のDolby Pro Logic IIあるいはDolby Digital 5.1のエンコード処理までをコア2で賄うのだ。256音声の同時ミキシング、立体音響処理、DolbyDigital5.1CH処理の全てを行ったとして、コア2のCPU負荷率は25%だとのこと。

    ついにCPUだけでサウンド処理をする時代がゲーム機にもやってきた

    Xbox 360のグラフィックサブシステムに死角はないのか

    Xbox 360のグラフィックサブシステムの特徴にeDRAMの仕組みがあるわけだが、この10MBという容量はどうなのだろうか。

    仮に1280×720ドット解像度で64ビット(FP16×RGBA)のHDRレンダリングを行おうとするだけで約7MBが必要になり、この他、ZバッファやMRTを活用しようとすると10MBをすぐ超えてしまう。これではeDRAMの仕組みがうまく機能できないのではないか。

    この質問を投げたところ、以下のような返答を得られた。

    こうした状況に対応するために、Xbox 360には「Predicated Tiling」とよばれるハードウェア支援のある分割レンダリングメソッドがライブラリの形で提供されるというのだ。

    結論から簡単に言うと、Predicated Tilingとはレンダリングを複数パスに分割して行うメソッドだ。

    eDRAMの容量が不足してしまうようなレンダリングケースでは、例えばフレームの左半分と右半分を分けてレンダリングするという。

    順を追って説明しよう。まず、初めに描画コマンドを実行する際、画面の左半分の描画用のみを実行しeDRAMにレンダリングし、この内容を共有メインメモリ側へ書き戻す処理を行う。続いて同じ描画コマンドのうち、画面の右半分の描画用のみをレンダリングする。

    この仕組みを利用した場合、描画コマンド処理の重複参照や画面左右両方に絡むジオメトリの処理などもあるため、頂点処理系で約1.2~1.3倍の負荷になるという。一方、ピクセルの描画数は重複がないため、ピクセル処理系の負荷はこの仕組みを利用してもしなくても変わらない。もともと頂点処理系の負荷はピクセル処理系の負荷と比べれば低いので、トータルパフォーマンスとしてはそれほどインパクトはないという説明であった。

    1つ前のWindows GameとXbox系ゲームの統合開発フレームワーク「XNA」に関連したセッションではXbox 360向けに開発中の「Project Gotham Racing3」のデモムービーが公開された。

    (トライゼット西川善司)

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン