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 方法的行为。
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 应用。