[PATCH xf86-video-amdgpu] Only map front buffer if necessary for ShadowFB

Michel Dänzer michel at daenzer.net
Mon Jan 25 23:14:04 PST 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Otherwise the front buffer may not be accessible by the CPU, because Mesa
sets the AMDGPU_GEM_CREATE_NO_CPU_ACCESS flag for tiled buffers, because
accessing tiled buffers with the CPU makes little sense.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/amdgpu_kms.c      | 3 ++-
 src/drmmode_display.c | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
index e090c25..4475bff 100644
--- a/src/amdgpu_kms.c
+++ b/src/amdgpu_kms.c
@@ -1431,7 +1431,8 @@ static Bool amdgpu_setup_kernel_mem(ScreenPtr pScreen)
 			return FALSE;
 		}
 
-		if (amdgpu_bo_map(pScrn, info->front_buffer)) {
+		if (info->shadow_fb &&
+		    amdgpu_bo_map(pScrn, info->front_buffer) != 0) {
 			ErrorF("Failed to map front buffer memory\n");
 			return FALSE;
 		}
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3f015f9..fe1d17e 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1741,7 +1741,7 @@ static Bool drmmode_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
 		goto fail;
 	}
 
-	if (amdgpu_bo_map(scrn, info->front_buffer)) {
+	if (info->shadow_fb && amdgpu_bo_map(scrn, info->front_buffer) != 0) {
 		xf86DrvMsg(scrn->scrnIndex, X_ERROR,
 			   "Failed to map front buffer memory\n");
 		goto fail;
-- 
2.7.0.rc3



More information about the xorg-driver-ati mailing list