summaryrefslogtreecommitdiff
path: root/src/radeon_exa.c
diff options
context:
space:
mode:
authorairlied <airlied@optimus.localdomain>2006-11-28 17:26:10 +1100
committerairlied <airlied@optimus.localdomain>2006-11-28 17:26:10 +1100
commitba047ae863aac869595a31ea94f102084636fd29 (patch)
treeaf641275e6530d89e3bbddc467069997eedb6ab8 /src/radeon_exa.c
parent0d42cab2d889070ab6de05990e2b19724595f7af (diff)
radeon: initial move framebuffer away from zero prep.
In theory the driver should be able to handle the front buffer not at VRAM 0 In practice it didn't.. this is cleanup for at least XAA parts of the driver to allow for the frontbuffer to move. It has to re-organise a large part of ScreenInit so things happen in the correct order otherwise some things get setup in-correctly. (not sure EXA with fb not at 0 works yet...)
Diffstat (limited to 'src/radeon_exa.c')
-rw-r--r--src/radeon_exa.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 7e57fe7..0f4c42e 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -394,16 +394,13 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
else
screen_size = pScrn->virtualY * byteStride;
- info->exa->memoryBase = info->FB + pScrn->fbOffset;
+ info->exa->memoryBase = info->FB + pScrn->fbOffset + info->FbSecureSize;
info->exa->memorySize = info->FbMapSize - info->FbSecureSize;
info->exa->offScreenBase = screen_size;
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Allocating from a screen of %ld kb\n",
info->exa->memorySize / 1024);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Will use %d kb for front buffer at offset 0x%08x\n",
- screen_size / 1024, 0);
/* Reserve static area for hardware cursor */
if (!xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE)) {
@@ -425,6 +422,9 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
info->frontOffset = 0;
info->frontPitch = pScrn->displayWidth;
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Will use %d kb for front buffer at offset 0x%08x\n",
+ screen_size / 1024, info->frontOffset);
RADEONDRIAllocatePCIGARTTable(pScreen);
if (info->cardType==CARD_PCIE)
@@ -483,9 +483,12 @@ Bool RADEONSetupMemEXA (ScreenPtr pScreen)
/* Minimum texture size is for 2 256x256x32bpp textures */
info->textureSize = 0;
}
- }
+ } else
#endif /* XF86DRI */
-
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Will use %d kb for front buffer at offset 0x%08x\n",
+ screen_size / 1024, 0);
+
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Will use %ld kb for X Server offscreen at offset 0x%08lx\n",
(info->exa->memorySize - info->exa->offScreenBase) /