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

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

计算图形内存

在 VidMm 能够向客户端报告准确的帐户之前,它必须首先计算图形内存的总量。 VidMm 使用以下内存类型和公式来计算图形内存:

  • 系统总内存

此值是操作系统可访问的系统内存总量。 BIOS 分配的内存不会出现在此数字中。 例如,一台具有 1 GB DIMM (1,024 MB) 的计算机,其 BIOS 保留了 1 MB 的内存,似乎有 1,023 MB 的系统内存。

  • 可用于图形用途的系统内存总量

此值是专用于或共享到 GPU 的系统内存总量。 此数字的计算方式如下:

TotalSystemMemoryAvailableForGraphics = MAX((TotalSystemMemory / 2), 64MB)
  • 对光圈段提交限制

此值是 VidMm 允许内核模式显示微型端口驱动程序 (KMD) 在任何给定时刻锁定 GPU 使用的系统内存量。 也就是说,它是 KMD 可以通过光圈段映射的系统内存量。 为 GPU 分配的系统内存总量可能会大大超过提交限制;然而,VidMm 确保在任何时候只有一个提交限制数量实际上驻留在一个光圈段中。

默认情况下,特定光圈段的提交限制是该段的大小。 当驱动程序描述段时,KMD 可以在 DXGK_SEGMENTDESCRIPTOR 结构的 CommitLimit 成员中指定不同的提交限制。 以这种方式指定的提交限制仅适用于驱动程序描述的特定段。

除了每段提交限制外,所有光圈段都有全局提交限制。 此全局提交限制也称为共享系统内存。 VidMm 计算此值。 KMD 可以在 DXGK_DRIVERCAPS 结构的 ApertureSegmentCommitLimit 成员中将此值减小到较低的值;然而,我们不推荐这种做法。

VidMm 不允许 KMD 违反每段提交限制和全局提交限制。 如果特定段的提交限制为 1 GB,但全局提交限制为 256 MB,则 VidMm 不允许 KMD 将超过 256 MB 的系统内存映射到该段。

  • 专用视频内存

此值是 KMD 在 DXGK_SEGMENTFLAGS 结构中未指定 PopulatedFromSystemMemory 成员的所有内存段的大小之和。

  • 专用系统内存

此值是 KMD 在 DXGK_SEGMENTFLAGS 结构中指定 PopulatedFromSystemMemory 成员的所有内存段的大小之和。 此数字不能大于图形可用的总系统内存 (TotalSystemMemoryAvailableForGraphics)。

  • 最大共享系统内存

此值是共享给 GPU 的最大系统内存量。 VidMm 使用以下公式计算它:

MaxSharedSystemMemory = TotalSystemMemoryAvailableForGraphics - DedicatedSystemMemory
  • 共享系统内存

此值是共享给 GPU 的系统内存量。 VidMm 使用以下公式计算它:

SharedSystemMemory = MIN(MIN(SumOfCommitLimitOnAllApertureSegment, DXGK_DRIVERCAPS.ApertureSegmentCommitLimit), MaxSharedSystemMemory)
  • 总视频内存

此值是视频内存总量。 VidMm 使用以下公式计算它:

TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory

相关文章:

  • typedef unsigned short uint16_t; typedef unsigned int uint32_t;
  • ‌C# 集成 FastDFS 完整指南‌
  • C++ string数据查找、string数据替换、string子串获取
  • MySQL 数据库:创建新数据库和数据表全攻略
  • 在Ubuntu服务器上部署Label Studio
  • 蓝桥杯13届国B 出差
  • 软件产品线上验收测试有什么目的?又有哪些测试流程?
  • Java接口性能优化:零成本实现数据库状态到中文的极致转换
  • 【图像处理基石】遥感图像分析入门
  • 硬件自动化测试平台搭建(硅后验证,非EDA)day1 大概了解
  • 【报错解决】服务器重启后vscode远程连接失败
  • ‌Element UI 双击事件(@cell-dblclick 与 @row-dblclick)
  • 使用java通过modbus读取前端设备数据
  • AI Agent开发第65课-DIFY和企业现有系统结合实现高可配置的智能零售AI Agent(下)
  • 【Python爬虫 !!!!!!政府招投标数据爬虫项目--医疗实例项目文档(提供源码!!!)!!!学会Python爬虫轻松赚外快】
  • 现代化QML组件开发教程
  • 支付宝小程序开发指南
  • 在Babylon.js中实现完美截图:包含Canvas和HTML覆盖层
  • Rollup入门与进阶:为现代Web应用构建超小的打包文件
  • Q1财报持续向好,腾讯音乐如何在不确定中寻找确定性?
  • AI含量非常高,2025上海教育博览会将于本周五开幕
  • 俄乌拟在土耳其举行会谈,特朗普:我可能飞过去
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,市场有望迎来新增量需求
  • 牟海松任国家信访局副局长
  • 民生谣言误导认知,多方联动守护清朗——中国互联网联合辟谣平台2025年4月辟谣榜综述
  • 干部任职公示:陕西宁强、镇安两县县长拟进一步使用