rpms/xorg-x11-drv-ati/F-10 radeon-modeset.patch, 1.42, 1.43 xorg-x11-drv-ati.spec, 1.155, 1.156
Dave Airlie
airlied at fedoraproject.org
Thu Nov 20 06:47:10 UTC 2008
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23832
Modified Files:
radeon-modeset.patch xorg-x11-drv-ati.spec
Log Message:
* Tue Nov 18 2008 Dave Airlie <airlied at redhat.com> 6.9.0-55
- attempt to resolve DFS with a worse idea.
radeon-modeset.patch:
Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10/radeon-modeset.patch,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- radeon-modeset.patch 19 Nov 2008 04:58:20 -0000 1.42
+++ radeon-modeset.patch 20 Nov 2008 06:47:09 -0000 1.43
@@ -1,3 +1,15 @@
+commit b8264d48009b5e7b441d492f9c3fe45a6caa2f14
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Nov 20 16:44:40 2008 +1000
+
+ radeon: add gart vs vram writes
+
+commit 16ddff0560a5c7dea735516172cf5166674b1669
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Nov 20 16:37:07 2008 +1000
+
+ radeon: improve DFS performance for non-vram objects
+
commit 69cbdf394f20eeb7882184eb78a306e9d9c5fe9e
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Nov 19 14:49:44 2008 +1000
@@ -2388,10 +2400,10 @@
+#endif
diff --git a/src/radeon_bufmgr_gem.c b/src/radeon_bufmgr_gem.c
new file mode 100644
-index 0000000..9ef0887
+index 0000000..e1c2006
--- /dev/null
+++ b/src/radeon_bufmgr_gem.c
-@@ -0,0 +1,627 @@
+@@ -0,0 +1,645 @@
+/**************************************************************************
+ *
+ * Copyright © 2007-2008 Red Hat Inc.
@@ -2677,6 +2689,7 @@
+ bo_gem->refcount = 1;
+ bo_gem->pinned = 1;
+ bo_gem->gem_handle = handle;
++ bo_gem->in_vram = 1;
+
+ bo_gem->next = bufmgr_gem->bo_list;
+ bufmgr_gem->bo_list = bo_gem;
@@ -2801,6 +2814,9 @@
+ struct drm_radeon_gem_pin pin;
+ int ret;
+
++ if (domain == RADEON_GEM_DOMAIN_VRAM)
++ gem_bo->in_vram = 1;
++
+ pin.pin_domain = domain;
+ pin.handle = gem_bo->gem_handle;
+ pin.alignment = 0;
@@ -2838,7 +2854,7 @@
+ dri_bufmgr_gem *bufmgr_gem;
+ dri_bo_gem *gem_bo;
+ dri_bo *buf;
-+ int this_op_read = 0, this_op_write = 0;
++ int this_op_read = 0, this_op_gart_write = 0, this_op_vram_write = 0;
+ uint32_t read_domains, write_domain;
+ int i;
+ /* check the totals for this operation */
@@ -2870,7 +2886,9 @@
+
+ if (gem_bo->space_accounted == 0) {
+ if (write_domain == RADEON_GEM_DOMAIN_VRAM)
-+ this_op_write += buf->size;
++ this_op_vram_write += buf->size;
++ else if (write_domain == RADEON_GEM_DOMAIN_GTT)
++ this_op_gart_write += buf->size;
+ else
+ this_op_read += buf->size;
+ bos[i].new_accounted = (read_domains << 16) | write_domain;
@@ -2885,7 +2903,10 @@
+ /* moving from read to a write domain */
+ if (write_domain == RADEON_GEM_DOMAIN_VRAM) {
+ this_op_read -= buf->size;
-+ this_op_write += buf->size;
++ this_op_vram_write += buf->size;
++ } else if (write_domain == RADEON_GEM_DOMAIN_VRAM) {
++ this_op_read -= buf->size;
++ this_op_gart_write += buf->size;
+ }
+ } else if (read_domains & old_write) {
+ bos[i].new_accounted = gem_bo->space_accounted & 0xffff;
@@ -2900,17 +2921,18 @@
+ }
+
+ /* check sizes - operation first */
-+ if ((this_op_read > bufmgr_gem->gart_limit) ||
-+ (this_op_write > bufmgr_gem->vram_limit)) {
++ if ((this_op_read + this_op_gart_write > bufmgr_gem->gart_limit) ||
++ (this_op_vram_write > bufmgr_gem->vram_limit)) {
+ return BUFMGR_SPACE_OP_TO_BIG;
+ }
+
-+ if (((bufmgr_gem->vram_write_used + this_op_write) > bufmgr_gem->vram_limit) ||
-+ ((bufmgr_gem->read_used + this_op_read) > bufmgr_gem->gart_limit)) {
++ if (((bufmgr_gem->vram_write_used + this_op_vram_write) > bufmgr_gem->vram_limit) ||
++ ((bufmgr_gem->read_used + bufmgr_gem->gart_write_used + this_op_gart_write + this_op_read) > bufmgr_gem->gart_limit)) {
+ return BUFMGR_SPACE_FLUSH;
+ }
+
-+ bufmgr_gem->vram_write_used += this_op_write;
++ bufmgr_gem->gart_write_used += this_op_gart_write;
++ bufmgr_gem->vram_write_used += this_op_vram_write;
+ bufmgr_gem->read_used += this_op_read;
+ /* commit */
+ for (i = 0; i < num_bo; i++) {
@@ -2981,6 +3003,7 @@
+
+ bufmgr_gem->read_used = 0;
+ bufmgr_gem->vram_write_used = 0;
++ bufmgr_gem->gart_write_used = 0;
+
+}
+
@@ -3017,11 +3040,18 @@
+{
+ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
+
-+ gem_bo->force_gtt = 1;
++ if (!gem_bo->pinned)
++ gem_bo->force_gtt = 1;
++}
++
++int radeon_bufmgr_gem_in_vram(dri_bo *buf)
++{
++ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
++ return gem_bo->in_vram;
+}
diff --git a/src/radeon_bufmgr_gem.h b/src/radeon_bufmgr_gem.h
new file mode 100644
-index 0000000..85deb91
+index 0000000..7c32b61
--- /dev/null
+++ b/src/radeon_bufmgr_gem.h
@@ -0,0 +1,19 @@
@@ -3041,7 +3071,7 @@
+int radeon_bufmgr_gem_has_references(dri_bo *buf);
+int radeon_bufmgr_gem_force_gtt(dri_bo *buf);
+void radeon_bufmgr_gem_set_limit(dri_bufmgr *bufmgr, uint32_t domain, uint32_t limit);
-+
++int radeon_bufmgr_gem_in_vram(dri_bo *buf);
+
+#endif
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
@@ -4348,7 +4378,7 @@
+
+#endif
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
-index c759bd6..382d0db 100644
+index c759bd6..0ec78c4 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -67,7 +67,7 @@
@@ -5169,10 +5199,11 @@
}
}
-@@ -3357,11 +3488,15 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3357,11 +3488,16 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
if (hasDRI) {
info->accelDFS = info->cardType != CARD_AGP;
++ /* disable DFS by default */
+ if (info->cardType != CARD_PCIE && info->drm_mm)
+ info->accelDFS = FALSE;
+
@@ -5185,7 +5216,7 @@
/* 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.
-@@ -3390,7 +3525,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3390,7 +3526,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
#endif
#if defined(XF86DRI) && defined(USE_XAA)
@@ -5194,7 +5225,7 @@
info->dri->textureSize = -1;
if (xf86GetOptValInteger(info->Options, OPTION_FBTEX_PERCENT,
&(info->dri->textureSize))) {
-@@ -3408,7 +3543,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3408,7 +3544,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
#endif
#ifdef USE_XAA
@@ -5203,7 +5234,7 @@
return FALSE;
#endif
-@@ -3429,7 +3564,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3429,7 +3565,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
info->CurrentLayout.pixel_bytes);
int maxy = info->FbMapSize / width_bytes;
@@ -5212,7 +5243,7 @@
xf86DrvMsg(scrnIndex, X_ERROR,
"Static buffer allocation failed. Disabling DRI.\n");
xf86DrvMsg(scrnIndex, X_ERROR,
-@@ -3443,15 +3578,41 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3443,15 +3579,41 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
}
}
@@ -5257,7 +5288,7 @@
#endif
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
"Initializing fb layer\n");
-@@ -3475,7 +3636,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3475,7 +3637,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
if (info->r600_shadow_fb == FALSE) {
/* Init fb layer */
@@ -5266,7 +5297,7 @@
pScrn->virtualX, pScrn->virtualY,
pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth,
pScrn->bitsPerPixel))
-@@ -3517,8 +3678,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3517,8 +3679,10 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
/* restore the memory map here otherwise we may get a hang when
* initializing the drm below
*/
@@ -5279,7 +5310,7 @@
/* Backing store setup */
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-@@ -3528,7 +3691,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3528,7 +3692,7 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
/* DRI finalisation */
#ifdef XF86DRI
@@ -5288,7 +5319,7 @@
info->dri->pKernelDRMVersion->version_minor >= 19)
{
if (RADEONDRISetParam(pScrn, RADEON_SETPARAM_PCIGART_LOCATION, info->dri->pciGartOffset) < 0)
-@@ -3547,11 +3710,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3547,11 +3711,17 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
info->directRenderingEnabled = RADEONDRIFinishScreenInit(pScreen);
}
if (info->directRenderingEnabled) {
@@ -5307,7 +5338,7 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Direct rendering enabled\n");
-@@ -3649,10 +3818,16 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
+@@ -3649,10 +3819,16 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
return FALSE;
}
}
@@ -5325,7 +5356,7 @@
/* Provide SaveScreen & wrap BlockHandler and CloseScreen */
/* Wrap CloseScreen */
-@@ -5133,7 +5308,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5133,7 +5309,7 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
#ifdef XF86DRI
Bool CPStarted = info->cp->CPStarted;
@@ -5334,7 +5365,7 @@
DRILock(pScrn->pScreen, 0);
RADEONCP_STOP(pScrn, info);
}
-@@ -5156,8 +5331,10 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5156,8 +5332,10 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
#endif
}
@@ -5347,7 +5378,7 @@
ret = xf86SetSingleMode (pScrn, mode, RR_Rotate_0);
-@@ -5169,15 +5346,18 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+@@ -5169,15 +5347,18 @@ Bool RADEONSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
/* xf86SetRootClip would do, but can't access that here */
}
@@ -5373,7 +5404,7 @@
}
#endif
-@@ -5375,6 +5555,11 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
+@@ -5375,6 +5556,11 @@ void RADEONAdjustFrame(int scrnIndex, int x, int y, int flags)
xf86OutputPtr output = config->output[config->compat_output];
xf86CrtcPtr crtc = output->crtc;
@@ -5385,7 +5416,7 @@
#ifdef XF86DRI
if (info->cp->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
#endif
-@@ -5410,67 +5595,91 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+@@ -5410,67 +5596,91 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
"RADEONEnterVT\n");
@@ -5522,7 +5553,7 @@
}
#endif
/* this will get XVideo going again, but only if XVideo was initialised
-@@ -5482,7 +5691,7 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
+@@ -5482,7 +5692,7 @@ Bool RADEONEnterVT(int scrnIndex, int flags)
RADEONEngineRestore(pScrn);
#ifdef XF86DRI
@@ -5531,7 +5562,7 @@
RADEONCP_START(pScrn, info);
DRIUnlock(pScrn->pScreen);
}
-@@ -5505,17 +5714,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+@@ -5505,17 +5715,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
"RADEONLeaveVT\n");
#ifdef XF86DRI
if (RADEONPTR(pScrn)->directRenderingInited) {
@@ -5561,7 +5592,7 @@
/* Make sure 3D clients will re-upload textures to video RAM */
if (info->dri->textureSize) {
-@@ -5531,6 +5741,11 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+@@ -5531,6 +5742,11 @@ void RADEONLeaveVT(int scrnIndex, int flags)
i = list[i].next;
} while (i != 0);
}
@@ -5573,7 +5604,7 @@
}
#endif
-@@ -5551,10 +5766,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
+@@ -5551,10 +5767,18 @@ void RADEONLeaveVT(int scrnIndex, int flags)
xf86_hide_cursors (pScrn);
@@ -5595,7 +5626,7 @@
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
"Ok, leaving now...\n");
-@@ -5599,7 +5822,8 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+@@ -5599,7 +5823,8 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
#endif /* USE_XAA */
if (pScrn->vtSema) {
@@ -5605,7 +5636,7 @@
}
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-@@ -5634,6 +5858,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
+@@ -5634,6 +5859,12 @@ static Bool RADEONCloseScreen(int scrnIndex, ScreenPtr pScreen)
info->DGAModes = NULL;
xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
"Unmapping memory\n");
@@ -6467,7 +6498,7 @@
}
#endif
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
-index 62224d0..0976963 100644
+index 62224d0..d88a72f 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -74,21 +74,73 @@ FUNC_NAME(RADEONSync)(ScreenPtr pScreen, int marker)
@@ -6856,12 +6887,45 @@
OUT_ACCEL_REG(RADEON_SRC_Y_X, (srcY << 16) | srcX);
OUT_ACCEL_REG(RADEON_DST_Y_X, (dstY << 16) | dstX);
OUT_ACCEL_REG(RADEON_DST_HEIGHT_WIDTH, (h << 16) | w);
-@@ -365,6 +547,107 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
+@@ -365,6 +547,174 @@ RADEONBlitChunk(ScrnInfoPtr pScrn, uint32_t datatype, uint32_t src_pitch_offset,
RADEON_WAIT_2D_IDLECLEAN | RADEON_WAIT_DMA_GUI_IDLE);
FINISH_ACCEL();
}
+
+static Bool
++RADEON_DFS_CS2(PixmapPtr pSrc, int x, int y, int w, int h,
++ char *dst, int dst_pitch)
++{
++ RINFO_FROM_SCREEN(pSrc->drawable.pScreen);
++ struct radeon_exa_pixmap_priv *driver_priv;
++ int src_pitch = exaGetPixmapPitch(pSrc);
++ int bpp = pSrc->drawable.bitsPerPixel;
++ uint32_t src_offset;
++ /* force into GTT? */
++
++ if (!info->accelDFS)
++ return FALSE;
++
++ driver_priv = exaGetPixmapDriverPrivate(pSrc);
++
++ radeon_bufmgr_gem_force_gtt(driver_priv->bo);
++ radeon_bufmgr_gem_wait_rendering(driver_priv->bo);
++
++ dri_bo_map(driver_priv->bo, 0);
++
++ src_offset = (x * bpp / 8) + (y * src_pitch);
++ w *= bpp / 8;
++
++ while (h--) {
++ memcpy(dst, driver_priv->bo->virtual + src_offset, w);
++ src_offset += src_pitch;
++ dst += dst_pitch;
++ }
++ dri_bo_unmap(driver_priv->bo);
++ return TRUE;
++}
++
++static Bool
+RADEON_DFS_CS(PixmapPtr pSrc, int x, int y, int w, int h,
+ char *dst, int dst_pitch)
+{
@@ -6876,12 +6940,21 @@
+ int src_pitch = exaGetPixmapPitch(pSrc);
+ dri_bo *cur_scratch;
+ uint32_t src_pitch_offset;
-+
++ struct radeon_space_check bos[3];
++ int retry_count;
++
+ if (!info->accelDFS)
+ return FALSE;
+
+ driver_priv = exaGetPixmapDriverPrivate(pSrc);
+
++ if (radeon_bufmgr_gem_has_references(driver_priv->bo))
++ RADEONCPFlushIndirect(pScrn, 0);
++
++ /* if we haven't put this buffer in VRAM then just force gtt and memcpy from it */
++ if (!radeon_bufmgr_gem_in_vram(driver_priv->bo)) {
++ return RADEON_DFS_CS2(pSrc, x, y, w, h, dst, dst_pitch);
++ }
+ RADEONGetDatatypeBpp(bpp, &datatype);
+ scratch_bo[0] = scratch_bo[1] = NULL;
+ for (i = 0; i < 2; i++) {
@@ -6889,7 +6962,32 @@
+ if (!scratch_bo[i])
+ goto fail;
+ }
-+
++
++retry:
++ i = 0;
++ bos[i].buf = driver_priv->bo;
++ bos[i].read_domains = RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM;
++ bos[i].write_domain = 0;
++ i++;
++ bos[i].buf = scratch_bo[0];
++ bos[i].read_domains = 0;
++ bos[i].write_domain = RADEON_GEM_DOMAIN_GTT;
++ i++;
++ bos[i].buf = scratch_bo[1];
++ bos[i].read_domains = 0;
++ bos[i].write_domain = RADEON_GEM_DOMAIN_GTT;
++ i++;
++
++ ret = dri_bufmgr_check_aperture_space(bos, i);
++ if (ret == BUFMGR_SPACE_OP_TO_BIG)
++ goto fail;
++ if (ret == BUFMGR_SPACE_FLUSH) {
++ RADEONCPFlushIndirect(pScrn, 1);
++ retry_count++;
++ if (retry_count == 2)
++ goto fail;
++ goto retry;
++ }
+
+ /* we want to blit from the BO to the scratch and memcpy out of the scratch */
+ {
@@ -6964,13 +7062,15 @@
#endif
static Bool
-@@ -389,12 +672,16 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -389,12 +739,18 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
TRACE;
#ifdef ACCEL_CP
+
-+ if (info->new_cs)
++ if (info->new_cs) {
+ return RADEON_DFS_CS(pSrc, x, y, w, h, dst, dst_pitch);
++ }
++
/*
* Try to accelerate download. Use an indirect buffer as scratch space,
* blitting the bits to one half while copying them out of the other one and
@@ -6982,7 +7082,7 @@
RADEONGetPixmapOffsetPitch(pSrc, &src_pitch_offset) &&
(scratch = RADEONCPGetBuffer(pScrn)))
{
-@@ -409,7 +696,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -409,7 +765,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
RADEON_SWITCH_TO_2D();
/* Kick the first blit as early as possible */
@@ -6992,7 +7092,7 @@
x, y, 0, 0, w, hpass);
FLUSH_RING();
-@@ -436,7 +724,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
+@@ -436,7 +793,8 @@ FUNC_NAME(RADEONDownloadFromScreen)(PixmapPtr pSrc, int x, int y, int w, int h,
/* Prepare next blit if anything's left */
if (hpass) {
scratch_off = scratch->total/2 - scratch_off;
@@ -7002,7 +7102,7 @@
x, y, 0, 0, w, hpass);
}
-@@ -543,14 +832,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -543,14 +901,17 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
info->accel_state->exa->UploadToScreen = FUNC_NAME(RADEONUploadToScreen);
info->accel_state->exa->DownloadFromScreen = FUNC_NAME(RADEONDownloadFromScreen);
@@ -7023,7 +7123,7 @@
#ifdef RENDER
if (info->RenderAccel) {
-@@ -560,7 +852,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -560,7 +921,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
else if (IS_R300_3D || IS_R500_3D) {
if ((info->ChipFamily < CHIP_FAMILY_RS400)
#ifdef XF86DRI
@@ -7032,7 +7132,7 @@
#endif
) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
-@@ -595,6 +887,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
+@@ -595,6 +956,16 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
}
#endif
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-10/xorg-x11-drv-ati.spec,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -r1.155 -r1.156
--- xorg-x11-drv-ati.spec 19 Nov 2008 04:58:21 -0000 1.155
+++ xorg-x11-drv-ati.spec 20 Nov 2008 06:47:09 -0000 1.156
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.9.0
-Release: 54%{?dist}
+Release: 55%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -82,6 +82,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Tue Nov 18 2008 Dave Airlie <airlied at redhat.com> 6.9.0-55
+- attempt to resolve DFS with a worse idea.
+
* Tue Nov 18 2008 Dave Airlie <airlied at redhat.com> 6.9.0-54
- radeon attempt to fix suspend/resume
More information about the scm-commits
mailing list