Correct some bugs causing performance issues in the "Smart" scheme.
This commit is contained in:
		
							parent
							
								
									8738bc295b
								
							
						
					
					
						commit
						005529a1c9
					
				|  | @ -1,3 +1,8 @@ | |||
| 2006-04-27  Eric Anholt  <anholt@FreeBSD.org> | ||||
| 
 | ||||
| 	* exa/exa_migration.c: (exaPixmapShouldBeInFB), (exaDoMigration): | ||||
| 	Correct some bugs causing performance issues in the "Smart" scheme. | ||||
| 
 | ||||
| 2006-04-27  Eric Anholt  <anholt@FreeBSD.org> | ||||
| 
 | ||||
| 	* exa/exa_accel.c: (exaCopyNtoN), (exaSolidBoxClipped), | ||||
|  |  | |||
|  | @ -72,7 +72,8 @@ exaPixmapIsDirty (PixmapPtr pPix) | |||
| 
 | ||||
| /**
 | ||||
|  * Returns TRUE if the pixmap is either pinned in FB, or has a sufficient score | ||||
|  * to be considered "should be in framebuffer". | ||||
|  * to be considered "should be in framebuffer".  That's just anything that has | ||||
|  * had more acceleration than fallbacks, or has no score yet. | ||||
|  * | ||||
|  * Only valid if using a migration scheme that tracks score. | ||||
|  */ | ||||
|  | @ -84,7 +85,7 @@ exaPixmapShouldBeInFB (PixmapPtr pPix) | |||
|     if (exaPixmapIsPinned (pPix)) | ||||
| 	return TRUE; | ||||
| 
 | ||||
|     return pExaPixmap->score >= EXA_PIXMAP_SCORE_INIT; | ||||
|     return pExaPixmap->score >= 0; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -486,7 +487,11 @@ exaDoMigration (ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel) | |||
| 	    if (pixmaps[i].as_dst && !exaPixmapShouldBeInFB (pixmaps[i].pPix) && | ||||
| 		!exaPixmapIsDirty (pixmaps[i].pPix)) | ||||
| 	    { | ||||
| 		can_accel = FALSE; | ||||
| 		for (i = 0; i < npixmaps; i++) { | ||||
| 		    if (!exaPixmapIsDirty (pixmaps[i].pPix)) | ||||
| 			exaMoveOutPixmap (pixmaps[i].pPix); | ||||
| 		} | ||||
| 		return; | ||||
| 	    } | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue