当前位置: 首页 > article >正文

Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(九)

面板驱动程序

显示器驱动程序是根据从 EDID 生成的即插即用 (PnP) 硬件 ID 加载的。 由于 EDID 保持不变,当任何一个 GPU 控制内部面板时,都会加载面板驱动程序。 这两个驱动程序将显示相同的亮度功能。 因此,加载应该不会造成任何问题,面板驱动程序也不需要知道哪个 GPU 在控制多路复用器。

识别多路复用器控制的目标

当 OS 启动驱动程序时,它会调用驱动程序的 DxgkDdiQueryChildRelations 来查询所报告子节点的信息。 驱动程序会为每个子节点填写 DXGK_CHILD_DESCRIPTOR 结构。 AcpiUid 成员被定义为 ACPI 命名空间中该子级下的 _ADR 方法返回的值,它允许 OS 查找该子级的 ACPI 名称。

对于 ADS,我们定义了一个 ACPI DMID 方法,该方法需要位于目标的子 ACPI 命名空间下。 此 DMID 方法返回多路复用器设备的 ACPI 名称。 它允许 OS 查找目标的多路复用器 ACPI 名称。

PnP 停止正在向目标扫描的适配器

当扫描到内部面板的 GPU 停止时,OS 不会切换多路复用器。 以下是 GPU 停止运行的不同情况。

  1. GPU0 是 post。 它连接到内部面板并停止运行。

    在这种情况下,基本显示驱动程序 (BDD) 会接管 GPU0 上的当前活动模式,并继续更新屏幕。

  2. GPU0 是 post,但 GPU1 连接到内部面板。 GPU0 已停止。

    由于当前 OS 的设计,BDD 是在 GPU0 上启动的,这会导致报告幽灵监视器并出现在显示器 CPL 中。

  3. GPU1 不是 post,而是连接到内部面板。 GPU1 已停止。

    由于当前 OS 的设计,BDD 无法在 GPU1 上启动,因此用户无法看到面板。

  4. GPU1 不是 post。 GPU0 连接到内部面板,GPU1 停止运行。

    不会发生任何切换,也不会发生任何事情。 GPU0 继续显示在面板上。

方案 2 和方案 3 会给用户带来糟糕的体验。 ADS 功能改变了行为以解决这两种情况。

不支持插件/外部 GPU

我们不认为这个功能在插件 GPU 上有任何用途。

ADS 仅限于单个内部面板

ADS 的第一个版本仅支持单个内部面板。 但是,该功能的设计方式允许它在未来支持外部和多个内部显示器的多路复用器(如果 OS 支持),只需对驱动程序进行最少的更改。

当前 POST 适配器策略更改

OS 以前有一些关于 POST 适配器的策略。 例如,POST 适配器是唯一能公开内部目标的适配器。 随着 ADS 的引入,这些类型的限制被从操作系统中移除。

禁用监视器到达视觉效果

在 Windows 11 中连接监视器时,shell/DWM 会出现动画序列。 在显示切换场景中,该动画将被禁用。

禁用 PnP bonk

添加或删除监视器时,PnP 系统播放“bonk”声音以通知用户。 此“bonk”在显示切换场景中被禁用。

应用程序通知

当发生显示切换时,系统会通过常规的 HPD 移除和 HPD 到达代码路径。 因此,所有正常的应用程序通知都会正常触发;例如,HPD 输出和 HPD 输入的 PnP 通知以及 WM_DISPLAYCHANGE 窗口消息。

用于触发切换的 API

计划将提供一个公共 API,以便 OS 和 IHV 控制面板可以触发切换。

鉴于内部面板仅连接到单个 GPU,显示 API 和 Win+P 功能均按预期工作。

HLK 测试

如果 GPU 驱动程序或 ACPI 固件报告全面的 ADS 支持,那么它需要在启用了 ADS 的系统上通过 ADS HLK 测试。

当多路复用器从 GPU 切换开时,GPU 正在对内部面板进行 HPD

当一个内部面板被报告为从一个驱动程序连接时,OS 会触发 bug 检查,而该多路复用器目前已从该驱动程序中切换出来。

AC/DC 转换

对于 ADS 功能的第一个版本,OS 不会存储 AC 与 DC 的多路复用器设置,也不会在 AC <-> 直流转换时触发多路复用器切换。

系统电源转换

电源转换的主要问题是当固件重置多路复用器状态时(例如休眠),恢复电源时多路复用器没有切换到电源转换前的面板。

最初的方法是在同时开启 iGPU 和 dGPU 后,将多路复用器切换回 dGPU。 这种方法的问题在于,根据不同的异步事件,结果可能是多种模式的变化。

帮助简化用户体验的最新方法是,当 iGPU 和 dGPU 都处于睡眠状态时,系统会将多路复用器切换回预期目标,从而避免多重模式切换。

相关文章:

Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(九)

面板驱动程序 显示器驱动程序是根据从 EDID 生成的即插即用 (PnP) 硬件 ID 加载的。 由于 EDID 保持不变&#xff0c;当任何一个 GPU 控制内部面板时&#xff0c;都会加载面板驱动程序。 这两个驱动程序将显示相同的亮度功能。 因此&#xff0c;加载应该不会造成任何问题&…...

Excel大文件拆分

import pandas as pddef split_excel_file(input_file, output_prefix, num_parts10):# 读取Excel文件df pd.read_excel(input_file)# 计算每部分的行数total_rows len(df)rows_per_part total_rows // num_partsremaining_rows total_rows % num_partsstart_row 0for i i…...

OpenCV计算摄影学(7)HDR成像之多帧图像对齐的类cv::AlignMTB

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该算法将图像转换为‌中值阈值位图‌&#xff08;Median Threshold Bitmap&#xff0c;MTB&#xff09;&#xff1a; 1.位图生成‌&#xff1a;…...

JWT+redis实现三大令牌管理方案深度解析

三种令牌管理方案对比与评估 1. 仅续期Redis&#xff08;不生成新令牌&#xff09; 实现原理 通过延长Redis中的令牌有效期维持会话&#xff0c;JWT本身不包含动态过期时间。 优点 ✅ 低开销&#xff1a;无需生成新令牌&#xff0c;减少JWT签名计算成本。 ✅ 简单实现&#x…...

北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)

近年来&#xff0c;大模型技术飞速发展&#xff0c;但许多用户发现&#xff1a;即使使用同一款 AI 工具&#xff0c;效果也可能天差地别——有人能用 AI 快速生成精准方案&#xff0c;有人却只能得到笼统回答。这背后的关键差异&#xff0c;在于提示词工程的应用能力。 北京大…...

Axure PR 9 中继器 03 翻页控制

大家好&#xff0c;我是大明同学。 接着上期的内容&#xff0c;这期内容&#xff0c;我们来了解一下Axure中继器图表翻页控制。 预览地址&#xff1a;https://pvie5g.axshare.com 翻页控制 1.打开上期RP 文件&#xff0c;在元件库中拖入一个矩形&#xff0c;宽值根据业务实际…...

IO流(师从韩顺平)

文章目录 文件什么是文件文件流 常用的文件操作创建文件对象相关构造器和方法应用案例 获取文件的相关信息应用案例 目录的操作和文件删除应用案例 IO 流原理及流的分类Java IO 流原理IO流的分类 IO 流体系图-常用的类IO 流体系图&#xff08;重要&#xff01;&#xff01;&…...

基于Javase的停车场收费管理系统

基于Javase的停车场收费管理系统 停车场管理系统开发文档 项目概述 1.1 项目背景 随着现代化城市的不断发展&#xff0c;车辆数量不断增加&#xff0c;停车难问题也日益突出。为了更好地管理停车场资 源&#xff0c;提升停车效率&#xff0c;需要一个基于Java SE的停车场管理…...

Exoplayer(MediaX)实现音频变调和变速播放

在K歌或录音类应用中变调是个常见需求&#xff0c;比如需要播出萝莉音/大叔音等。变速播放在影视播放类应用中普遍存在&#xff0c;在传统播放器Mediaplayer中这两个功能都比较难以实现&#xff0c;特别在低版本SDK中&#xff0c;而Exoplayer作为google官方推出的Mediaplayer替…...

Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议

目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…...

《Python实战进阶》专栏 No 5:GraphQL vs RESTful API 对比与实现

《Python实战进阶》专栏包括68集&#xff0c;每一集聚焦一个中高级技术知识点&#xff0c;涵盖Python在Web开发、数据处理、自动化、机器学习、并发编程等领域的应用&#xff0c;系统梳理Python开发者的知识集。本集的主题为&#xff1a; No4 : GraphQL vs RESTful API 对比与实…...

类和对象——static修饰类的成员

static修饰类的成员 static成员1 static成员的概念2 特性 static成员 有时会有这样的需求&#xff1a;计算程序中创建出了多少个类的对象&#xff0c;以及多少个正在使用的对象。 因为构造函数和析构函数都只会调用一次&#xff0c;所以可以通过设置生命周期和main函数一致的…...

RabbitMQ系列(七)基本概念之Channel

RabbitMQ 中的 Channel&#xff08;信道&#xff09; 是客户端与 RabbitMQ 服务器通信的虚拟会话通道&#xff0c;其核心作用在于优化资源利用并提升消息处理效率。以下是其核心机制与功能的详细解析&#xff1a; 一、Channel 的核心定义 虚拟通信链路 Channel 是建立在 TCP 连…...

你对 Spring Cloud 的理解

Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集&#xff0c;为开发者提供了快速构建分布式系统的一系列解决方案&#xff0c;涵盖了服务发现、配置管理、熔断器、智能路由、微代理、控制总线等多个方面。 从核心组件来看&#xff1a; 服务发现&#xff1a;以 Eu…...

MYSQL 5.7数据库,关于1067报错 invalid default value for,解决方法!

???作者&#xff1a; 米罗学长 ???个人简介&#xff1a;混迹java圈十余年&#xff0c;精通Java、小程序、数据库等。 ???各类成品java毕设 。javaweb&#xff0c;ssm&#xff0c;springboot&#xff0c;mysql等项目&#xff0c;源码丰富&#xff0c;欢迎咨询。 ???…...

C# Enumerable类 之 数据筛选

总目录 前言 在 C# 中&#xff0c;System.Linq.Enumerable 类是 LINQ&#xff08;Language Integrated Query&#xff09;的核心组成部分&#xff0c;它提供了一系列静态方法&#xff0c;用于操作实现了 IEnumerable 接口的集合。通过这些方法&#xff0c;我们可以轻松地对集合…...

运维基础知识(一)

一:SSH端口 首先SSH是什么? SSH(Secure Shell)是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH使用秘钥对数据进行加密,保证了远程管理数据的安全性。 Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。SSH广泛用于远程…...

权重生成图像

简介 前面提到的许多生成模型都有保存了生成器的权重,本章主要介绍如何使用训练好的权重文件通过生成器生成图像。 但是如何使用权重生成图像呢? 一、参数配置 ima_size 为图像尺寸,这个需要跟你模型训练的时候resize的时候一样。 latent_dim为噪声维度,一般的设置都是…...

【Linux基础】Linux下的C编程指南

目录 一、前言 二、Vim的使用 2.1 普通模式 2.2 插入模式 2.3 命令行模式 2.4 可视模式 三、GCC编译器 3.1 预处理阶段 3.2 编译阶段 3.3 汇编阶段 3.4 链接阶段 3.5 静态库和动态库 四、Gdb调试器 五、总结 一、前言 在Linux环境下使用C语言进行编程是一项基础且…...

DeepSeek-OpenSourceWeek-第四天-Optimized Parallelism Strategies

DeepSeek 在 #OpenSourceWeek(开源周) 的第四天推出了两项新工具,旨在让深度学习更快、更高效:**DualPipe** 和 **EPLB**。 DualPipe 定义:DualPipe 是一种用于 V3/R1 训练中计算与通信重叠的双向pipline并行算法。 作用:它通过实现前向和后向计算-通信阶段的完全重叠,减…...

Python Cookbook-2.15 用类文件对象适配真实文件对象

任务 需要传递一个类似文件的对象(比如&#xff0c;调用urllib.urlopen 返回的结果)给一个函数或者方法&#xff0c;但这个函数或方法要求只接受真实的文件对象(比如&#xff0c;像marshalload 这样的函数)。 解决方案 为了过类型检查这一关&#xff0c;我们需要将类文件对象…...

浅谈HTTP及HTTPS协议

1.什么是HTTP&#xff1f; HTTP全称是超文本传输协议&#xff0c;是一种基于TCP协议的应用非常广泛的应用层协议。 1.1常见应用场景 一.浏览器与服务器之间的交互。 二.手机和服务器之间通信。 三。多个服务器之间的通信。 2.HTTP请求详解 2.1请求报文格式 我们首先看一下…...

Pytest自定义测试用例执行顺序

文章目录 1.前言2.pytest默认执行顺序3.pytest自定义执行顺序 1.前言 在pytest中&#xff0c;我们可能需要自定义测试用例的执行顺序&#xff0c;例如登陆前需要先注册&#xff0c;这个时候就需要先执行注册的测试用例再执行登录的测试用例。 本文主要讲解pytest的默认执行顺序…...

人大金仓KCA | 用户与角色

人大金仓KCA | 用户与角色 一、知识预备1. 用户和角色 二、具体实施1. 用户管理-命令行1.1 创建和修改用户1.2 修改用户密码1.3 修改用户的并发连接数1.4 修改用户的密码有效期 2.用户管理-EasyKStudio2.1 创建和修改用户2.2 修改用户密码2.3 修改用户的并发连接数2.4 修改用户…...

【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (11) – UC搭建 前言 使用ADB 或者数据湖&#xff0c;基本上绕不开一个架构“Medallion”&#xff0c; 它使得数据管理更为简单有效。ADB 通过…...

什么是Ollama?什么是GGUF?二者之间有什么关系?

一、Ollama:本地化大模型运行框架 Ollama 是一款开源工具,专注于在本地环境中快速部署和运行大型语言模型(LLM)。它通过极简的命令行操作简化了模型管理流程,支持离线运行、多模型并行、私有化部署等场景。 核心特性 本地化运行:无需依赖云端API,用户可在个人电脑或服务…...

智能证件照处理器(深度学习)

功能说明:支持常见证件照尺寸(一寸、二寸、护照等) 智能背景去除(使用深度学习模型)自定义背景颜色选择自动调整尺寸并保持比例实时预览处理效果注意:整合rembg进行抠图,使用Pillow处理图像缩放和背景替换,定义常见证件照尺寸,并提供用户交互选项。首次运行时会自动下…...

【软考】【2025年系统分析师拿证之路】【啃书】第十五章 系统运行与维护(十六)

目录 运维技术指标系统运行管理系统用户管理网络资源管理软件资源管理 系统故障管理软件系统维护系统评价遗留系统处理遗留系统的评价遗留系统的演化 新旧系统转换数据转换和迁移 现有系统演进 运维技术指标 平均故障修复时间&#xff08;MTTR&#xff09;平均应答时间&#x…...

C++-第十三章:红黑树

目录 第一节&#xff1a;红黑树的特征 第二节&#xff1a;实现思路 2-1.插入 2-1-1.unc为红 2-1-2.cur为par的左子树&#xff0c;且par为gra的左子树(cur在最左边) 2-1-2-1.unc不存在 2-1-2-2.unc为黑 2-1-3.cur为par的右子树&#xff0c;且par为gra的右子树(cur在最右侧) 2-…...

推荐3个背景渐变色的wordpress主题

干净、清爽、背景渐变色的wordpress企业主题 ​ 服务类公司wordpress企业主题https://www.jianzhanpress.com/?p8255 红色大气的wordpress企业主题&#xff0c;适合服务行业的公司搭建企业官方网站使用。 ​ wordpress询盘型独立站主题https://www.jianzhanpress.com/?p8258…...