Universal Windows AppsとDirectX 12から見るWindows 10 - 阿久津良和のWindows Weekly Report
○すべでのデバイスで動作する「Universal Windows Apps」
Build 2015のセッションを俯瞰すると、Microsoft Azureなどエンタープライズ製品を除けば、Universal Windows Apps(UWA)をテーマにした講演が多いことに気付く。UWAの概念自体は目新しいものではなく、2010年9月にリリースしたWindows Phone 8.1までさかのぼる。MicrosoftはWindowsストアアプリとWindows Phoneストアアプリのコードを共有することで、開発コストの軽減やプラットフォームの一元化を目指していた。
そして「One Windows」という旗の下、PCやモバイルデバイスだけでなく、Xbox OneやIoTデバイスなどまで展開するのが現在のUWAだ。
Build 2015のセッションではUWAの開発について、アプリケーションの基本設計やガイドライン、具体的なコードの記述方法などを説明した。ここ最近、Microsoftは自社プラットフォームにこだわらない姿勢や活動を見せているが、それと並行して、Windowsを核においた従来のビジネスモデルも推進していることがわかるだろう。
いずれにせよ2015年夏に登場するWindows 10によって、UWAのセカンドステージが始まる。ただし、すべてのアプリケーションを即時UWA化するのは難しい。そのため、3月にGDC 2015関する記事でも述べたように、Microsoftはここ数年をWin32アプリケーションからWinRTアプリケーションへの移行期と見なしている。
○複数GPUの利用など期待大の「DirectX 12」
DirectX 12(DX12)に関するセッションも興味深いものだった。資料に目を通すとBuild 2015の時点でDX12はAPIレベルの開発を完了。Steamの調査結果によると、2015年中に50%以上のPCゲーマー、67%の一般ユーザーがDX12対応デバイスに移行するという。Direct3D Development LeadのMax McMullen氏は、中国Snail Gamesの「King of Wushu」を使ったデモンストレーションで、DX11とDX12のパフォーマンスを比較した。レンダリングスピードとキャラクター増加時のフレームレートに差はないが、fps値の最低値と最高値に大きな違いが生じていることが見て取れる。
これはDX12で実現するコマンドリスト構築とCPUの並列処理や、複数GPUエンジンのワークロード調整など、パフォーマンスに関する最適化が効を奏しているのだろう。
スクウェア・エニックス「WITCH CHAPTER 0 cry]」のデモは[こちらの記事で述べたとおりだが、1シーンあたり6,300万のポリゴンと8K×8Kのテクスチャによって実現した映像だ。これらの数値はDX11に比べ6~12倍に及ぶという。
さらにUnreal Engine 4(UE4)のデモでは、DX12からサポートするMultiadapter(マルチアダプター)をアピール。こちらは異なるベンダーのGPUを組み合わせることを可能にする技術だ。すでにNVIDIA SLIやAMD CrossFireXといった技術は存在するものの、これらは同一ベンダーのGPUに限られる。その点Multiadapterに制限はない。
上図のデモはIntel製GPUとNVIDIA製GPUを組み合わせたものだが、Intel製GPUが低スペックなのか、わずかながらもfpsの差として結果が現れている。
DirectX Developer Blogの記事によれば、NVIDIA製GPUが担う一部の処理をIntel製GPUに渡すことで、数ミリ秒の差が生じる結果になったという。
阿久津良和(Cactus)