Windows 10 Anniversary Update以降、DirectXやDirect3Dも大幅に変更になったらしいのでメモ。
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)がどのように変化してきたかを表した図が、以下の通りです。
DirectX9(D3D9)では、マルチスレッドなしで描画します。
DirectX11(D3D11)では、遅延コンテキスト(Deferred Contex)は、マルチスレッドによって GPU のコマンドを生成するのに使われます。
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の変更は以下の通りです。
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については、以下にまとめました。
WHQL(Windows Hardware Quality Labs)とは
WHQLとは、コンピュータや周辺機器などのハードウェアがWindows対応製品としてふさわしいかどうかを試験する組織。Microsoft社が運営している。WHQLで認定されると「Windows対応」のロゴマークを使用することが許可される。
Windows XPでは以下の設定で、ハードウェアアクセラレータの設定を変更できました。
デスクトップを右クリックし、[プロパティ] をクリックします。
[設定] タブをクリックし、[詳細設定] をクリックします。
[トラブルシューティング] タブをクリックします。
[ハードウェア アクセラレータ] のつまみを [なし] よりも 1 目盛り右側の基本的なアクセラレータ設定まで移動します。
[OK] をクリックし、[閉じる] をクリックします。
Windows XPやWindows 7ではあったハードウェアアクセラレータの設定は、Windows 10ではなくなってしまったらしい。
DirectXの調査にあたって、役に立った本は以下の通りです。
コメント