VideoRAM problem on modesetting branch
km at mathcs.emory.edu
Mon Jan 29 07:11:25 PST 2007
The latest git version of the modsetting driver seems to be miscomputing
the number of scanlines for the pixmap cache on my 945GM.
It comes up with
(II) I810(0): Allocating at least 4344 scanlines for pixmap cache
(II) I810(0): Initial framebuffer allocation size: 21472 kByte
(EE) I810(0): Failed to allocate framebuffer. Is your VideoRAM set too low?
The cacheLines computation in i830_memory.c is
size = 3 * lineSize * pScrn->virtualY;
size += 1920 * 1088 * 2 * 2;
size = ROUND_TO_PAGE(size);
cacheLines = (size + lineSize - 1) / lineSize;
lineSize is 1K*4, so cacheLines is roughly 3*virtualY +2K, and with
virtualY at 768 that works out to about 4K.
Older versions of the driver used
cacheLines = (pI830Ent->pScrn_2->depth == 24) ? 256 : 384;
(II) I810(0): Allocating at least 256 scanlines for pixmap cache
(II) I810(0): Initial framebuffer allocation size: 7680 kByte
I don't think this is the whole issue, since even if I force cachelines
down so the initial allocate works on the the current code, I get
(EE) I810(0): Failed to allocate HW cursor space.
(EE) I810(0): Failed to allocate HW (ARGB) cursor space.
(EE) I810(0): Failed to allocate Overlay register space.
(EE) I810(0): Failed to allocate linear buffer space
More information about the xorg