summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-10-05 15:52:56 -0700
committerEric Anholt <eric@anholt.net>2007-10-11 12:17:15 -0700
commit6c485ff5bd25e9aa6a3c1eb669843e6b969d94df (patch)
tree725dc984518a5f0c745dd92576d8d1b44352ed01
parentd47cf148776d74f9035863b23eefdc2b5893af08 (diff)
Update memory manager sizing for the current set of LIFETIME_FIXED bufffers.
-rw-r--r--src/i830_memory.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 277f698c..0b046f6d 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -403,7 +403,18 @@ i830_allocator_init(ScrnInfoPtr pScrn, unsigned long offset, unsigned long size)
* physical-address allocations of cursor/overlay registers.
*/
mmsize = size;
- /* Overlay is always set up as fixed, currently. */
+
+ /* EXA area is fixed. */
+ if (pI830->useEXA) {
+ mmsize -= ROUND_TO_PAGE(3 * pScrn->displayWidth * pI830->cpp *
+ pScrn->virtualY);
+ }
+ /* Classic textures are fixed. */
+ if (pI830->allocate_classic_textures)
+ mmsize -= MB(32);
+ /* Overlay and cursors, if physical, need to be allocated outside
+ * of the kernel memory manager.
+ */
if (!OVERLAY_NOPHYSICAL(pI830) && !IS_I965G(pI830)) {
mmsize -= ROUND_TO(OVERLAY_SIZE, GTT_PAGE_SIZE);
}