Partilhar via


Calculando a memória gráfica

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

  • Total de memória 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 neste número. Por exemplo, um computador com um DIMM de 1 GB (1.024 MB) que tenha 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. Este 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 o VidMm permite que os drivers de miniportas de exibição (KMDs) de modo kernel fixem para uso pela GPU a qualquer instante. Ou seja, é a quantidade de memória do sistema que os KMDs podem mapear através 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, o VidMm garante que apenas até um valor 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 da estrutura DXGK_SEGMENTDESCRIPTOR quando o driver descreve o segmento. Um limite de confirmação especificado dessa forma aplica-se apenas ao segmento específico descrito pelo driver.

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

    O 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 global de confirmação for de 256 MB, o VidMm não permitirá que um KMD mapeie mais de 256 MB de memória do sistema nesse 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 especifica o membro PopulatedFromSystemMemory na estrutura DXGK_SEGMENTFLAGS para cada segmento. Esse número não pode ser maior do que a memória total do sistema disponível para uso gráfico (TotalSystemMemoryAvailableForGraphics).

  • Máximo de memória partilhada 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 de sistema partilhada

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

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

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

    TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory
    

Artigos relacionados incluem: