DXGI 1.2 の機能強化
Microsoft DirectX グラフィックス インフラストラクチャ (DXGI) 1.2 では、次の機能が追加されました。
プレゼンテーションの機能強化と最適化
DXGI 1.2では、新しいフリップモデルスワップチェーン、コンテンツ保護、ウィンドウレスプレゼンテーション、およびダーティ矩形とスクロール領域を指定する最適化されたプレゼンテーションでプレゼンテーションを強化します。 立体3D表示動作でプレゼンテーションも強化されています。
拡張プレゼンテーションには、次の DXGI 1.2 API を使用できます。
- IDXGIDisplayControl::IsStereoEnabled
- IDXGIDisplayControl::SetStereoEnabled
- IDXGIFactory2::CreateSwapChainForHwnd
- IDXGIFactory2::CreateSwapChainForCoreWindow
- IDXGIFactory2::CreateSwapChainForComposition
- IDXGIFactory2::IsWindowedStereoEnabled
- IDXGIFactory2::RegisterStereoStatusWindow
- IDXGIFactory2::RegisterStereoStatusEvent
- IDXGIFactory2::UnregisterStereoStatus
- IDXGIFactory2::RegisterOcclusionStatusWindow
- IDXGIFactory2::RegisterOcclusionStatusEvent
- IDXGIFactory2::UnregisterOcclusionStatus
- IDXGIOutput1::GetDisplayModeList1
- IDXGIOutput1::GetDisplaySurfaceData1
- IDXGIOutput1::FindClosestMatchingMode1
- IDXGIResource1::CreateSubresourceSurface
- IDXGISurface2::GetResource
- IDXGISwapChain1::GetDesc1
- IDXGISwapChain1::GetFullscreenDesc
- IDXGISwapChain1::GetHwnd
- IDXGISwapChain1::GetCoreWindow
- IDXGISwapChain1::P resent1
- IDXGISwapChain1::IsTemporaryMonoSupported
- IDXGISwapChain1::GetRestrictToOutput
- IDXGISwapChain1::SetBackgroundColor
- IDXGISwapChain1::GetBackgroundColor
- IDXGISwapChain1::SetRotation
- IDXGISwapChain1::GetRotation
DXGI 1.2 API を使用して拡張プレゼンテーションを行う方法の詳細については、「フリップ モデル、ダーティ四角形、スクロール領域を使用したプレゼンテーションの拡張を参照してください。
ステレオでレンダリングできるかどうかを判断する方法については、「ステレオでのレンダリングとステレオの状態に関する通知」を参照してください。
アプリのオクルージョン状態の変更を確認する方法については、「レンダリングが不要な場合にイベントを待機する を参照してください。
コンテンツを画面に表示するときにデータ値がどのように変化するかについては、「色空間のデータの変換」を参照してください。
デスクトップの重複
Windows 8 では、標準の Windows 2000 ディスプレイ ドライバー モデル (XDDM) ミラー ドライバーが無効になります。 DXGI 1.2 には、代替としてデスクトップ重複 API が用意されています。 デスクトップ重複 API は、コラボレーション シナリオ用のデスクトップ イメージへのリモート アクセスを提供します。
デスクトップ重複 API は、次のメソッドで構成されます。
- IDXGIOutput1::D uplicateOutput
- IDXGIOutputDuplication::GetDesc
- IDXGIOutputDuplication::AcquireNextFrame
- IDXGIOutputDuplication::GetFrameDirtyRects
- IDXGIOutputDuplication::GetFrameMoveRects
- IDXGIOutputDuplication::GetFramePointerShape
- IDXGIOutputDuplication::MapDesktopSurface
- IDXGIOutputDuplication::UnMapDesktopSurface
- IDXGIOutputDuplication::ReleaseFrame
デスクトップ重複 API の使用方法の詳細については、「デスクトップ重複 API」を参照してください。
共有リソースと同期イベントの使用の向上
以前のバージョンの Windows では、アプリは継続的ポーリングを使用して、グラフィックス処理装置 (GPU) が任意のコマンドの処理を完了したかどうかを判断します。 DXGI 1.2 を使用すると、アプリは DXGI デバイスにイベントをキューに登録できます。 その後、アプリは、DXGI デバイスがイベントを通知するのを待って、GPU がすべてのレンダリング コマンドの実行を完了したことを確認できます。 DXGI 1.2 を使用すると、複数のデバイスが NT ハンドルを介してリソースを共有できます。
次の DXGI 1.2 API と Direct3D 11.1 API を使用して、リソースを共有し、イベントを同期できます。
- IDXGIDevice2::EnqueueSetEvent
- IDXGIResource1::CreateSharedHandle
- IDXGIFactory2::GetSharedResourceAdapterLuid
- ID3D11Device1::OpenSharedResource1
- ID3D11Device1::OpenSharedResourceByName
- D3D11_RESOURCE_MISC_SHARED_NTHANDLE
リソースのビデオ メモリを提供する
DXGI 1.2 を使用すると、アプリはリソースのビデオ メモリを低オーバーヘッドで提供できます。 ビデオ メモリを提供することで、オペレーティング システムはビデオ メモリを解放できます。
この DXGI 1.2 機能は、次の方法で構成されています。
ID3D11Debug::SetFeatureMask メソッドを使用して、IDXGIDevice2::OfferResources および IDXGIDevice2::ReclaimResources メソッドの動作をデバッグする機能マスク フラグを設定できます。
WDDM 1.2 ドライバー モデルのより細かい粒度レベルでの GPU プリエンプション
Windows ディスプレイ ドライバー モデル (WDDM) 1.2 ドライバー モデル以降、WDDM スケジューラは、より細かい粒度レベルで GPU のアプリケーション タスクの実行を先取りできます。 DXGI 1.2 では、GPU プリエンプションの粒度レベルを決定できます。
この DXGI 1.2 機能は、次の方法で構成されます。
API のデバッグ
Windows 8 SDK には、追加のデバッグ機能が用意されています。 Dxgidebug.dll から次の DXGI API を使用して、アプリをデバッグできます。
- DXGIGetDebugInterfaceをする
- IDXGIDebugの
- IDXGIInfoQueue
DXGIGetDebugInterfaceアクセスするには、GetModuleHandle 関数を呼び出して Dxgidebug.dll を取得し、GetProcAddress 関数を呼び出して DXGIGetDebugInterface アドレスを取得します。 その後、DXGIGetDebugInterface 呼び出して、IDXGIDebug または IDXGIInfoQueueインターフェイス取得できます。
DirectX アプリをリモートでデバッグする方法については、「directX アプリをリモートでデバッグする 」を参照してください。
関連トピック
DXGI の プログラミング ガイド