Partilhar via


Calcular a memória gráfica

Antes que VidMm possa relatar uma conta precisa aos clientes, ele deve primeiro calcular a quantidade total de memória gráfica. VidMm usa os seguintes tipos de memória e fórmulas para calcular os números de memória gráfica:

  • Memória total do sistema

    Esse valor é a quantidade total de memória do sistema acessível ao sistema operacional. A memória que o BIOS aloca não aparece nesse número. Por exemplo, um computador com um DIMM de 1 GB (1.024 MB) que tem um BIOS que reserva 1 MB de memória parece ter 1.023 MB de memória do sistema.

  • Memória total do sistema disponível para uso gráfico

    Esse valor é a quantidade total de memória do sistema dedicada ou compartilhada com a GPU. Esse número é calculado da seguinte forma:

    TotalSystemMemoryAvailableForGraphics = MAX((TotalSystemMemory / 2), 64MB)
    
  • Limite de confirmação no segmento de abertura

    Esse valor é a quantidade de memória do sistema que VidMm permite que os drivers de miniporta de exibição no modo kernel (KMDs) sejam fixados para uso da GPU a qualquer momento. Ou seja, é a quantidade de memória do sistema que os KMDs podem mapear na memória por meio de um segmento de abertura. A quantidade total de memória do sistema alocada para a GPU pode exceder muito o limite de confirmação, no entanto VidMm garante que somente até uma quantidade limite de confirmação seja realmente residente em um segmento de abertura a qualquer momento.

    Por padrão, o limite de confirmação em um segmento de abertura específico é o tamanho desse segmento. O KMD pode especificar um limite de confirmação diferente no membro CommitLimit na estrutura DXGK_SEGMENTDESCRIPTOR quando o driver descreve o segmento. Um limite de confirmação especificado dessa forma se aplica somente ao segmento específico que o driver descreve.

    Além do limite de confirmação por segmento, há um limite de confirmação global em todos os segmentos de abertura. Esse limite de confirmação global também é conhecido como memória compartilhada do sistema. VidMm computa esse valor. Um KMD pode reduzir esse valor para um valor mais baixo no membro ApertureSegmentCommitLimit da estrutura DXGK_DRIVERCAPS no entanto, não recomendamos essa prática.

    VidMm não permite que um KMD viole o limite de confirmação por segmento nem o limite de confirmação global. Se um segmento específico tiver um limite de confirmação de 1 GB, mas o limite de confirmação global for de 256 MB, VidMm não permitirá que um KMD mapeie mais de 256 MB de memória do sistema para esse segmento.

  • Memória de vídeo dedicada

    Esse valor é a soma do tamanho de todos os segmentos de memória para os quais o KMD não especificou o membro PopulatedFromSystemMemory na estrutura DXGK_SEGMENTFLAGS para cada segmento.

  • Memória de sistema dedicada

    Esse valor é a soma do tamanho de todos os segmentos de memória para os quais o KMD especificou o membro PopulatedFromSystemMemory na estrutura DXGK_SEGMENTFLAGS para cada segmento. Esse número não pode ser maior que a memória total do sistema disponível para uso de gráficos (TotalSystemMemoryAvailableForGraphics).

  • Memória máxima compartilhada do sistema

    Esse valor é a quantidade máxima de memória do sistema compartilhada com a GPU. VidMm usa a seguinte fórmula para calculá-lo:

    MaxSharedSystemMemory = TotalSystemMemoryAvailableForGraphics - DedicatedSystemMemory
    
  • Memória do sistema compartilhada

    Esse valor é a quantidade de memória do sistema que é compartilhada com a GPU. VidMm usa a seguinte fórmula para calculá-lo:

    SharedSystemMemory = MIN(MIN(SumOfCommitLimitOnAllApertureSegment, DXGK_DRIVERCAPS.ApertureSegmentCommitLimit), MaxSharedSystemMemory)
    
  • Memória total de vídeo

    Esse valor é a quantidade total de memória de vídeo. VidMm usa a seguinte fórmula para calculá-lo:

    TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory
    

Os artigos relacionados incluem: