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 fedora-extras-commits mailing list