DXGI 1.2 改进
Microsoft DirectX Graphics Infrastructure (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 方法的行为。
从 Windows 显示驱动程序模型 (WDDM) 1.2 驱动程序模型开始,WDDM 计划程序可以在更精细的粒度级别抢占 GPU 执行应用程序任务。 DXGI 1.2 允许你确定 GPU 抢占粒度级别。
此 DXGI 1.2 功能包含以下方法。
Windows 8 SDK 提供了其他调试功能。 可以使用Dxgidebug.dll中的以下 DXGI API 来调试应用:
若要访问 DXGIGetDebugInterface,请调用 GetModuleHandle 函数获取Dxgidebug.dll,调用 GetProcAddress 函数获取 DXGIGetDebugInterface 的地址。 然后,可以调用 DXGIGetDebugInterface 来获取 IDXGIDebug 或 IDXGIInfoQueue 接口。
有关如何远程调试 DirectX 应用的信息,请参阅 远程调试 DirectX 应用。