Graphics Memory Reporting in Vista

Vista manages graphics memory in a much more sophisticated way than XP. In XP, the graphics driver was responsible for this; XP drivers report the amount of graphics memory however they want. In Vista, the WDDM manages graphics memory and knows much more about it. The new DXGI API’s report three types (or categories) of graphics memory

Dedicated Video Memory: This is memory dedicated to the GPU. This can either be on-board memory (i.e. discreet or physical graphics memory, often called local graphics memory), or system memory reserved by the BIOS for graphics (usually called a BIOS ‘carve out’).

Dedicated System Memory (sometimes called “System Video Memory” or SVM):  This is system memory that was allocated by the driver and is dedicated to the GPU. This memory will never be released back to the OS. This memory is usually used to ensure a minimum amount of memory is available to the GPU. This is allocated once and exactly once when the driver starts. It cannot be changed without a PnP adapter restart.

Shared System Memory:  This usually makes up the bulk of system memory available to the GPU and is “allocated” on demand when needed. Shared system memory is really just regular application VAD which are probe and locked and made visible to the GPU. VidMm will only allow up to N bytes to be pinned down simultaneously where N is: ((Total System Memory – 512)/2 – Dedicated System Memory)

These three values are surfaced several places in the Vista UI. Here is an example from the “View and Print” details page from the Performance Information and Tools control panel:

Graphics memory reporting in Vista

 

The DX folks have recently posted a really good white paper titled Graphics Memory Reporting through WDDM that covers this in great detail. There is a lot mor einfo avaible here.