ピクセルシェーダによって行われたピクセル単位の陰影処理の結果を実際にピクセルデータとしてビデオメモリに書き出すタスクを担当するのが「レンダーバックエンド」(Render Back-End)だ。NVIDIAでは「ROPユニット」(Rednering Output Pipeline)という名称が付けられているが、機能や役割に大きな違いはない。

レンダーバックエンド(Render Back-End)

Radeon HD 2900シリーズではこのレンダーバックエンドは4ブロックあり、HD 2600シリーズとHD 2400シリーズでは1ブロックへと減らされている。Radeon HD 2900シリーズのレンダーバックエンド4ブロックは、後述する「リングバス・メモリインタフェース」(Ring Bus Memory Interface)の4基のリングストップの存在と関係が深い。

レンダーバックエンドは1ブロックあたり、2×2の4ピクセル(テクセル)の出力が可能な設計となっている。Radeon HD 2900シリーズでは1クロックあたり4ピクセル×4ブロック=16ピクセルの同時出力が可能となるため、従来のレンダーバックエンド換算方式では16基となっている。同様に1ブロックしかないHD 2600/HD 2400シリーズでは4ピクセル×1ブロック=4ピクセルということになり、レンダーバックエンドは4基しかないことになる。

深度値(Z値)テスト、ステンシルテストのみであれば出力が倍になるのは先代と同じ。つまりHD 2900シリーズであれば1クロックあたりZ&ステンシルの出力はMSAA(Multi-Sample Anti-Aliasing)処理有り無しにかかわらず32ピクセル、HD 2600/HD 2400シリーズでは8ピクセルということになる。

レンダーバックエンドの機能自体にはDirectX 10/SM4.0の仕様を満たすような順当な仕様拡張が行われている。

同時に複数のバッファに対して出力するマルチレンダーターゲット(MRT:Multi Rebder Target)は、DirectX 9/SM3.0仕様の4枚からMSAA処理付きで8枚へと増加された。バッファのブレンディングもDirectX 9/SM3.0仕様の64ビット浮動小数点バッファ(FP16-64ビットバッファ)はもちろん、128ビット浮動小数点バッファ(FP32-128ビットバッファ)にまで対応している。

この他、レンダーバックエンド関連で大きな機能改善が施されているのは、「レンダー・トゥ・テクスチャ」(RTT:Render To Texture)の高効率実行支援機能だ。

例えば、湖の水面に空や岸の木々の背景が映り込んでいるシーンを考える。そうした映り込み情景の環境マップ(テクスチャ)に、あらかじめアーティストが描いたものを使用するのではなく、実際にリアルタイムにそのシーンの背景をテクスチャにレンダリングして用いることがある。RTTとは、このように、そのシーンをレンダリングする際に用いるテクスチャ素材自体をリアルタイムにレンダリングするテクニックのことだ。空に鳥が飛んでいればその鳥もちゃんと水面に映り込むような動的なテクスチャ表現が行えることがRTTのウリとなる。

このRTTで問題となるのは、RTTによって生成されたテクスチャが利用可能になるタイミングだ。

映り込み環境マップをRTT生成しているスレッドと、水面の映り込みをレンダリングするスレッドがオーバーラップして走っている場合、普通に考えればRTTが終わって環境マップができあがらなければ水面の映り込みをレンダリングできない。当然だ。

しかし、Radeon HD 2000シリーズでは、テクスチャユニットとレンダーバックエンドが連携し、たとえRTTが進行中であっても、参照されているRTT対象テクスチャの参照先については処理を終えている場合は、そのテクスチャ参照を許可してしまうのだという。

これにより、RTTが絡んだ同期取りが低減し、トータルのパフォーマンス向上が望めるというわけだ。

これは直接的なRTTパフォーマンス向上だけでなく、AMDのマルチGPUソリューションである「CrossFire」のパフォーマンスアップにも期待できるとしている。

マルチGPUソリューションにおいて最大パフォーマンスが得られるとされるAFR(Alternative Frame Rendering)メソッドでは、このRTTのコヒーレンシー問題が障害となっていた。

AFRとはGPU1がフレーム1をレンダリングしている間にGPU2が次のフレーム2をレンダリングするというものだ。例えばGPU1のフレーム1でRTT素材を生成し、このRTT素材をGPU2のレンダリングするフレーム2で使用する場合、GPU1のRTTの完了を待ってから、RTT素材をGPU2に転送して持ってこなければならなかった。Radeon HD 2000シリーズではRTT使用の見切り発車が可能となっているので、RTTの完成を待たずにRTT素材の完成部分をどんどん持って来ることができる。つまりRTTにまつわる同期レイテンシを減らせることができるので、マルチGPUソリューションのパフォーマンスも向上するという寸法なのだ(実際の3Dゲームエンジンではこのコヒーレンシー問題が起こらないようにRTTを活用する工夫が浸透し始めている)。

RTT効率向上でさらなるCrossFireパフォーマンスの向上が期待できるRadeon HD 2000シリーズ