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: