xf86-video-ati: Branch 'master'
Jerome Glisse
glisse at kemper.freedesktop.org
Thu Jul 23 11:15:17 PDT 2009
src/radeon_kms.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
New commits:
commit 2afc46fa74ce7730f766a3370d323c6b59694186
Author: Jerome Glisse <jglisse at redhat.com>
Date: Thu Jul 23 20:13:15 2009 +0200
radeon: fix KMS shadowfb for r6xx and newer hw.
We need to map front buffer and also to avoid EXA initialization
when falling back to shadowfb on newer r6xx/r7xx when KMS is enabled.
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 8a14f88..148386b 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -543,7 +543,9 @@ Bool RADEONScreenInit_KMS(int scrnIndex, ScreenPtr pScreen,
pScrn->defaultVisual)) return FALSE;
miSetPixmapDepths ();
- info->directRenderingEnabled = radeon_dri2_screen_init(pScreen);
+ info->directRenderingEnabled = FALSE;
+ if (info->r600_shadow_fb == FALSE)
+ info->directRenderingEnabled = radeon_dri2_screen_init(pScreen);
front_ptr = info->FB;
@@ -689,6 +691,8 @@ Bool RADEONScreenInit_KMS(int scrnIndex, ScreenPtr pScreen,
if (info->r600_shadow_fb == TRUE) {
if (!shadowSetup(pScreen)) {
+ xf86DrvMsg(scrnIndex, X_ERROR,
+ "Shadowfb initialization failed\n");
return FALSE;
}
}
@@ -811,9 +815,11 @@ static Bool radeon_setup_kernel_mem(ScreenPtr pScreen)
xf86DrvMsg(pScreen->myNum, X_ERROR, "Memory map already initialized\n");
return FALSE;
}
- info->accel_state->exa = exaDriverAlloc();
- if (info->accel_state->exa == NULL)
- return FALSE;
+ if (info->r600_shadow_fb == FALSE) {
+ info->accel_state->exa = exaDriverAlloc();
+ if (info->accel_state->exa == NULL)
+ return FALSE;
+ }
screen_size = RADEON_ALIGN(pScrn->virtualY, 16) * stride;
{
@@ -849,6 +855,11 @@ static Bool radeon_setup_kernel_mem(ScreenPtr pScreen)
info->front_bo = radeon_bo_open(info->bufmgr, 0, screen_size,
0, RADEON_GEM_DOMAIN_VRAM, 0);
+ if (info->r600_shadow_fb == TRUE) {
+ if (radeon_bo_map(info->front_bo, 1)) {
+ ErrorF("Failed to map cursor buffer memory\n");
+ }
+ }
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Front buffer size: %dK\n", info->front_bo->size/1024);
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Remaining VRAM size (used for pixmaps): %dK\n", remain_size_bytes/1024);
More information about the xorg-commit
mailing list