exa: the extent of the valid region is probably much larger than that of the pending damage.
- Since the default has been changed from nothing to everything.
This commit is contained in:
		
							parent
							
								
									4039603413
								
							
						
					
					
						commit
						97c1cbc702
					
				| 
						 | 
					@ -174,23 +174,13 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    /* Try to prevent destination valid region from growing too many
 | 
						    /* Try to prevent destination valid region from growing too many
 | 
				
			||||||
	     * rects by filling it up to the extents of the union of the
 | 
						     * rects by filling it up to the extents of the pending damage region.
 | 
				
			||||||
	     * destination valid region and the pending damage region.
 | 
					 | 
				
			||||||
	     */
 | 
						     */
 | 
				
			||||||
	    if (REGION_NUM_RECTS(pValidDst) > 10) {
 | 
						    if (REGION_NUM_RECTS(pValidDst) > 10) {
 | 
				
			||||||
		BoxRec box;
 | 
							BoxPtr pDamageExt = REGION_EXTENTS(pScreen, pending_damage);
 | 
				
			||||||
		BoxPtr pValidExt, pDamageExt;
 | 
					 | 
				
			||||||
		RegionRec closure;
 | 
							RegionRec closure;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pValidExt = REGION_EXTENTS(pScreen, pValidDst);
 | 
							REGION_INIT(pScreen, &closure, pDamageExt, 0);
 | 
				
			||||||
		pDamageExt = REGION_EXTENTS(pScreen, pending_damage);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		box.x1 = min(pValidExt->x1, pDamageExt->x1);
 | 
					 | 
				
			||||||
		box.y1 = min(pValidExt->y1, pDamageExt->y1);
 | 
					 | 
				
			||||||
		box.x2 = max(pValidExt->x2, pDamageExt->x2);
 | 
					 | 
				
			||||||
		box.y2 = max(pValidExt->y2, pDamageExt->y2);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		REGION_INIT(pScreen, &closure, &box, 0);
 | 
					 | 
				
			||||||
		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
 | 
							REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
 | 
				
			||||||
	    } else
 | 
						    } else
 | 
				
			||||||
		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
 | 
							REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue