Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Is there a way to check the size of the video memory? Specifically, is there one that works accurately for both integrated GPU's as well as PCI/AGP graphics cards?

Many integrated GPU's have dynamically allocated memory, so the solution would hopefully return either the maximum available video memory or the currently allocated amount. For stand-alone NVidia or ATI cards it would obviously return the total amount of physical GPU RAM.

lspci -v does output memory figures, but I do not believe it is the video memory. I suspect the figure reported is some system memory allocation or block or channel size, but I don't know for sure. You can see in these test results that lspci was wrong in 5 of the 6 tests.

share|improve this question
    
So because you do not believe it is the figure, you do not accept answers that suggest it? –  RolandiXor Aug 17 '11 at 16:18
5  
@Roland, perhaps my wording is wrong. I am no expert regarding lspci output, but as you can see in the test results link, it does not give the total size of video memory, and hence does not answer the question. –  drgrog Aug 19 '11 at 0:48
add comment

4 Answers 4

nvidia-settings does this for cards using the proprietary nvidia driver. It may be inaccurate but it is correct for my particular card. I don't know of any other userspace tool that specifically queries the video driver.

You can also try sudo lshw -class display but I can't guarantee that it will be any more accurate than lspci. Also it reports memory ranges, not amounts, so you'd have to do some math.

I find that grep -i memory /var/log/Xorg.0.log correctly reports the VRAM on my system's card. It does not work for my laptop using driver radeon with integrated Radeon Mobility device.

share|improve this answer
    
Thanks, but nvidia-settings is card-specific. And yes, I believe lshw reports the same system memory resources as lspci, only lshw reports them as address ranges instead of sizes. –  drgrog Jun 5 '11 at 13:48
1  
I should have thought to go check phoronix before trying to answer this. On my system my 768MB G80 video card is reported as 256MB in lspci, as you note. The folks in the forum have said that this is actually the aperture which is visible over the PCI bus, which makes sense. Doing a 'dmesg |grep VGA' gives the same problem on my system, though I've heard it works correctly for others. The memory is reported correctly in /var/log/Xorg.0.log: 'NVIDIA(0): Memory: 786432 kBytes'. From this forum post: phoronix.com/forums/…! –  koanhead Jun 6 '11 at 0:00
    
It seems as if I will have to write my own script. So far grep kB /var/log/Xorg.0.log or grep -i mem /var/log/Xorg.0.log give me the most accurate and workable data for nvidia cards and VirtualBox VMs. I do not have any ATI cards to test, and have not got around to testing my integrated intel cards or VMware VMs. –  drgrog Jun 6 '11 at 1:27
    
fglrx: grep kByte will result in something like this: Video RAM: 1048576 kByte, Type: GDDR5, grepping for just kB will also show some VESA items. –  taneli Aug 11 '11 at 13:00
    
xserver-xorg-video-ati: grep "mem size" will result in something like this: RADEON(0): mem size init: gart size :1fdff000 vram size: s:40000000 visible:f6f6000 which is the best I could get out of it, where memory size is in hex after s: –  taneli Aug 11 '11 at 13:02
show 1 more comment

This is the o/p of dmesg with a ATI 6370HD discrete 1G graphics card. "Detected VRAM RAM=1024M, BAR=256M", check for this line.

sourajit@sourajit:~$ sudo dmesg | grep drm
[    6.126816] [drm] Initialized drm 1.1.0 20060810
[    6.541907] [drm] radeon defaulting to kernel modesetting.
[    6.541910] [drm] radeon kernel modesetting enabled.
[    6.542102] [drm] initializing kernel modesetting (CEDAR 0x1002:0x68E4 0x17AA:0x397A).
[    6.542142] [drm] register mmio base: 0xE0600000
[    6.542143] [drm] register mmio size: 131072
[    7.406572] [drm] Detected VRAM RAM=1024M, BAR=256M
[    7.406576] [drm] RAM width 64bits DDR
[    7.406654] [drm] radeon: 1024M of VRAM memory ready
[    7.406655] [drm] radeon: 512M of GTT memory ready.
share|improve this answer
    
This is the one that ended up working for me, slight tweak just to filter out more of dmesg: dmesg | grep VRAM –  Ron E Jun 26 at 15:09
add comment

There is a program called hardinfo, available in the Software Center, which will list out each video card (under the Devices drop-down, in the PCI Devices category) and the specs for each card, including the memory and vendor/model.

share|improve this answer
    
Thanks Nathan, but hardinfo is just a gui frontend for the information obtained from lshw and lspci etc. I remember this being suggested before, although it seems the answer has been removed by the author. –  drgrog Jul 16 '11 at 6:05
add comment
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 

My system outputs

Memory at d0000000 (64-bit, non-prefetchable) [size=4M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]

Which means it has 256 MB of memory dedicated to the integrated video card.

Update: however, beware if you use one of the Intel HD Graphics cards. Its memory is usually shared with the main RAM of the system and it is dynamic, which means it increases and decreases on demand. In my system, I later discovered that it can grow until 1,7 GB, and this value seems standard if you have a system with 4,0 GB of RAM (my case). If you use a graphic card like this, the above output won't be of much help.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.