Freigeben über


Berechnen des Grafikspeichers

Bevor VidMm ein genaues Konto an Clients melden kann, muss zuerst die Gesamtmenge des Grafikspeichers berechnet werden. VidMm verwendet die folgenden Speichertypen und Formeln zum Berechnen von Grafikspeichernummern:

  • Gesamter Systemspeicher

    Dieser Wert ist die Gesamtmenge des Systemspeichers, auf den das Betriebssystem zugreifen kann. Speicher, den das BIOS zuweist, wird in dieser Zahl nicht angezeigt. Ein Computer mit 1 GB DIMM (1.024 MB) mit einem BIOS, das 1 MB Arbeitsspeicher reserviert, scheint 1.023 MB Systemspeicher zu haben.

  • Gesamter Systemspeicher, der für die Grafikverwendung verfügbar ist

    Dieser Wert ist die Gesamtmenge des Systemspeichers, der für die GPU reserviert oder freigegeben ist. Diese Zahl wird wie folgt berechnet:

    TotalSystemMemoryAvailableForGraphics = MAX((TotalSystemMemory / 2), 64MB)
    
  • Festschreibungsgrenze für Blendensegment

    Dieser Wert ist die Menge des Systemspeichers, den VidMm erlaubt, Miniporttreiber (KMDs) im Kernelmodus für die GPU-Verwendung sofort anzuheften. Das heißt, es ist die Menge des Systemspeichers, den KMDs über ein Blendensegment speichern können. Die Gesamtmenge des Systemspeichers, der für die GPU zugewiesen ist, kann den Commit-Grenzwert erheblich überschreiten. VidMm stellt jedoch sicher, dass nur bis zu einem Commit-Limit-Betrag jederzeit in einem Blendensegment ansässig ist.

    Standardmäßig ist der Commit-Grenzwert für ein bestimmtes Blendensegment die Größe dieses Segments. Die KMD kann einen anderen Commit-Grenzwert im CommitLimit-Element der DXGK_SEGMENTDESCRIPTOR-Struktur angeben, wenn der Treiber das Segment beschreibt. Ein Commit-Limit, das auf eine solche Weise angegeben ist, gilt nur für das bestimmte Segment, das der Treiber beschreibt.

    Zusätzlich zum Commit-Limit pro Segment gibt es ein globales Commit-Grenzwert für alle Blendensegmente. Dieser globale Commit-Grenzwert wird auch als gemeinsam genutzter Systemspeicher bezeichnet. VidMm berechnet diesen Wert. Ein KMD kann diesen Wert auf einen niedrigeren Wert im BlendSegmentCommitLimit-Element der DXGK_DRIVERCAPS-Struktur reduzieren. Wir empfehlen diese Vorgehensweise jedoch nicht.

    VidMm lässt es nicht zu, dass eine KMD gegen das Commitlimit pro Segment oder gegen den globalen Commit-Grenzwert verstößt. Wenn ein bestimmtes Segment einen Commit-Grenzwert von 1 GB aufweist, der globale Commit-Grenzwert jedoch 256 MB beträgt, lässt VidMm keine KMD zu, um mehr als 256 MB Systemspeicher in diesem Segment zuzuordnen.

  • Dedizierter Videospeicher

    Dieser Wert ist die Summe der Größe aller Speichersegmente, für die die KMD das PopulatedFromSystemMemory-Element in der DXGK_SEGMENTFLAGS-Struktur für jedes Segment nicht angegeben hat.

  • Dedizierter Systemspeicher

    Dieser Wert ist die Summe der Größe aller Speichersegmente, für die die KMD das PopulatedFromSystemMemory-Element in der DXGK_SEGMENTFLAGS-Struktur für jedes Segment angegeben hat. Diese Zahl kann nicht größer als der gesamt verfügbare Systemspeicher für die Verwendung von Grafiken (TotalSystemMemoryAvailableForGraphics).

  • Maximal freigegebener Systemspeicher

    Dieser Wert ist die maximale Menge an Systemspeicher, die für die GPU freigegeben ist. VidMm verwendet die folgende Formel, um sie zu berechnen:

    MaxSharedSystemMemory = TotalSystemMemoryAvailableForGraphics - DedicatedSystemMemory
    
  • Freigegebener Systemspeicher

    Dieser Wert ist die maximale Menge an Systemspeicher, die für die GPU freigegeben ist. VidMm verwendet die folgende Formel, um sie zu berechnen:

    SharedSystemMemory = MIN(MIN(SumOfCommitLimitOnAllApertureSegment, DXGK_DRIVERCAPS.ApertureSegmentCommitLimit), MaxSharedSystemMemory)
    
  • Gesamter Videospeicher

    Dieser Wert ist die Gesamtmenge des Videospeichers. VidMm verwendet die folgende Formel, um sie zu berechnen:

    TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory
    

Verwandte Artikel umfassen: