スポンサーサイト

  • 2017.03.28 Tuesday

一定期間更新がないため広告を表示しています

  • 0
    • -
    • -
    • -

    DirectX 12,ついに発表。あの西川善司氏がその特徴に迫る!!

    • 2014.03.24 Monday
    • 13:33
    DirectX
     北米時間2014年3月20日,予告されていたとおりではあるが,Microsoftは,Game Developers Conference(以下,GDC)2014で「DirectX 12」を正式に発表した。
     DirectX 11が発表されたのは2009年。Windows 7とほぼ同時期にリリースされたことを憶えている人もいることだろう。2012年にWindows 8とDirectX 11.1が,2013年にはWindows 8.1とDirectX 11.2がリリースされているが,メジャーバージョンアップとしては本当に久しぶりということになる。

    現地時間20日,朝一発めのセッションであるにもかかわらず,会場はオープン前から長蛇の列ができた。当然,会場は超満員状態に
    DirectX
    DirectXの歴史
    DirectX


    DirectX 12登場の背景


     「GPUの性能はどんどん向上している。CPUは,1コアあたりの性能向上率はそれほどでもなくなっている一方,CPUのコア数自体は増加傾向にある。では,そんな状況にあって,ゲーム開発者は一体何を欲しているのか」。DirectX 12の開発は,この問いかけが起点になっているという。

    今日(こんにち)のプロセッサ技術トレンドは,「コア数増大」方向に舵を切っている。このアーキテクチャを効率よく扱えないプラットフォームは存在価値が低いと言わざるを得ないが,DirectXは大丈夫なの?
    DirectX

    Anuj Gosalia氏
     セッションで登壇したMicrosoftのAnuj Gosalia氏によれば,ゲーム開発者が強く求めているものの1つに,ゲーム機ライクな「GPUを直接ドライブ(≒駆動)できるようなAPI」があったとされる。そして切望されるもう1つの要素が,「ゲームアプリケーションとGPUの間のオーバーヘッドを極力なくすこと」だったそうだ。

     氏は,そうした要望に応える形で提供されることとなるのがDirectX 12であると位置づけていた。

    ゲーム開発者は何を求めているのか?
    DirectX

     なお,DirectXとは,Microsoftが自社プラットフォームに提供するマルチメディアプログラミングAPIのことで,本来はサウンドやネットワーク,入力インタフェース関連などまでを網羅したものとなるが,今回発表されたのは「DirectX 12」の3DグラフィックスAPI部分「Direct3D 12」になる。
     ただ,慣例的に「DirectX≒Direct3D」とされる傾向が強く,本セッションでもそのように扱われていたため,本稿もそれに倣い,Direct3D 12とDirectX 12を基本的に区別しない。この点はご了承のほどを。

    DirectX
     さて,今回発表されたDirectX 12だが,結論からいうと,実効パフォーマンスを改善する目的のアーキテクチャ改変がアップデートの中心となっている。「Direct」(ダイレクト)と言いながら,あまりダイレクト感がなくなってきたDirectXに,近代流のダイレクト感を持ち込もうとする方向の改変なのだ。

     DirectXが誕生した1990年代中期は,さまざまなメーカーがそれぞれ独特なアーキテクチャに基づくGPUを用意しており,そして,そこには機能差もあったことから,“違い”を吸収するための抽象化レイヤーを分厚くする必要があった。当時のGPUは,データやパラメータを与えて「GPUの機能を呼び出す」というプログラミングモデルだったこともあり,ゲームアプリケーションとGPUまでの“距離感”が相当に大きかった,という表現も可能だろう。

     しかし現在,PC向けGPUのメジャープレイヤーはIntelとNVIDIA,AMDの3社のみであり,モバイルデバイスや組み込み機器向けGPUですらも,3社いずれかのアーキテクチャに似た構造となった。かつてのような分厚い抽象化レイヤーはもはや必要なくなってきている。
     そこでMicrosoftは,1990年代に構築された古い土台をすべて取り去って,すっきりした透明性の高いアーキテクチャへと,DirectXを改変することにしたのである。

    DirectX 12の進化ポイント
    DirectX

     またMicrosoftは,WindowsベースのPCだけでなく,Windows PhoneとXbox OneにもDirectX 12を提供する計画があると今回明らかにしており,グラフィックスAPIを一気に刷新する心づもりでいる。一時期は「DirectXはもう終わり」とまことしやかに囁かれるほどだったが,ここで心機一転の再スタートを図ろうということなのだ。

    DirectX 12はすべてのMicrosoftプラットフォームに提供される
    DirectX


    DirectX 12は何がどうすごいのか


     現状のDirectXは,「DirectX APIを通じてパラメータをドライバに受け渡し,ドライバ側がGPUに向けて(描画)コマンドとパラメータ列を形成して発行する」構造になっているが,ここに問題が2つある。

     1つは,DirectXが提供している「APIを利用してDirectX側が作り出すコマンドとパラメータのペア」が,GPU内部のハードウェアを直接ドライブするようにはなっていない点だ。これは,「DirectXのアーキテクチャが古すぎて,実在する最新世代のGPUアーキテクチャとかけ離れすぎてしまった」と考えれば分かりやすいだろうか。

    DirectX 7〜8時代,DirectX APIとGPUアーキテクチャは1対1にかなり近い構造だったのだが(左),DirectX 9以降で,ここに開きが生じ始めた(右)
    DirectXDirectX

    上のスライドで言う「開いたところ」を埋める存在がDirectX 12だ。実のところ,AMDのMantleもまさにこの立ち位置にいる
    DirectX
     この問題を解決するために導入されるのが「Pipeline State Object」(以下,PSO)という概念だ。
     詳細は後日あらためてお伝えしたいと思うが,誤解を恐れずに簡略化して言うと,PSOというのは,グラフィックスパイプラインとGPU内部ハードウェアとの対応を一意的に定義づけて利用する仕組みのこと。PSOを定義づけておけば,それ以降はGPUに対し「これからお願いする描画は,PSOで定義した工程表(パイプライン)ベースでお願いします」と発注できる。
     従来のDirectXでは「頂点シェーダでこの処理を行う」「ピクセルシェーダでこの処理を行う」といった感じの,細切れな指示になっていたため,処理のストール(stall,停止)が生じやすかった。その点PSOなら,GPUはあらかじめ定義された工程表に基づいて,すぐに処理に取りかかれるのである。

     もう1つは,コマンドを伝送する仕組みそのものの問題だ。
     従来のDirectXでは,APIを通して,「描画の件なんですがね」「第一パラメータは●●です」「第二パラメータは××です」といった感じに,コマンドを逐次的に発行していた。砂時計にたとえるなら,上がCPU,下がGPUで,上下は大きく開いているのに,中央部がぎゅっとすぼまったイメージ。砂粒(≒仕事)は1本の線状でしか,GPUのほうに落ちていかないのである。

     その点,DirectX 12では,あらかじめ確保しておいたメモリバッファ上で描画コマンドやパラメータを形成しておき,これをドライバへ一気に渡せるようになった。当然,メモリバッファ上に描画コマンドやパラメータを形成する処理は複数のCPUスレッドで並列に実行できる。つまり,マルチスレッドを効果的に利用できるということだ。砂時計でいえば,中央のすぼまった部分が押し広げられたようなイメージだろうか。

    DirectX 12における根幹的な進化ポイント。主にオーバーヘッドを減らし,大量に仕事を発注できる仕組みを実装したという感じ
    DirectX

     「ドライバを通じてGPU側に伝送される前の描画コマンド」はドライバ側でGPUのネイティブ命令に変換されるので,ここにまだ抽象化レイヤーは存在することになるが,まとまった量の描画コマンド列を一気に発行できる以上,効率は従来比で格段に改善する。
     さらにDirectX 12では,この「GPU側で直接実行できるように変換されたネイティブコマンド列」を保存しておける仕組みも導入された。これは「Bundles」(バンドル)と呼ばれ,そのままBundlesを再発行してGPUを駆動することもできる。うまく活用すれば,抽象化レイヤーを超えた先で,超高効率でGPUをドライブすることも可能なのだ。

    DirectX 12では抽象化部分はものすごく薄く設計されている。もちろん,すべてのメーカーのGPUに対応する必要があるため,最低限の抽象化部分は残っているが,その抽象化を超えた先でのGPUドライブの仕組みも提供される。ここはDirectX 12の大きな進化ポイントといえるだろう。Mantle的とも言えるが
    DirectX

     また,テクスチャや各種データテーブルなどといった,レンダリングに必要な素材を,アプリケーション側が任意のスタイルでその素性を定義しつつグラフィックスメモリ上に置き,実際のレンダリング時には各種シェーダから自由にアクセスする仕組みも新設されている。DirectXのAPIを介して「これはテクスチャです」としていちいち宣言したり定義したりすることなく,かなりのダイレクト感をもって,グラフィックスメモリ上にデータや素材を自在に置けるようになったのである。

     CPUのプログラムにおいて,当該プログラムの開発者は,プログラム実行の各局面に応じて,確保したメモリ空間を好きに使っていた。そういった自由なメモリの使い方がGPUでもできるようになったことになる。
     もっともこれは,家庭用ゲーム機のGPUプログラミングでは結構前からそうだったので,概念的に新しいものではない。DirectX 12が,家庭用ゲーム機的なGPUプログラミング哲学を取り入れたという認識のほうが正しいので,この点は押さえておく必要があろう。

    素材やリソース周りの取り扱いの改善ポイント。CPUプログラム的な自由な取り扱いが可能になった
    DirectX


    DirectX 12のβ版は2014年後半リリース。正式リリースは2015年か


     DirectX 12にはどの程度の性能を期待できるのか。
     セッションでは,「3DMark 11」の「High Temple」を,従来どおりのDirectX 11で動作させたものと,DirectX 12に対応させて動作させたものとで,CPU負荷に違いが出るかどうかが披露された。

     その結果が下のスライドだが,DirectX 11では,4つあるCPUスレッドのうち1つで極端に負荷が高くなっている。それに対し,Bundlesを活用しているDirectX 12では,CPU負荷が極端に低い。

    DirectX
    DirectX 11での実行結果。テキストで表示された「O+」のバーが長いほど当該スレッドのCPU負荷が高いことを示すが,ここでは「Thread 0」の負荷が高い
    DirectX
    DirectX 12での実行結果。「Thread 0」のCPU負荷は極端に下がっている

     処理の内訳も下のとおり示された。下の図は,上の「Thread 0」〜「Thread 3」がDirectX 11,下の「Thread 0」〜「Thread 3」がDirectX 12のそれぞれ内訳だ。「App Logic」はアプリケーション実行負荷。「Direct3D」はDirect3DのAPIオーバーヘッド,「UM Driver」はユーザーモードドライバ負荷,「Kernel」はOSカーネル負荷,「KM Driver」はカーネルモードドライバ負荷,「Present」は描画表示負荷を示しているが,違いは一目瞭然といえる。

    DirectX 11(上)とDirectX 12(下)のそれぞれにおける処理の内訳
    DirectX

     セッションでは,NVIDIAによる評価版のDirectX 12ドライバ上で動作する「Forza Motorsport 5」の技術デモが公開された。こちらは性能を示すものではなく,「実際にゲームが動いている」ことを示すための目的で公開されたようだ。「PC版のForza Motorsport 5がDirectX 12ベースで開発されている」ことを示すものではないので,その点は注意してほしい。

    「Forza Motorsport 5」ベースのDirectX 12技術デモ

    Clik to Play
    Clik to Play

     気になるDirectX 12の提供時期だが,2014年後半にプレビュー版(β版)がリリースされる予定となっている。正式版は「2015年のクリスマス商戦に臨むPCゲームのリリースに間に合うような形で提供したい」という形で予告されたので,常識的に考えれば,正式リリースは2015年ということになるだろう。

    DirectX 12のプレビューは2014年後半に登場。ゲーム開発者に向けては早期アクセスが提供されるという
    DirectX


    DirectX 12にまつわる疑問に答えてみる


     最後に,セッション後の質疑応答や,セッション後に筆者が関係者に取材した情報を基に,想定される質問と回答を用意してみた。こちらも合わせて参考にしてもらえればと思う。


    Q:DirectX 12はどのOSに提供されるのか

    A:
     Windows 7とWindows 8.x(もしくはその後継OS)と見られる。間もなくサポートが終了するので当たり前といえばそれまでだが,Windows XPへの提供は「ない」と公式に否定されている。


    Q:DirectX 12はWindows以外にも提供されるのか

    A:
     セッションのレポートでも触れたとおり,Windows PhoneとXbox Oneには提供される見込み。Xbox One向けのゲームタイトルのPC向け移植やWindows Phoneへの移植が容易になるはずだ。

    Windows 7&8以降のPCだけでなく,Windows PhoneやXbox OneにもDirectX 12は提供される
    DirectX


    Q:DirectX 12の対応GPUは?

    A:
     当面はDirectX 11世代のGPUが対応製品となる見込み。NVIDIAならFermi世代,AMDならGraphics Core Next世代ということになる。


    Q:DirectX 12向けに開発されたゲームはDirectX 11環境で動作するのか。逆に,DirectX 11向けのタイトルはDirectX 12で動作する?

    A:
     DirectX 11とDirectX 12は,名前こそ「DirectX」ながら,基本アーキテクチャが異なるため,相互に互換性はない。
     実のところ,この仕切り直しは,DirectX 10の時も起こった。DirectX 10では基本アーキテクチャがDirectX 9から一新されたため,過渡期のPCゲームでは,タイトルによって,DirectX 9バイナリとDirectX 10バイナリの2つが提供されたりしていたが,DirectX 12の登場直後は同じようなことが起こるだろう。


    Q:DirectX 12で実現されているのは性能向上のためのアーキテクチャ改変“だけ”で,新しいシェーダステージの追加や,新機能の搭載はない?

    A:
     Microsoftの公式回答は「現時点では未定」。ただし,現段階でも「プログラマブルブレンド」(Programmable Blend)パイプラインと,順不同半透明描画(Order Independent Transparency),コンサバティブ・ラスタライゼーション(Conservative Rasterization)などの搭載は決定している。

    コンサバティブ・ラスタライゼーションは,ポリゴンモデルのボクセル分解化処理などに有効とされる。「Unreal Engine 4」の発表時にデモがあった「SVO-GI」では,この処理を自前のシェーダで実装していた
    DirectX


    Q:聞けば聞くほど,DirectX 12のコンセプトはMantleのそれと非常によく似ている。PSOやコマンドバッファの概念,素材の取り扱い概念はMantleと同じではないのか

    DirectX 12発表を喜ぶ関係者達。左から順にTurn 10 StudiosのChris Tector氏,MicrosoftのAnuj Gosalia氏,IntelのEric Mentzer氏,AMDのRaja Koduri氏,NVIDIAのTony Tamasi氏,QualcommのEric Demers氏
    DirectX
    A:
     そのとおり。経緯は不明ながら,仕様にはよく似ている部分が

    スポンサーサイト

    • 2017.03.28 Tuesday
    • 13:33
    • 0
      • -
      • -
      • -
      コメント
      Good blog post. I definitely appreciate this website. Continue the good work!
      • Kory
      • 2014/07/07 7:39 AM
      http://www.ferragamoshoess.us.com/ ferragamo shoes men
      http://www.ed-hardys.us.com/ ed hardy shirt
      http://www.valentino--shoes.us.com/ valentino
      http://www.fitflop--sandals.us.com/ fitflops uk
      http://www.supremeshirt.us.com/ supreme jacket
      http://www.fitflopsshoes.us.com/ fitflop sandals
      http://www.nike-airmax-2018.us.com/ air max 90
      http://www.nike-airmax270.us.com/ air max
      http://www.moncler--jacket.us.com/ moncler jacket mens
      http://www.hermesbirkin-handbags.us.com/ Hermes Handbags
      http://www.air-max-95.us.com/ air max 95 mens
      http://www.longchampbackpack.us.com/ longchamp backpack
      http://www.nike--vapormax.us.com/ nike air vapormax
      http://www.pandorajewelryrings.us.com/ pandora necklace
      http://www.adidasoriginalsnmd.us.com/ nmd
      http://www.kevin-durant-shoes.us.com/ kd 11
      http://www.montblancs.us.com/ mont blanc pens
      http://www.nikeair-max90.co.uk/ air max 90
      http://www.northfacejacketoutlets.us.com/ womens north face jacket
      http://www.salomon-boots.us.com/ salomon boots
      http://www.pumarihannafenty.us.com/ puma shoes
      http://www.lacosteshirts.us.com/ lacoste
      http://www.moncler-coat.us.com/ moncler jacket
      http://www.nikeairmax270.org.uk/ air max 270
      http://www.fitflop--shoes.us.com/ fitflops clearance
      http://www.asicss.us.com/ asics running shoes
      http://www.polo-ralphlauren-outlet.us.com/ ralph lauren polo shirts
      http://www.airmax90shoes.us.com/ nike vapormax
      http://www.yeezyboost350--v2.us.com/ adidas yeezy
      http://www.jordan--11.us.com/ jordan
      http://www.pandora-jewelrybracelet.us.com/ pandora jewelry
      http://www.nikeairmax-95.us.com/ air max 95
      http://www.nikekdshoes.us.com/ kd 10
      http://www.salvatore-ferragamo.us.com/ salvatore ferragamo shoes
      http://www.mbts.us.com/ mbt womens shoes
      http://www.truereligion--jeans.us.com/ true religion jeans men
      http://www.mcm--bags.us.com/ mcm
      http://www.skechers--shoes.us.com/ skechers shoes
      http://www.burberry--scarf.us.com/ burberry shirt
      http://www.ralphlaurenspoloshirts.us.com/ ralph l
      http://www.nike-canada.ca/ nike canada
      http://www.pandoraukrings.co.uk/ pandora charms
      http://www.nikeoffwhite.us.com/ nike off white
      http://www.adidas--yeezy.co.uk/ yeezy 350
      http://www.airmax-2019.us.com/ air max 270
      http://www.adidastrainers-uk.co.uk/ adidas superstar
      http://www.philipppleinoutlet.us/ philipp plein outlet
      http://www.salomon-chaussures.fr/ salomon chaussures
      http://www.skechers.in.net/ skechers
      http://www.pandora--jewelry.us.org/ pandora charms
      http://www.uggboots-outlet.us/ uggs for women
      http://www.adidascanada-shoes.ca/ adidas
      http://www.adidasboostoutlet.us/ adidas
      http://www.yeezys.fr/ adidas yeezy
      http://www.christianlouboutins.fr/ louboutin femme
      http://www.air-max.us/ nike
      http://www.chaussuresalomon.fr/ salomon speedcross
      http://www.curry-5shoes.us/ curry 5
      http://www.filas.us.org/ fila
      http://www.nmds.ca/ adidas originals nmd
      http://www.adidaseqt.us.org/ adidas eqt support adv
      http://www.salomonshoes.ca/ salomon xa pro 3d
      http://www.nikeairmax270.ca/ nike air max 270
      http://www.kd11-shoes.us/ kevin durant
      http://www.longchampbags.ca/ longchamp
      http://www.adidasyeezyboost.fr/ yeezy boost
      http://www.skechers-shoes.ca/ skechers boots
      http://www.nmd.us.org/ adidas nmd
      http://www.adidaseqtsupportadv.us/ adidas eqt support adv
      http://www.pandora--jewelry.co.uk/ pandora jewelry
      http://www.pandoraukcharms.org.uk/ pandora uk
      http://www.uggslippers.ca/ ugg canada
      http://www.jordan-11.fr/ jordan 11 space jam
      http://www.fjallravenkanken-backpack.us/ fjallraven kanken
      http://www.katespades.co.uk/ kate spade purses
      http://www.chaussurelouboutinpascher.fr/ louboutin femme
      http://www.jordanretro11.in.net/ jordan shoes
      http://www.lebron16-shoes.us/ lebron shoes
      http://www.redbottomslouboutinshoes.us.com/ louboutin shoes
      http://www.louboutin-shoesuk.co.uk/ louboutin
      http://www.vans--shoes.us.com/ vans
      http://www.nikeoffwhiteshoes.us/ off white
      http://www.fitflop-shoes.ca/ fitflop canada
      http://www.yeezy-950.us/ y
      http://www.adidasshoesoutlet.us.org/ adidas trainers
      http://www.chaussurejordan.fr/ chaussure jordan
      http://www.skechers-outlet.us.org/ skechers shoes
      http://www.geox.us.com/ geox mens shoes
      http://www.camisas-ralphlauren.com/ Camisas Ralph Lauren
      http://www.geox.us.org/ geox
      http://www.zapatillas-offwhite.com/ Off White
      http://www.eccoshoesoutlet.us.org/ ecco
      http://www.yeezy-boost350.us.org/ adidas yeezy
      http://www.supreme.com.co/ supreme shirt
      http://www.trajeshugoboss.com/ Hugo Boss
      http://www.nikebasketball.us.com/ basketball shoes
      http://www.airmax-95.us.org/ air max 95
      http://www.ninewestshoes.us.com/ nine west boots
      http://www.jordan12.us.org/ jordan retro 12
      http://www.vansoldschool.fr/ vans old skool femme
      http://www.ropaguess.com/ Guess Vestidos
      http://www.clarks.in.net/ clarks sandals
      http://www.kd11.us.org/ kevin durant shoes
      http://www.katespade-handbags.us.org/ kate spade outlet
      http://www.stussy.com.co/ stussy sweatshirt
      http://www.zapatoslouboutin.com/ Louboutin
      http://www.boseheadphones.us/ bose
      http://www.salomons.us.org/ salomon boots
      http://www.timberlands.us.org/ timberland boots
      http://www.airmax-270.us.org/ nike air max
      http://www.nike-chaussure.fr/ nike chaussure
      http://www.converseblanche.fr/ converse
      http://www.armaniropa.com/ Armani Ropa
      http://www.chaussurebalenciaga.fr/ balenciaga femme
      http://www.nmd.in.net/ adidas nmd
      http://www.chaussures-salomon.fr/ chaussure salomon
      http://www.mizunoshoes.us.org/ mizuno
      http://www.adidas-eqt.us.com/ adidas eqt
      http://www.jordan11shoes.us.org/ air jordan
      http://www.yeezysupply.us.org/ yeezy boost 350
      http://www.airmax-90.us.org/ nike air max women
      http://www.skechersboots.us.org/ skechers
      http://www.zapatillas-converse.com/ Converse
      http://www.nike-airmax2019.us.com/ air max 2019
      http://www.salomon-shoes.us.org/ salomon speedcross
      http://www.levis.us.com/ levi's
      http://www.zapatillasnikehombre.com/ Zapatillas Nike Hombre
      http://www.fjallravens.us.com/ fjal
      コメントする








          

      PR

      calendar

      S M T W T F S
           12
      3456789
      10111213141516
      17181920212223
      24252627282930
      << November 2019 >>

      selected entries

      categories

      archives

      recent comment

      links

      profile

      search this site.

      others

      mobile

      qrcode

      powered

      無料ブログ作成サービス JUGEM