https://msdn.microsoft.com/en-us/library/windows/hardware/ff538322 (v=vs.85). aspx
The video memory manager must calculate the total amount of graphics memory before it can report a accurate account of GR Aphics memory. The following list of items describes how the video memory manager calculates the graphics memory numbers:
The graphics memory manager must calculate all the video memory before reporting the exact memory. As below, total system memory
Total amount of system memory which is accessible to the operating system. Memory that the BIOS allocates does not appear in this total-system-memory number. For example, a computer with a 1 GB DIMM (so is, 1024x768) and that also have a BIOS that reserves 1 MB of memory appears To has 1023 MB of system memory. Total system memory, which is the available for graphics use (memory to RAM, [64M,XM])
Total amount of system memory, which is dedicated, or shared to the GPU. This number is calculated as follows:
Totalsystemmemoryavailableforgraphics = MAX ((TOTALSYSTEMMEMORY/2), 64MB)
Commit limit on aperture segment
The amount of system memory, the video memory manager allows display miniport drivers to pin down (which is, the amount of system memory that display miniport drivers can memory map through a aperture segment) for GPU use at any given Insta Nt. The total amount of system memory was allocated for the GPU might exceed the commit limit greatly; However, the video memory manager ensures that only up to a commit limit amount was actually resident in an aperture segmen T at any one time.
By default, the commit limit in a particular aperture segment is the size of this segment. The display miniport driver can specify a different commit limit in the Commitlimit member of the dxgk_segment Descriptor Structure When the driver describes the segment. A commit limit, that's specified in such a, applies only to the particular segment that the driver describes.
In addition to per-segment commit limit, there was a global commit limit on all aperture segments. This global commit limit was also referred to as shared system memory. This value was computed by the video memory manager. However, although the display miniport driver can reduce this value to a lower value in theaperturesegmentcommitlimit< /c2> member of the DXGK_DRIVERCAPS structure, we don't recommend this practice.
The video memory manager does a display miniport driver to violate the Per-segment commit limit nor the global C Ommit limit. If a particular segment have a commit limit of 1 GB but the global commit limit is a-MB, the video memory manager does no T allow a display miniport driver to map more than-MB of system memory into that segment. Dedicated video memory
Sum of the size of all memory segments for which the display miniport driver do not specify the Populatedfromsystemme Mory member in thedxgk_segmentflags structure for each segment. Dedicated system memory (dedicated systems RAM)
Sum of the size of all memory segments for which the display miniport driver specifies the populatedfromsystemmemory member in thedxgk_segmentflags structure for each segment. This number cannot was greater than the total system memory, which is available for graphics use (Totalsystemmemoryavailablef Orgraphics). Shared system memory
The maximum amount of system memory, which is a shared to the GPU. This number is calculated as follows:
Maxsharedsystemmemory = Totalsystemmemoryavailableforgraphics-dedicatedsystemmemory
The amount of system memory that is shared to the GPU. This number is calculated as follows:
sharedsystemmemory = min (min (sumofcommitlimitonallaperturesegment, dxgk_drivercaps. Aperturesegmentcommitlimit), Maxsharedsystemmemory)
Total video memory (always available graphics RAM)
The total amount of video memory. This number is calculated as follows:
Totalvideomemory = dedicatedvideomemory + dedicatedsystemmemory + sharedsystemmemory