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 管理器仅知道源和目标之间的关联。 仅显示微型端口驱动程序才知道涉及视频输出编解码器的基础复合关联。

相关推荐
又见情义2 天前
RK3568 + RTL8211F 网络唤醒(WOL)功能适配全记录
android·网络·驱动开发
DYWorker0012 天前
基于RK3568的Linux驱动开发:实战——WDT
linux·驱动开发
sukalot2 天前
windows 驱动实例分析系列: libusb驱动分析-应用层源码篇(三)
windows·驱动开发
智购科技无人售货机工厂2 天前
2026自动售货机防拆机物理安全设计:从安全螺丝到结构互锁的工程实践~YH
android·网络·驱动开发·python·单片机·安全·云原生
Jaixln_HRF5 天前
率能SS8837T 单通道1.8A/12V H桥电机驱动芯片,低功耗睡眠模式120nA,用于摄像机/玩具/机器人
驱动开发·嵌入式硬件·机器人·硬件工程
bingcheby5 天前
PS通过AXI总线控制PL的LED灯实验之四---编程下载调试
驱动开发·fpga开发·iar
xu_wenming5 天前
嵌入式软件架构中的6种解耦艺术
c语言·驱动开发·嵌入式硬件·架构
DevHub5 天前
CANopen 教程:STM32 实现 CANopen 从站,3 个回调替代手写对象字典
c语言·驱动开发·stm32·单片机·嵌入式硬件·mcu
Jaixln_HRF5 天前
率能SS6216 单通道1.4A/7.2V直流电机驱动芯片,支持正反转/停止/刹车,用于玩具/智能锁/车载夹
驱动开发·嵌入式硬件·硬件工程
sukalot5 天前
windows 驱动实例分析系列: wireguard-nt驱动分析-driver篇(一)
windows·驱动开发