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::Present1
- 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 にアクセスするには、GetModuleHandle 関数を呼び出してDxgidebug.dllを取得し、GetProcAddress 関数を呼び出して DXGIGetDebugInterface のアドレスを取得します。 その後、 DXGIGetDebugInterface を呼び出して 、IDXGIDebug または IDXGIInfoQueue インターフェイスを 取得できます。
DirectX アプリをリモートでデバッグする方法については、「リモートでの DirectX アプリのデバッグ」を参照してください。