ついに GeForce GTX400/500 (Fermi) 世代の GPU が Direct3D 12 に対応したようです。2年間待ちました。手持ちの GeForce GTX560 Ti で早速プログラムを走らせてみましたが問題なく動いています。

PC Watch: NVIDIAの最新ドライバでFermi世代のGPUがDirectX 12対応に

FeatureLevel は 11_0 なので基本的な機能は Kepler 世代と大きな違いはないようです。ただし ResourceBinding Tire が 1 なので、Shader から一度に参照できるリソースの個数に上限があります。低レベル API のメリットの一つがリソース数制限の撤廃ですが、Tier 1 の場合は D3D11 と変わらないことになります。

詳細は下記ページよりどうぞ。表に GeForce GTX 560 Ti を追加しました。

Direct3D 12 (DirectX 12) Windows 詳細

これで GeForce は Direct3D 11 世代の GPU がすべて DirectX12 対応となりました。なお Fermi は Vulkan には対応していないようです。

Direct3D 11 世代 GPU の対応 API まとめ↓ (Vulkan は Windows の場合のみ)

GPU FL Tier D3D12 Vulkan Metal GL
GeForce GTX 400/500 (Fermi) 11_0 1 Y N N 4.5
GeForce GTX 600/700 (Kepler) 11_0 2 Y Y Y 4.5
GeForce GTX 750 (Maxwell1) 11_0 2 Y Y Y 4.5
GeForce GTX 900 (Maxwell2) 12_1 2 Y Y Y 4.5
GeForce GTX 1000 (Pascal) 12_1 2 Y Y Y 4.5
RADEON HD 5000 11_0 - N N N 4.5
RADEON HD 6000 11_0 - N N N 4.5
RADEON HD 7000 (GCN 1.0) 11_1 3 Y Y Y 4.5
RADEON Rn 200/300 (GCN 1.1) 12_0 3 Y Y Y 4.5
RADEON R9 285/380 (GCN 1.2) 12_0 3 Y Y Y 4.5
RADEON RX 400/500 (GCN Polaris) 12_0 3 Y Y Y 4.5
Intel HD Graphics (Gen 7) Ivy Bridge 11_0 - N N Y 4.0
Intel HD Graphics (Gen 7.5) Haswell 11_1 1 Y N Y 4.3
Intel HD Graphics (Gen 8) Broadwell 11_1 1 Y N Y 4.4
Intel HD Graphics (Gen 9) Skylake 12_1 3 Y Y Y 4.4
・FL = Feature Level

D3D11 世代で D3D12 に対応していない GPU は Intel HD Graphics 4000 系 (Ivy Bridge) と GCN より前の RADEON になります。そもそも D3D12 や Vulkan といった低レベル API の元になっているのは GCN 向けに作られた Mantle なので、AMD の場合は仕方がないともいえます。

GPU ごとの対応 API については、下記のページも参照してください。

GPU 世代対応表

Windows の更新とともに Direct3D 12 にも修正が入っているようです。Creators Update の 1703 では ID3DDevice2 が追加されています。Version の違いをまとめてみました。

Windows Version Windows SDK D3D12Device Interface
Windows 10 1703 10.0.15063.0 ID3D12Device2
Windows 10 1607 10.0.14393.0 ID3D12Device1
Windows 10 1511 10.0.10586.0 ID3D12Device
Windows 10 1507 10.0.10240.0 ID3D12Device


関連エントリ
2015/06/29: Direct3D 12 (DirectX12) GPU と API の対応表
2015/06/26: DirectX 12 (Direct3D 12) と GPU の対応

関連ページ
Direct3D 12 (DirectX 12) Windows 詳細
GPU 世代対応表


ZenFone AR が発売されたので購入してみました。(ZS571KL-BK128S8)

Daydream (VR) と Tango (AR) の両方に対応したスマートフォンです。搭載 SoC こそ一つ前のハイエンド Snapdragon 821 ですが、RAM を 8GB も搭載しており PC と比べても遜色ありません。

↓ 付属の Cardboard、レンズ部分は磁石でくっつく

null

Google の VR である Daydream と、Google の AR である Tango は別の Platform で、それぞれ必要としているハードウエアスペックも異なっています。例えば Daydream の場合センサーの入力から描画までが低遅延でなければならず、VR レンダリングにはかなりの GPU 性能が必要です。対応デバイスのディスプレイも有機 EL が使われています。Tango の場合はそこまで描画負荷を必要としませんが、その代わり周囲を認識するための Depth Camera や Tracking Camera を搭載することになります。

ZenFone AR は 1台でこの両方のアプリケーションを走らせることができます。ただしヘッドセットである Daydream View はまだ日本で発売されていません。付属品として Cardboard がついてくるので、当分は Cardboard (VR) + Tango (AR) 両対応機として利用することになりそうです。

Google VR は 2種類あります。

GoogleVR ヘッドセット Controller API
Cardboard ダンボール製など多数 なし Android 4.4+ (API 19)/iOS
Daydream 専用 Daydream View あり Android 7.0+ (API 24)

Google VR

どちらもスマートフォンを HMD として利用します。Cardboard はより多くのデバイスで動作しますがワイヤレスのコントローラはなく、操作方法が非常に限られています。安価なものが多い反面、ハードウエアが VR 用に作られているわけでは無いので、フレームレートや遅延など端末によって性能に差が生じる可能性があります。その点 Daydream ではより高い品質を保つことができるようになります。

Tango

Tango は特殊なヘッドセットが不要なので、ZenFone AR 本体だけで気軽に試すことが可能です。周囲の形状を認識して学習するところは HoloLens に近いのですが、HMD ではないのでスマートフォンの画面をそのまま見る形になります。

Daydream/Tango 対応機種を下記ページにまとめました。

HMD VR Device spec 一覧


2017/06/18
Gear VR Controller

Gear VR 用 Controller を入手しました。スマートフォン用の VR コントローラーとしては Daydream もありますが、まだ日本では手に入れることができません。

null

モーションコントローラーにクリック可能なタッチパッドがついている点は Daydream や Apple TV と共通です。GearVR ではさらに人差し指の位置にトリガーボタンが付いています。Touch Pad も円形で上下左右を押し分けられるようです。HTC Vive Controller の Touch Pad に似ています。

TouchPad Click 方向Click Trigger
Gear VR Y Y Y Y
Daydream Y Y ? -
Apple TV (SiriRemote) Y Y - -
HTC Vive Y Y Y Y


VR 関連は下記ページも更新しています
HMD VR Device spec 一覧


Windows で懐かしいファントムダストが遊べるようになっていました。Xbox (初代) のゲームです。

03

Store: Phantom Dust

解像度が上がっていたり設定が増えていたり、様々な修正が施されているようです。

↓解像度設定

04

例えばこの辺↓も改良されています。

↓ロード中の Tips に [Enter] キー待ちが!

01

↓設定で変更可能。ロード画面のヒントを「待つ」

05

初代 Xbox 版はロード終了後に待たなかったので、Tips が表示されてもすぐに消えていました。

実は当初、開発中はステージなどの読み込みがだいぶ遅かったのです。途中でロード画面に Tips を入れようという話になりました。他の機能組み込み作業が詰まっていたので、システム最適化が後回しになっていたためです。

終盤になって時間に余裕ができてから、ようやくロード周りを高速化したのですが「読み込みが早くなったら Tips が読めないじゃないか」と何故かディレクターに怒られたのをよく覚えています。


他の CPU の結果も追加してみました。

CPU Clock Core/Thread RAM Storage 1回目 2回目
(1) Ryzen 7 1800X (Zen) 3.6GHz 8 / 16 32GB SSD 20分 19分
(2) Core i7-6700K (Skylake) 4.0GHz 4 / 8 32GB SSD 27分 26分
(3) Core i7-4790K (Haswell) 4.0GHz 4 / 8 16GB HDD 39分 32分
(4) A10-7870K (Steamroller) 3.9GHz 4 / 4 16GB SSD 74分 82分
(5) Core i5-3210M (IvyBridge) 2.5GHz 2 / 4 16GB SSD 86分 85分
(6) Athlon 5350 (Jaguar) 2.0GHz 4 / 4 16GB HDD 204分 168分
(7) Celeron N3150 (Airmont) 1.6GHz 4 / 4 16GB HDD 236分 184分

すべて Windows 10 x64。GitHub 版 UE4 4.15.2 のビルド時間の比較です。Development Editor 指定で Unity Build が有効な状態です。二回とも Clean 後に Build しています。2回目はある程度キャッシュに乗った状態を想定しています。1回目、2回目とも数値が小さい方が高速です。

HDD では 1回目と 2回目の差が大きく開いており、(7) では 52分もの差があります。SSD は 1回目と 2回目の差がほぼありません。初回から RAM 上にキャッシュされた状態とほぼ同等のパフォーマンスが出ていることになります。


関連エントリ
AMD CPU Ryzen とコンパイル時間の比較



| 次のページ(日付が古い方向)>>