window显示驱动开发—视频呈现网络简介

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

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

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

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

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

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

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

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

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

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

下图演示了一个 VidPN。

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

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

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

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

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

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

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

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

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

相关推荐
Hey小孩1 小时前
[个人总结] LDD3:3.字符驱动 - scull(4)
linux·驱动开发
春日见17 小时前
控制算法:PP(纯跟踪)算法
linux·人工智能·驱动开发·算法·机器学习
一路往蓝-Anbo1 天前
第五篇:硬件接口的生死劫 —— GPIO 唤醒与测量陷阱
c语言·驱动开发·stm32·单片机·嵌入式硬件
春日见1 天前
控制算法:PID算法
linux·运维·服务器·人工智能·驱动开发·算法·机器人
A-花开堪折1 天前
Qemu-NUC980(十一):SPI Controller
linux·arm开发·驱动开发·嵌入式硬件
yuanmenghao1 天前
自动驾驶中间件iceoryx - 同步与通知机制(一)
开发语言·网络·驱动开发·中间件·自动驾驶
欢乐熊嵌入式编程2 天前
嵌入式 LCD 驱动开发全流程详解
驱动开发·嵌入式开发·嵌入式学习·嵌入式如何快速入门
yuanmenghao2 天前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
食咗未2 天前
Linux tcpdump工具的使用
linux·服务器·网络·驱动开发·tcp/ip·测试工具·tcpdump
咕噜咕噜万3 天前
ATDD实践:验收测试驱动开发的完整方法论与工具链
驱动开发