Calculating Graphics Memory(MSDN翻译)

Calculating Graphics Memory

VMM需要在上报精确的显存信息之前计算显存的总量。下列描述了VMM如何计算显存数量:

Total system memory

系统内存总大小
系统内存总量是系统OS可以访问的内存部分。BIOS分配使用的内存不会计算在系统内存总大小中。例如,系统中由1G(1024MB)内存条,BIOS分配使用了1MB,则OS能访问的内存只有1023MB。

可以给图形使用的系统内存总量
给GPU共享或专用的系统内存大小使用下列公式得到

TotalSystemMemoryAvailableForGraphics = MAX((TotalSystemMemory / 2), 64MB)

Commit limit on aperture segment

aperture 段的Commit上限

aperture段的上限是VMM允许显卡驱动为GPU pin down并任意使用的系统内存数量(显卡驱动能够通过aperture段映射的系统内存数量)。能够提供给GPU的系统内存总大小可以远远大于aperture段的commit上限;但是VMM能够保证aperture段中实际resident的数量在任意时刻不会大于commit上限。

默认情况下,一个典型的aperture段的Commit上限为这个段的大小。显卡驱动能够通过指定DXGK_SEGMENTDESCRIPTOR结构中CommitLimit成员来设置一个不同的Commit上限。这种指定的Commit上限只在显卡驱动所指定的段中才会生效。

另外对于段的commit上限存在一个对于所有段都有效的全局commit上限。这个全局上限也被称为共享系统内存。VMM会计算这个值。尽管显卡驱动能够通过指定DXGK_DRIVERCAPS中ApertureSegmentCommitLimit来指定一个较低的值,但是我们并不建议这样做。

VMM不允许显卡驱动超过段的commit上限或者全局上限。如果一个段的commit上限为1GB,但是全局commit上限是256MB,VMM将不会允许显卡驱动映射超过256MB的系统内存到这个段中。

Dedicated video memory

专用显存
该数量为所有报给系统段中未被设置DXGK_SEGMENTFLAGS成员PopulatedFromSystemMemory的段大小的总和。

Dedicated system memory

图形专用系统内存

该数量为显卡驱动报给系统段中被设置DXGK_SEGMENTFLAGS成员PopulatedFromSystemMemory的段大小的总和。该数值不能大于能被图形使用的系统内存总量。

Shared system memory

图形共享系统内存

最大可以共享给GPU的系统内存数量如下

MaxSharedSystemMemory = TotalSystemMemoryAvailableForGraphics - DedicatedSystemMemory

可以共享给GPU的系统内存的数量如下

SharedSystemMemory = MIN(MIN(SumOfCommitLimitOnAllApertureSegment, DXGK_DRIVERCAPS.ApertureSegmentCommitLimit), MaxSharedSystemMemory)

Total video memory

显存总大小

显存总大小的计算方式如下:

TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值