Apple A12 / A12X での Metal Feature Set Tables 更新内容
iOS 12 や 12.1 での Metal の変更は機械学習用の Metal Performance Shaders がほとんどだが、Metal Feature Set Tables の方が更新されていたので調べてみた。
https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf
変更内容
基本的には A12 系は A11 系と変わらないが、以下の4つ機能が増えている。
- Layered rendering
- Multiple viewports
- Stencil feedback
- Stencil resolve
Layered rendering は Apple がサンプルを用意しているのでそちらを参照。
背景と空間にあるジオメトリを環境テクスチャとして作成して、中央にあるたまに適応、60fps を保ちつつリアルタイムで周囲の反射表示を行なっている。
現状、iOS では iPhone XR, XS, XS Max と3世代目の iPad Pro でしか動作しないので注意。
Multiple viewports は文字通り複数のビューポートへ描画を行う。
Stencil feedback と Stencil resolve は不明。
macOS でも今回の macOS_GPUFamily2_v1 で追加されている。
他に機能制限の変更が2つ。
「Maximum number of viewports and scissor rectangles, per vertex function」が 1 から 16 に変更され 16 個まで異なるレンダリングをビューポートが表示できると予想される。
もう1つは、A9系で追加されたジオメトリテッセレーションの係数である「Maximum tessellation factor」16 から 64 に変更されている。
OpenSubdiv によるジオメトリ形状滑らかさや Hight Map テクスチャ使用時の隆起の滑らかさが増すと思われる。
現行 OS での GPUFamily と バージョン
OS | Chip | GPUFamily / Version |
---|---|---|
iOS 12 | A7 | iOS_GPUFamily1_v5 |
iOS 12 | A8/A8X | iOS_GPUFamily2_v5 |
iOS 12 | A9/A9X/A10/A10X | iOS_GPUFamily3_v4 |
iOS 12 | A11 | iOS_GPUFamily4_v2 |
iOS 12 | A12/A12X | iOS_GPUFamily5_v1 |
tvOS 12 | A8 | tvOS_GPUFamily1_v4 |
tvOS 12 | A10X | tvOS_GPUFamily2_v2 |
macOS 10.14 | macOS_GPUFamily1_v4 | |
macOS 10.14 | macOS_GPUFamily2_v1 |
macOS で謎の GPUFamily が増えているおり、Aチップにある以下のものが使用可能となっている。
- Indirect command buffers
- MSAA depth resolve
- Stencil feedback
- Stencil resolve
まとめ
今回の A12 系 のチップで Metal の機能がほぼ macOS の機能制限と同じような状態になった。残っているのはテクスチャ等の制限での Resources の項目と一部だけになっている。
予想では Layered rendering は ARKit / SceneKit での反射や屈折のリアルさを増し、
Multiple viewports は VR のような複数のカメラでのレンダリングを想定しているように思える。
また、macOS で謎の GPUFamily が増えており、NVIDIA などの新しい Mac 向けの GPU なのか、Apple A 系のチップなのかと期待したが、どうやら今まで端末ベースで管理していたものを対応 GPU で分けるように変更したものらしい。残念。