Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:PowerPC
xf86-video-ati
U_EXA-Attempt-to-fix-solid-picture-acceleration...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File U_EXA-Attempt-to-fix-solid-picture-acceleration-with-U.patch of Package xf86-video-ati
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor