@ -917,6 +917,7 @@ drm_output_propose_state(struct weston_output *output_base, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								force_renderer  =  true ;   
					 
					 
					 
								force_renderer  =  true ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							}   
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							/* Now try to place it on a plane if we can. */   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							if  ( ! force_renderer )  {   
					 
					 
					 
							if  ( ! force_renderer )  {   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								drm_debug ( b ,  " \t \t \t [plane] started with zpos % " PRIu64 " \n " ,   
					 
					 
					 
								drm_debug ( b ,  " \t \t \t [plane] started with zpos % " PRIu64 " \n " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									      current_lowest_zpos ) ;   
					 
					 
					 
									      current_lowest_zpos ) ;   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -929,38 +930,23 @@ drm_output_propose_state(struct weston_output *output_base, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								current_lowest_zpos  =  ps - > zpos ;   
					 
					 
					 
								current_lowest_zpos  =  ps - > zpos ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								drm_debug ( b ,  " \t \t \t [plane] next zpos to use % " PRIu64 " \n " ,   
					 
					 
					 
								drm_debug ( b ,  " \t \t \t [plane] next zpos to use % " PRIu64 " \n " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									      current_lowest_zpos ) ;   
					 
					 
					 
									      current_lowest_zpos ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
							}  else  if  ( ! ps  & &  ! renderer_ok )  {   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
								if  ( ! weston_view_is_opaque ( ev ,  & clipped_view ) )   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									pixman_region32_intersect ( & clipped_view ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
												  & clipped_view ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
												  & ev - > transform . opaque ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								/* the visible-and-opaque region of this view
   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								 *  will  occlude  views  underneath  it  */   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								pixman_region32_union ( & occluded_region ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
										      & occluded_region ,   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
										      & clipped_view ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								pixman_region32_fini ( & clipped_view ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								continue ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							}   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							/* We have been assigned to the primary (renderer) plane:
   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							 *  check  if  this  is  OK ,  and  add  ourselves  to  the  renderer   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							 *  region  if  so .  */   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							if  ( ! renderer_ok )  {   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
								drm_debug ( b ,  " \t \t [view] failing state generation:  "   
					 
					 
					 
								drm_debug ( b ,  " \t \t [view] failing state generation:  "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									      " placing view %p to renderer not allowed \n " ,   
					 
					 
					 
									      " placing view %p to renderer not allowed \n " ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									  ev ) ;   
					 
					 
					 
									  ev ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								pixman_region32_fini ( & clipped_view ) ;   
					 
					 
					 
								pixman_region32_fini ( & clipped_view ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								goto  err_region ;   
					 
					 
					 
								goto  err_region ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							}   
					 
					 
					 
							}  else  if  ( ! ps )  {   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
								/* clipped_view contains the area that's going to be
   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
							/* clipped_view contains the area that's going to be visible
   
					 
					 
					 
								 *  visible  on  screen ;  add  this  to  the  renderer  region  */   
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					 
							 *  on  screen ;  add  this  to  the  renderer  region  */   
					 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 
					 
					 
								pixman_region32_union ( & renderer_region ,   
					 
					 
					 
								pixman_region32_union ( & renderer_region ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
										      & renderer_region ,   
					 
					 
					 
										      & renderer_region ,   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
										      & clipped_view ) ;   
					 
					 
					 
										      & clipped_view ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
								drm_debug ( b ,  " \t \t \t \t [view] view %p will be placed  "   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
									     " on the renderer \n " ,  ev ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
							}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							/* Opaque areas of our clipped view occlude areas behind it;
   
					 
					 
					 
							/* Opaque areas of our clipped view occlude areas behind it;
   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							 *  however ,  anything  not  in  the  opaque  region  ( which  is  the   
					 
					 
					 
							 *  however ,  anything  not  in  the  opaque  region  ( which  is  the   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							 *  entire  clipped  area  if  the  whole  view  is  known  to  be   
					 
					 
					 
							 *  entire  clipped  area  if  the  whole  view  is  known  to  be   
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					 
					@ -975,9 +961,6 @@ drm_output_propose_state(struct weston_output *output_base, 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
									      & clipped_view ) ;   
					 
					 
					 
									      & clipped_view ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							pixman_region32_fini ( & clipped_view ) ;   
					 
					 
					 
							pixman_region32_fini ( & clipped_view ) ;   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
							drm_debug ( b ,  " \t \t \t \t [view] view %p will be placed  "   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
								     " on the renderer \n " ,  ev ) ;   
					 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						}   
					 
					 
					 
						}   
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
					
 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					 
						pixman_region32_fini ( & renderer_region ) ;   
					 
					 
					 
						pixman_region32_fini ( & renderer_region ) ;