视频呈现网络简介

视频呈现网络 (VidPN) 管理器是 DirectX 图形内核子系统 (Dxgkrnl.sys) 的组件,负责管理连接到显示适配器的监视器和其他显示设备的集合。 VidPN 经理的职责包括:

  • 响应热插拔和拔下监视器。

  • 当连接的监视器集更改时,维护和更新一组可用的显示模式。

  • 管理显示适配器上呈现图面与视频输出之间的关联;例如,将桌面的视图和扩展克隆到多个监视器。

  • 当笔记本电脑的盖子打开或关闭时,调整可用显示设备和显示模式集。

  • 在笔记本电脑停靠或取消停靠时,调整可用显示设备和显示模式集。

显示适配器上负责扫描视频内存中呈现的内容并在视频输出上呈现的硬件称为 显示适配器的呈现子系统视频呈现网络 (VidPN) 是显示适配器的演示子系统的软件模型。

显示适配器的呈现子系统的关键元素是主表面链) (视图和视频输出。 在 VidPN 模型中,视图称为 视频呈现源,视频输出称为 视频呈现目标

视频演示路径是视频演示源与视频呈现目标之间的关联。 VidPN 通过维护一组视频呈现路径来为源和目标之间的关系建模。 路径集称为 VidPN 拓扑

请注意,视频存在目标不是监视器 (或其他外部显示设备) 连接到显示适配器。 视频呈现的目标是视频输出连接器本身。

下图演示了一个 VidPN。

说明视频演示网络 (具有源、目标和连接器的 VidPN) 的关系图。

上图中所示的 VidPN 有三个视频存在目标:DVI 连接器、HD15 连接器和 S 视频连接器。 VidPN 拓扑由将两个源连接到三个目标的行表示。 拓扑指定源 1 连接到 DVI 目标,源 2 连接到 HD15 和 S 视频目标。 源 2 上呈现的内容在连接到 HD15 和 S 视频连接器的显示设备上显示为克隆视图。

每个视频呈现源都支持一组称为 源模式的图面格式。 为了跟踪各种视频呈现源支持的源模式,VidPN 会为每个视频呈现 源保留一个源模式集 。 为特定视频当前源设置的源模式不是静态的;它会随着拓扑的变化而更改,并且根据为其他视频呈现源选择的模式而更改。

该模型适用于视频呈现目标。 每个视频呈现目标都支持一组称为 目标模式的特定视频信号格式,并且 VidPN 为每个视频呈现目标维护一个 目标模式集 。 为特定视频呈现目标设置的目标模式会随着拓扑的更改而更改,并为其他视频呈现目标选择模式。

显示微型端口驱动程序的角色

例如,显示适配器具有一个或多个 视频输出编解码器 (CRTC) ,该编解码器从视频呈现源进行读取,并将相应的视频信号放置在视频呈现目标上。 在任何给定时间,视频输出编解码器最多可以从一个视频当前源中读取;但是,该编解码器可以向多个视频存在目标提供视频信号, (克隆视图) 。VidPN 管理器关注视频当前源和视频呈现目标之间的关联,但不关心视频输出编解码器的角色。 有关从特定视频当前源读取哪些视频输出编解码器的决策完全由显示微型端口驱动程序控制。 例如,假设显示适配器有两个视频输出编解码器,并且 VidPN 管理器要求显示微型端口驱动程序实现下图所示的拓扑。

显示两个源连接到三个目标的 VidPN 拓扑的关系图。

下图显示了显示微型端口驱动程序将视频输出编解码器分配给视频呈现源的一种方法。

显示驱动程序将 CRTC1 分配给源 1 的 HD15,将 CRTC2 分配给 HD15 和将 S-Video 分配给源 2 的示意图。

请注意,上图中的克隆视图 (HD15、S-video) 由单个 CRTC 处理。 现在假设不再需要连接到 CRTC1 的 HD15 输出。 然后,显示微型端口驱动程序可以通过配置视频输出编解码器来实现克隆视图,如下图所示:

显示视频输出编解码器和两个 CRTC 的替代用途的克隆视图的关系图。

与使用一个 CRTC 实现克隆视图不同,使用两个 CRTC 实现克隆视图具有一些优势。 例如,对于两个 CRTC,HD15 和 S 视频输出可以具有不同的分辨率和刷新率。

重要的是,VidPN 管理器永远不知道显示适配器上的视频输出编解码器如何分配给视频存在的源和目标。 VidPN 管理器仅知道源和目标之间的关联。 仅显示微型端口驱动程序才知道涉及视频输出编解码器的基础复合关联。