glamor_copyarea: Return earlier if have zero nbox.
Almost all callers will check whether the regions is empty before call to this internal API, but it seems the glamor_composite_with_copy may call into here with a zero nbox. A little weird, as the miComputeCompositeRegion return a Non-NULL, but the region is empty. Also remove a unecessary glflush. So let's check it here. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									20cbaa61cd
								
							
						
					
					
						commit
						1f83411c9a
					
				|  | @ -150,7 +150,6 @@ glamor_copy_n_to_n_textured(DrawablePtr src, | |||
| 	int src_x_off, src_y_off, dst_x_off, dst_y_off; | ||||
| 	enum glamor_pixmap_status src_status = GLAMOR_NONE; | ||||
| 	GLfloat dst_xscale, dst_yscale, src_xscale, src_yscale; | ||||
| 	int flush_needed = 0; | ||||
| 	int alu = GXcopy; | ||||
| 
 | ||||
| 	src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); | ||||
|  | @ -172,8 +171,7 @@ glamor_copy_n_to_n_textured(DrawablePtr src, | |||
| 
 | ||||
| 		src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); | ||||
| #endif | ||||
| 	} else | ||||
| 		flush_needed = 1; | ||||
| 	} | ||||
| 
 | ||||
| 	if (gc) { | ||||
| 		if (!glamor_set_planemask(dst_pixmap, gc->planemask)) | ||||
|  | @ -265,8 +263,6 @@ glamor_copy_n_to_n_textured(DrawablePtr src, | |||
| #endif | ||||
| 	dispatch->glUseProgram(0); | ||||
| 	/* The source texture is bound to a fbo, we have to flush it here. */ | ||||
| 	if (flush_needed) | ||||
| 		dispatch->glFlush(); | ||||
| 	glamor_put_dispatch(glamor_priv); | ||||
| 	return TRUE; | ||||
| } | ||||
|  | @ -297,12 +293,13 @@ _glamor_copy_n_to_n(DrawablePtr src, | |||
| 	int overlaped = 0; | ||||
| 	Bool ret = FALSE; | ||||
| 
 | ||||
| 	if (nbox == 0) | ||||
| 		return TRUE; | ||||
| 	dst_pixmap = glamor_get_drawable_pixmap(dst); | ||||
| 	dst_pixmap_priv = glamor_get_pixmap_private(dst_pixmap); | ||||
| 	src_pixmap = glamor_get_drawable_pixmap(src); | ||||
| 	src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); | ||||
| 	screen = dst_pixmap->drawable.pScreen; | ||||
| 
 | ||||
| 	glamor_priv = glamor_get_screen_private(dst->pScreen); | ||||
| 
 | ||||
| 	if (!GLAMOR_PIXMAP_PRIV_HAS_FBO(dst_pixmap_priv)) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue