* Attempt to fix solid picture acceleration with UMS. (fdo#49182, bnc#765973) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xf86-video-ati?expand=0&rev=7
66 lines
1.7 KiB
Diff
66 lines
1.7 KiB
Diff
From 6bda7ceda645e838723883d133d614def1511d16 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
|
|
Date: Thu, 3 May 2012 15:07:30 +0200
|
|
Subject: [PATCH] EXA: Attempt to fix solid picture acceleration with UMS.
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Only compile tested, but should fix
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=49182 .
|
|
|
|
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
|
|
---
|
|
src/radeon_exa_shared.c | 27 ++++++++++++++++++++++-----
|
|
1 files changed, 22 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/radeon_exa_shared.c b/src/radeon_exa_shared.c
|
|
index 28dc335..31e2870 100644
|
|
--- a/src/radeon_exa_shared.c
|
|
+++ b/src/radeon_exa_shared.c
|
|
@@ -128,19 +128,36 @@ Bool RADEONCheckBPP(int bpp)
|
|
|
|
PixmapPtr RADEONSolidPixmap(ScreenPtr pScreen, uint32_t solid)
|
|
{
|
|
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
|
|
+ RADEONInfoPtr info = RADEONPTR(pScrn);
|
|
PixmapPtr pPix = pScreen->CreatePixmap(pScreen, 1, 1, 32, 0);
|
|
- struct radeon_bo *bo;
|
|
|
|
exaMoveInPixmap(pPix);
|
|
- bo = radeon_get_pixmap_bo(pPix);
|
|
|
|
- if (radeon_bo_map(bo, 1)) {
|
|
+#if defined(XF86DRM_MODE)
|
|
+ if (info->cs) {
|
|
+ struct radeon_bo *bo;
|
|
+
|
|
+ bo = radeon_get_pixmap_bo(pPix);
|
|
+
|
|
+ if (radeon_bo_map(bo, 1)) {
|
|
+ pScreen->DestroyPixmap(pPix);
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ memcpy(bo->ptr, &solid, 4);
|
|
+ radeon_bo_unmap(bo);
|
|
+
|
|
+ return pPix;
|
|
+ }
|
|
+#endif
|
|
+
|
|
+ if (!exaDrawableIsOffscreen(&pPix->drawable)) {
|
|
pScreen->DestroyPixmap(pPix);
|
|
return NULL;
|
|
}
|
|
|
|
- memcpy(bo->ptr, &solid, 4);
|
|
- radeon_bo_unmap(bo);
|
|
+ memcpy(info->FB + exaGetPixmapOffset(pPix), &solid, 4);
|
|
|
|
return pPix;
|
|
}
|
|
--
|
|
1.7.3.4
|
|
|