この記事は、インテル® デベロッパー・ゾーンに公開されている「Direct3D* 12 – Console API Efficiency & Performance on PCs – Part9」(https://software.intel.com/en-us/articles/console-api-efficiency-performance-on-pcs) の日本語参考訳です。
D3D 12 は、小さな粒度の PSO により CPU を効率良く利用することを可能にします。それぞれの個別の状態を設定および取得する代わりに、開発者はハードウェアのミスマッチによるオーバーヘッドを軽減または排除し、単一のポイントに置き換えられます。ドライバーが API コマンドを受け取り GPU コードに変換する間に、アプリケーションは必要な PSO を設定します。リソースの結合による新しいモデルは、一度だけ必要な制御スローロジックによる制約を排除します。
D3d12 のヒープ、テーブル、およびバンドルは、CPU の効率とスケーラビリティーの両方に貢献します。明示的なバインドポイントは、アプリケーションやゲームで管理されるメモリー・オブジェクトでは利用されなくなっています。頻繁に使用されるコマンドは記録され、バンドルを介して複数回または複数フレームを再生できます。コマンドリストとコマンドキューは、複数の CPU スレッド間で並列コマンドリストを作成することを可能にします。今では、ほとんど (すべてではありません) のワークは、第 4 世代と第 5 世代インテル® Core™ プロセッサーの可能性と能力を引き出すため、CPU のすべてのスレッド間で分割されます。
DirectX* 12 は、PC ゲーム・テクノロジーを飛躍させます。ゲーム開発者は、軽量な API と少ない階層のドライバーにより、ハードウェアを操作できます。これは、効率とパフォーマンスを向上させます。コラボレーションを通して、D3D 開発チームは、開発者がグラフィックスとパフォーマンスを一致させビジョンに近いゲームを作り出すことを可能にする、新しい API とドライバーモデルを作成しました。
参考資料と関連リンク
- Direct3D* 12 API プレビュー (英語)
- Microsoft* DirectX* ブログ (http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx)
- インテル® Core™ M プロセッサー (英語)
- 第 4 世代インテル® Core™ プロセッサー (英語)
- インテル® Atom™ プロセッサー (http://www.intel.com/content/www/us/en/processors/atom/atom-processor.html)
- インテル® プロセッサー・グラフィックス向けの開発者ドキュメント
インテルの関連ブログ
企業ブランドのアイデンティティー: http://intelbrandcenter.tagworldwide.com/frames.cfm (英語)
インテルの製品名: http://www.intel.com/products/processor_number/ (英語)
著者紹介
Michael Coppock は、1994 年からインテル社で PC ゲームのパフォーマンスとグラフィックスに取り組んでいます。彼は、ゲーム企業がインテルの CPU と GPU を最大限に活用するのを支援しています。ハードウェアとソフトウェアの両方に注目し、486DX オーバードライブ・プロセッサーを始めとする多くのインテル製品に取り組んできました。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。