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

window 显示驱动开发-报告图形内存(三)

图形内存报告示例

示例 1:笔记本电脑上的 128 MB 专用板载图形内存

以下屏幕截图显示了使用 Intel Iris 离散图形适配器运行 Windows 11 的 Surface 笔记本电脑的计算图形内存数。 适配器的可用内存总数为 16424 MB,用于图形用途,细分如下:

  • 128 MB 的专用板载图形内存。
  • 16296 MB 共享系统内存,用于图形用途。

示例 2:台式计算机上的 8192 MB 专用板载图形内存 

 以下屏幕截图显示了使用 NVIDIA GeForce GTX 1070 离散图形适配器运行 Windows 10 的台式计算机的计算图形内存数。 适配器的可用内存总数为 32724 MB,用于图形用途,细分如下:

  • 8192 MB 的专用板载图形内存。
  • 24532 MB 共享系统内存,用于图形用途。

1. 示例配置

  • 设备类型:笔记本电脑(集成显卡 + 共享内存架构)。
  • 显卡型号:Intel Iris 系列(通常为集成 GPU,此处称为“离散”可能指独立显存版本)。
  • 专用显存(Dedicated Video Memory):128 MB(板载独立显存)。
  • 共享系统内存(Shared System Memory):16,296 MB(动态分配给 GPU 使用的系统内存)。
  • 总可用图形内存:16,424 MB(128 MB + 16,296 MB)。

2. 内存报告来源

显示位置:通过 Windows 设置 或 DirectX 诊断工具(dxdiag) 查看:

  • 路径:设置 > 系统 > 显示 > 高级显示 > 显示适配器属性。
  • 或运行 dxdiag,切换到“显示”选项卡。

报告逻辑:

  • 数值由 WDDM 视频内存管理器(VidMm) 动态计算,而非直接来自硬件寄存器。
  • (参考前文提到的 IDXGIAdapter::GetDesc 或 QueryVideoMemoryInfo API)。

3. 内存分类解析

内存类型说明示例值
专用显存(Dedicated)物理独立的 GPU 显存,仅能被显卡访问。128 MB
共享系统内存(Shared)从系统内存(RAM)中动态划分给 GPU 使用的部分,通过 PCIe 总线访问。16,296 MB
总可用图形内存专用 + 共享内存,反映操作系统对 GPU 可用内存的虚拟化视图。16,424 MB

4. 为什么共享内存如此大?

  • 集成显卡的典型行为:Intel Iris 等集成 GPU 通常没有独立显存,完全依赖系统内存。此例中的 128 MB 可能是固件保留的专用缓存,其余内存通过 动态共享机制 分配。
  • WDDM 的内存虚拟化:VidMm 将系统内存视为“潜在可用”的图形内存,但实际使用时按需分配(并非所有共享内存都会被占用)。

5. 与传统报告方式的对比

对比项Windows XP(旧模型)Windows 11(WDDM)
显存报告仅显示固定专用显存(如 128 MB)。显示专用 + 共享内存(如 128 MB + 16,296 MB)。
动态性静态值,无法反映实际可用性。动态计算,包括内存压力和共享分配。
应用影响游戏可能误判“显存不足”而降低画质。应用可基于真实可用内存优化资源。

6. 对用户和开发者的意义

用户视角:

  • 看到的总内存(如 16,424 MB)是“理论最大值”,实际游戏或应用可用内存受系统负载限制。
  • 高性能应用(如游戏)仍会优先使用专用显存(128 MB),共享内存可能延迟更高。

开发者视角:

  • 应使用 IDXGIAdapter3::QueryVideoMemoryInfo 获取实时内存状态,而非依赖 DedicatedVideoMemory 的静态值。

示例代码:

ComPtr<IDXGIAdapter3> adapter;
DXGI_QUERY_VIDEO_MEMORY_INFO memoryInfo;
adapter->QueryVideoMemoryInfo(0, DXGI_MEMORY_SEGMENT_GROUP_LOCAL, &memoryInfo);
// memoryInfo.Budget = 当前可用显存预算

7. 可能的误解与澄清

  • 误区:“16,424 MB 全部是显存,性能堪比高端显卡。”
  • 事实:共享内存通过系统总线(PCIe)访问,带宽和延迟远不如专用显存,实际性能仍受限于集成 GPU 的架构。
  • 误区:“专用显存 128 MB 太小,无法运行现代游戏。”
  • 事实:WDDM 的共享机制允许 GPU 超额使用系统内存(类似虚拟显存),但可能伴随性能下降。

8. 总结

  • 此例展示了 WDDM 如何 虚拟化图形内存,将专用显存与系统内存统一管理。
  • 共享内存的引入使得低显存设备(如集成 GPU)能更灵活地处理图形任务。
  • 开发者需适配动态内存模型,用户需理解“总内存”并非实际性能指标。
  • 类似配置常见于轻薄本,适合日常办公和轻度图形负载,而非高性能游戏或渲染。

如需进一步验证,可通过 GPU-Z 或 Windows 任务管理器(性能选项卡) 查看实时显存占用情况。

http://www.lryc.cn/news/2380240.html

相关文章:

  • 安全运维 -- linux磁盘挂载到windows
  • 使用 Apache POI 生成 Word 文档
  • 高防服务器流量“清洗”什么意思
  • UE5 GAS框架解析内部数据处理机制——服务器与客户端
  • Unity实用技能-UI定位总结
  • 开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战
  • 服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
  • 26、DAPO论文笔记(解耦剪辑与动态采样策略优化,GRPO的改进)
  • JQuery 禁止页面滚动(防止页面抖动)
  • Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
  • Halcon与C#:工业级机器视觉开发
  • Unity序列化字段、单例模式(Singleton Pattern)
  • 【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
  • 在 Java MyBatis 中遇到 “操作数类型冲突: varbinary 与 float 不兼容” 的解决方法
  • 系统架构设计(十四):解释器风格
  • 【Nextcloud】使用 LNMP 架构搭建私有云存储:Nextcloud 实战指南
  • VDC、SMC、MCU怎么协同工作的?
  • 【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最小化Vscode界面
  • Java-List集合类全面解析
  • uniapp-商城-60-后台 新增商品(属性的选中和页面显示,数组join 的使用)
  • [c语言日寄]数据结构:栈
  • WEB安全--Java安全--LazyMap_CC1利用链
  • 【杂谈】-AI 重塑体育营销:从内容管理到创意释放的全面变革
  • 黑马k8s(六)
  • 【数据结构】二分查找(返回插入点)5.14
  • 如何设计一个二级缓存(Redis+Caffeine)架构?Redis 6.0多线程模型如何工作?
  • Java:logback-classic与slf4j版本对应关系
  • 【OpenGL学习】(一)创建窗口
  • AI大语言模型评测体系演进与未来展望
  • 微服务项目->在线oj系统(Java版 - 5)