DirectX(Direct3D) 12はWindows 10 Anniversary Updateで大幅に変わったらしい

Windows
スポンサーリンク

Windows 10 Anniversary Update以降、DirectXやDirect3Dも大幅に変更になったらしいのでメモ。

 

Windows 10 Anniversary Updateについては以下をご覧ください。

Windows Anniversary Update (1607) 適用後、Excel出力プログラムでComExceptionが発生
2016年8月2日、マイクロソフトからWindows 10の2回目の大型アップデート「Windows 10 アニバーサリーアップデート(Anniversary Update)」が提供されました。 このアップデートを適用後、プログラ...

 

 

スポンサーリンク

DirectX 12とは

DirectXとは

Microsoft DirectX(ダイレクトエックス)は、マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合である。オーバーヘッドを少なくしたデバイスの仮想化・抽象化を提供する。Windows・Xbox・Xbox 360・Xbox Oneなど、マイクロソフト製のプラットフォームおよびデバイスにおいて広く利用されている。グラフィックスに関しては、DirectX (Direct3D) 互換のビデオカードを利用することにより、高品質の2次元・3次元コンピュータグラフィックスを高速にレンダリングできる。

 

DirectX 12とは

DirectX 12はWindows 10専用としてそれに標準搭載される形で2015年7月に正式リリースされ、コマンドキューベースの効率的なマルチスレッドレンダリング機能や、マルチGPUによる分散レンダリングの標準化など、近代的なハードウェア設計に沿う形で革新的な多数の機能を備えるに至っている。

 

Direct3D 12とは

Direct3Dとは

Direct3Dは、3Dグラフィックスを描画するためのAPIである。マイクロソフトのDirectXの一部であり、様々なWindows(主にWindows 95以上)で動作し、さらに、家庭用ゲーム機であるXbox、Xbox 360およびXbox OneのグラフィックスAPIのベースでもある。

 

 

Direct3D 12とは

高レベルだがオーバーヘッドの大きかったDirect3D 11までと比べて、Direct3D 12はよりハードウェアに近いローレベルな制御を可能とするAPIとなった。Windows 10のほか、Xbox OneおよびWindows Phoneにも対応予定。
Windows 10 Anniversary Update (version 1607, build 14393) にてWDDM 2.1が導入され、Direct3D 12も更新された。UWPアプリケーションにおける可変リフレッシュレートのサポートも追加されている。

 

 

WDDMとは

Windows Display Driver Model(ウィンドウズ・ディスプレイ・ドライバ・モデル、WDDM)とは、新しくWindows Vistaで導入された、ビデオカード用デバイスドライバの枠組みである。Direct3D 9ExやDirect3D 10以降のDirect3Dは、WDDMに対応するよう設計されている。
Windows Vistaでは、WDDMではなく、Windows 2000/XPのドライバモデル (XPDM) によるディスプレイドライバも使用可能である。ただし、その場合、Desktop Window Manager (DWM)、ひいてはWindows Aeroテーマが使用できない。DWMがDirect3D 9Exを使用するためである。Windows Server 2008やWindows 7でも同様である。

 

 

UWPアプリケーションとは

ユニバーサルWindowsプラットフォーム(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム、略称:UWP)とは、異なるデバイス向けに提供されるMicrosoft Windows用のアプリケーションソフトウェアを共通の基盤上で動作させることのできる、統合されたプラットフォームのことである。

 

 

 

Direct3D 9(DirectX 9)、Direct3D 11(DirectX 11)、Direct3D 12(DirectX 12)がどのように変化してきたかを表した図が、以下の通りです。

 

 

What DirectX 12 means for gamers and developers
Hint: it's exciting.Expert Peter "Durante" Thoman takes a technical deep dive into the promising potential of DX12.

 

 

DirectX9(D3D9)では、マルチスレッドなしで描画します。

 

 

DirectX11(D3D11)では、遅延コンテキスト(Deferred Contex)は、マルチスレッドによって GPU のコマンドを生成するのに使われます。

Immediate and Deferred Rendering - Win32 apps
Direct3D 11 supports two types of rendering immediate and deferred. Both are implemented by using the ID3D11DeviceContext interface.

 

Immediate and Deferred Rendering
Direct3D 11 supports two types of rendering: immediate and deferred. Both are implemented by using the ID3D11DeviceContext interface.

 

 

 

DirectX12(D3D12)ではコマンドリストによって直接ドライバーに描画要求を投げます。

 

 

Windows 10, version 1607 (Anniversary Update)でのDirect3Dの変更は以下の通りです。

What's new in Direct3D 12 - Win32 apps
This topic describes the most significant new Direct3D 12 documentation available for various releases.

 

Windows 10, version 1607
The following topics have been added to the Direct3D documentation for Windows 10, version 1607:

  • Root Signature Version 1.1 : an overview of the updated root signatures, enabling apps to specify how static or volatile descriptors and data are, which can aid graphics driver optimizations.
  • The ID3D12Device1::CreatePipelineLibrary method describes the advantages of creating a pipeline library.
  • There are three new interfaces (refer to Interface Hierarchy):
    • ID3D12PipelineLibrary
    • ID3D12Device1
    • ID3D12VersionedRootSignatureDeserializer
  • Refer to the HLSL Shader Model 6.0 Overview, which describes the wave intrinsic operations for multi-threaded pixel and compute shaders.
  • The use of ID3D12Device::SetStablePowerState has changed.
  • Some new features for Direct3D 11 are described in Direct3D 11.4 Features.
  • The range of supported libraries for Direct3D 12 has been updated, refer to the Supported tools and libraries section of Direct3D 12 Programming Environment Setup.
  • High Dynamic Range and Wide Color Gamut
  • Variable refresh rate displays
  • DXGI 1.5 Improvements

 

 

しかし、こんなに変更があって、古いDirectX 9のアプリケーションとDirectX 12で互換性が取れているんだろうか?

 

DirectXのバージョンを調べる方法

現在使っているパソコンのDirectXのバージョンを調べるには、コマンドプロンプトから、「dxdiag」と入力します。

 

DXDiagについては、以下にまとめました。

DXDiag DirectXやグラボを診断するツールのダウンロード、場所 (Windows 7, Windows 10)
DxDiagで何ができるのでしょうか? DXDiag とは DXDiag の読み方は、ディーエックスダイアグです。 DXDiag は、Windows 7, Windows 10等のWindows OSで、特にグラフィックに関して、グラフィ...

 

 

 

 

WHQL(Windows Hardware Quality Labs)とは

WHQLとは、コンピュータや周辺機器などのハードウェアがWindows対応製品としてふさわしいかどうかを試験する組織。Microsoft社が運営している。WHQLで認定されると「Windows対応」のロゴマークを使用することが許可される。

 

 

Windows XPでは以下の設定で、ハードウェアアクセラレータの設定を変更できました。

デスクトップを右クリックし、[プロパティ] をクリックします。
[設定] タブをクリックし、[詳細設定] をクリックします。
[トラブルシューティング] タブをクリックします。
[ハードウェア アクセラレータ] のつまみを [なし] よりも 1 目盛り右側の基本的なアクセラレータ設定まで移動します。
[OK] をクリックし、[閉じる] をクリックします。

 

 

Windows XPやWindows 7ではあったハードウェアアクセラレータの設定は、Windows 10ではなくなってしまったらしい。
DirectXの調査にあたって、役に立った本は以下の通りです。

 

 

コメント