計算圖形記憶體

在 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
    

相關文章包括: