rpms/xorg-x11-drv-ati/devel radeon-modeset-fixes.patch, NONE, 1.1 xorg-x11-drv-ati.spec, 1.172, 1.173 radeon-enable-dfs.patch, 1.1, NONE radeon-modeset-fix-nomodeset.patch, 1.1, NONE
Dave Airlie
airlied at fedoraproject.org
Tue Apr 7 01:41:00 UTC 2009
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30679
Modified Files:
xorg-x11-drv-ati.spec
Added Files:
radeon-modeset-fixes.patch
Removed Files:
radeon-enable-dfs.patch radeon-modeset-fix-nomodeset.patch
Log Message:
* Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-9
- cache mmaps for objects until remove time.
radeon-modeset-fixes.patch:
--- NEW FILE radeon-modeset-fixes.patch ---
diff --git a/src/radeon_bufmgr_gem.c b/src/radeon_bufmgr_gem.c
index 6005e51..51a27f8 100644
--- a/src/radeon_bufmgr_gem.c
+++ b/src/radeon_bufmgr_gem.c
@@ -75,6 +75,7 @@ typedef struct _dri_bo_gem {
int force_gtt;
int pinned;
int touched;
+ void *priv_map;
uint32_t space_accounted;
} dri_bo_gem;
@@ -146,8 +147,8 @@ static void dri_gem_bo_free(dri_bo *bo)
dri_bo_gem *gem_bo = (dri_bo_gem *)bo, *trav, *prev;
struct drm_gem_close args;
- if (gem_bo->map_count)
- munmap(gem_bo->bo.virtual, gem_bo->bo.size);
+ if (gem_bo->priv_map)
+ munmap(gem_bo->priv_map, gem_bo->bo.size);
/* close object */
args.handle = gem_bo->gem_handle;
@@ -200,18 +201,21 @@ dri_gem_bo_map(dri_bo *bo, int write_enable)
if (gem_bo->map_count++ != 0)
return 0;
- args.handle = gem_bo->gem_handle;
- args.offset = 0;
- args.size = gem_bo->bo.size;
+ if (!gem_bo->priv_map) {
+ args.handle = gem_bo->gem_handle;
+ args.offset = 0;
+ args.size = gem_bo->bo.size;
- ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_MMAP, &args, sizeof(args));
- if (ret)
- return ret;
+ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_MMAP, &args, sizeof(args));
+ if (ret)
+ return ret;
- ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bufmgr_gem->fd, args.addr_ptr);
- if (ptr == MAP_FAILED)
- return -errno;
- gem_bo->bo.virtual = ptr;
+ ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bufmgr_gem->fd, args.addr_ptr);
+ if (ptr == MAP_FAILED)
+ return -errno;
+ gem_bo->priv_map = ptr;
+ }
+ gem_bo->bo.virtual = gem_bo->priv_map;
return ret;
}
@@ -224,8 +228,7 @@ dri_gem_bo_unmap(dri_bo *buf)
if (--gem_bo->map_count > 0)
return 0;
- munmap(gem_bo->bo.virtual, gem_bo->bo.size);
- gem_bo->bo.virtual = 0;
+ gem_bo->bo.virtual = NULL;
return 0;
}
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 64b5937..347ab44 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -471,7 +471,6 @@ Bool radeon_update_dri_buffers(ScreenPtr pScreen)
if (!success)
return FALSE;
- radeon_update_sarea(pScrn, sarea);
radeon_update_screen_private(pScrn, sarea);
return TRUE;
}
@@ -1707,8 +1706,6 @@ Bool RADEONDRIDoMappings(ScreenPtr pScreen)
return FALSE;
}
- radeon_update_sarea(pScrn, pSAREAPriv);
-
/* DRIScreenInit adds the frame buffer
map, but we need it as well */
{
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 1c9d5d9..3808c34 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -3622,9 +3622,6 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
info->accelDFS = xf86ReturnOptValBool(info->Options, OPTION_ACCEL_DFS,
info->cardType != CARD_AGP);
- if (info->drm_mm)
- info->accelDFS = FALSE;
-
/* Reserve approx. half of offscreen memory for local textures by
* default, can be overridden with Option "FBTexPercent".
* Round down to a whole number of texture regions.
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -r1.172 -r1.173
--- xorg-x11-drv-ati.spec 7 Apr 2009 00:54:17 -0000 1.172
+++ xorg-x11-drv-ati.spec 7 Apr 2009 01:40:30 -0000 1.173
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.12.1
-Release: 8%{?dist}
+Release: 9%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -16,8 +16,7 @@
Patch0: radeon-6.12.0-git-fixes.patch
Patch1: radeon-modeset.patch
-Patch2: radeon-modeset-fix-nomodeset.patch
-Patch3: radeon-enable-dfs.patch
+Patch2: radeon-modeset-fixes.patch
#Patch4: radeon-6.9.0-remove-limit-heuristics.patch
Patch5: radeon-6.9.0-panel-size-sanity.patch
Patch6: radeon-6.9.0-bgnr-enable.patch
@@ -45,7 +44,6 @@
%patch0 -p1 -b .fixes
%patch1 -p1 -b .modeset
%patch2 -p1 -b .modeset-fix
-%patch3 -p1 -b .kms-dfs
#patch4 -p1 -b .remove-limit-heuristics
#%patch5 -p1 -b .panel-size
%patch6 -p1 -b .bgnr
@@ -80,6 +78,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-9
+- cache mmaps for objects until remove time.
+
* Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-8
- re-enable DFS for kms
--- radeon-enable-dfs.patch DELETED ---
--- radeon-modeset-fix-nomodeset.patch DELETED ---
More information about the scm-commits
mailing list