Metal、GPU関連で最近印象に残ったスライドを2つ紹介します。
1. Metal と Vulkan を用いた水彩画レンダリング技法の紹介
2. GPU最適化入門
1. Metal と Vulkan を用いた水彩画レンダリング技法の紹介
・OpenGL ESでは、シェーダーの字句解析、構文解析、最適化、命令コードの生成の全てはドライバがランタイム上で実行している
・Metal、Vulkanなどがある低レベルAPIは、コンシューマ機では一般的であった
・Tile Based Rendering: レンダリング時は可能な限りシステムメモリへのアクセスを避ける。高速なOn-Chip上のメモリに置かれたタイルバッファへの読み書きを行う。
・Metal、VulkanはこのTBRアーキテクチャに最適化されている
・Metal、Vulka世代では、明示的にValidation Layerを有効にすることで、API呼び出しのエラーチェックを実施する。
2. GPU最適化入門
・GPUを知る上で欠かせない3つの特徴は、1. レンダリング理論、2. 長いパイプライン処理、3. 並列性
・GPUは、レンダリング方程式[1986 Kajiya]を概念的に近似して実装している
・GPUの最適化は、GPUパイプラインを円滑に流すことに集約できる
・GPUはパイプラインが長いため、どこかが詰まると、すべてが滞留してしまう