Вычисление графической памяти

Прежде чем VidMm может сообщить точную учетную запись клиентам, сначала необходимо вычислить общий объем графической памяти. VidMm использует следующие типы памяти и формулы для вычисления номеров памяти графики:

  • Общая системная память

    Это значение является общим объемом памяти системы, доступной операционной системе. Память, выделенная BIOS, не отображается в этом номере. Например, компьютер с 1 ГБ DIMM (1 024 МБ), имеющий BIOS, который резервирует 1 МБ памяти, будет иметь 1 023 МБ системной памяти.

  • Общая системная память, доступная для использования графики

    Это значение является общим объемом памяти системы, выделенной или общей для GPU. Это число вычисляется следующим образом:

    TotalSystemMemoryAvailableForGraphics = MAX((TotalSystemMemory / 2), 64MB)
    
  • Предел коммита в сегменте апертуры

    Это количество системной памяти, которое VidMm позволяет зафиксировать драйверами минипорта в режиме ядра (KMD) для использования GPU в любой момент. То есть это количество системной памяти, которую драйверы KMD способны отобразить через сегмент аппертуры. Общий объем системной памяти, выделенной для GPU, может значительно превышать лимит фиксации; однако VidMm гарантирует, что только объем до этого лимита фактически находится в апертурном сегменте в любой момент времени.

    По умолчанию ограничение фиксации для определенного сегмента диафрагмы — это размер этого сегмента. KMD может указать другое ограничение фиксации в элементе CommitLimit структуры DXGK_SEGMENTDESCRIPTOR, когда драйвер описывает сегмент. Ограничение фиксации, указанное таким образом, применяется только к конкретному сегменту, описанному драйвером.

    В дополнение к ограничению фиксации на сегменте существует глобальное ограничение фиксации для всех сегментов диафрагмы. Это ограничение глобальной фиксации также называется общей системной памятью. VidMm вычисляет это значение. KMD может уменьшить это значение до меньшего значения в элементе ApertureSegmentCommitLimit структуры DXGK_DRIVERCAPS ; Однако не используйте эту практику.

    VidMm не позволяет KMD нарушать ограничение фиксации на сегмент или глобальное ограничение фиксации. Если для определенного сегмента установлен лимит на фиксацию в 1 ГБ, но глобальный лимит фиксации составляет 256 МБ, VidMm не позволяет KMD отобразить более 256 МБ системной памяти в этом сегменте.

  • Выделенная память видео

    Это значение является суммой размера всех сегментов памяти, для которых KMD не указал элемент PopulatedFromSystemMemory в структуре DXGK_SEGMENTFLAGS для каждого сегмента.

  • Выделенная системная память

    Это значение является суммой размера всех сегментов памяти для каждого сегмента, для которых KMD задает элемент PopulatedFromSystemMemory в структуре DXGK_SEGMENTFLAGS. Это число не может превышать общую системную память, доступную для использования графики (TotalSystemMemoryAvailableForGraphics).

  • Максимальная общая системная память

    Это значение является максимальным объемом системной памяти, к которой предоставлен общий доступ к GPU. VidMm использует следующую формулу для вычисления:

    MaxSharedSystemMemory = TotalSystemMemoryAvailableForGraphics - DedicatedSystemMemory
    
  • Общая системная память

    Это значение — это объем системной памяти, к которой предоставлен общий доступ к GPU. VidMm использует следующую формулу для вычисления:

    SharedSystemMemory = MIN(MIN(SumOfCommitLimitOnAllApertureSegment, DXGK_DRIVERCAPS.ApertureSegmentCommitLimit), MaxSharedSystemMemory)
    
  • Общая память видео

    Это значение — общий объем памяти видео. VidMm использует следующую формулу для вычисления:

    TotalVideoMemory = DedicatedVideoMemory + DedicatedSystemMemory + SharedSystemMemory
    

Связанные статьи включают: