DXGI 1.3 改进

Microsoft DirectX 图形基础设施 (DXGI) 1.3 中添加了以下功能,从 Windows 8.1 开始提供。

剪裁 DXGI 适配器内存使用情况

从 Windows 8.1 开始,DXGI 1.3 添加了刷新和释放 DXGI 适配器分配的未使用的内存资源的功能。 这允许应用在暂停时释放临时内存,从而降低应用终止并为其他应用释放资源的可能性。 应用恢复时,支持剪裁的设备驱动程序将根据需要重新创建资源。 从 Windows 8.1 开始,应用创建的所有 Direct3D 设备必须在暂停时调用 IDXGIDevice3::Trim,以减少内存占用,并降低应用终止并回收系统资源的可能性。

多平面覆盖

从 Windows 8.1 开始,DXGI 1.3 支持多平面覆盖。 可以使用 IDXGIOutput2::SupportsOverlays 了解设备是否支持硬件中的多平面覆盖。

重叠交换链和交换链缩放

从 Windows 8.1 开始,DXGI 1.3 支持重叠交换链。 重叠交换链用于在非本机分辨率(具有硬件向上缩放)上绘制 3D 图形,同时以本机分辨率呈现 UI。 这样,游戏就可以利用更高的填充率进行响应式游玩,而不会降低 UI 元素的视觉质量,例如玩家分数和对话文本。 在支持多平面覆盖的设备上,Direct3D 将为重叠交换链使用多平面覆盖。 通过在创建交换链时指定 DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER 标志来创建前台交换链,并使用 IDXGISwapChain2::SetMatrixTransformIDXGISwapChain2::GetMatrixTransform 来缩放用于玩游戏的交换链。

选择交换链的后台缓冲子区域

从 Windows 8.1 开始,DXGI 1.3 可用于选择与交换链一起使用的后台缓冲子区域,从而可以在不重新创建交换链的情况下呈现到较小的后台缓冲区。 请参阅 IDXGISwapChain2::SetSourceSizeIDXGISwapChain2::GetSourceSize

延迟较低的交换链演示

从 Windows 8.1 开始,DXGI 1.3 允许交换链在开始使用设备绘制下一帧之前完成演示上一帧,从而降低延迟。 请参阅 IDXGISwapChain2::GetFrameLatencyWaitableObjectIDXGISwapChain2::GetMaximumFrameLatencyIDXGISwapChain2::SetMaximumFrameLatency

DXGI 编程指南