@ -56,12 +56,12 @@ static void atomic_add(struct atomic *atom, uint32_t id, uint32_t prop, uint64_t
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					static  bool  create_mode_blob ( struct  wlr_drm_backend  * drm ,  
			
		
	
		
			
				
							struct  wlr_drm_crtc  * crtc ,  uint32_t  * blob_id )  { 
 
			
		
	
		
			
				
						if  ( ! crtc - > )  { 
 
			
		
	
		
			
				
						if  ( ! crtc - > pending.  active)  { 
 
			
		
	
		
			
				
							* blob_id  =  0 ; 
 
			
		
	
		
			
				
							return  true ; 
 
			
		
	
		
			
				
						} 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						if  ( drmModeCreatePropertyBlob ( drm - > fd ,  & crtc - > , 
 
			
		
	
		
			
				
						if  ( drmModeCreatePropertyBlob ( drm - > fd ,  & crtc - > pending. mode - > drm_  mode, 
 
			
		
	
		
			
				
								sizeof ( drmModeModeInfo ) ,  blob_id ) )  { 
 
			
		
	
		
			
				
							wlr_log_errno ( WLR_ERROR ,  " Unable to create mode property blob " ) ; 
 
			
		
	
		
			
				
							return  false ; 
 
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -171,7 +171,7 @@ static bool atomic_crtc_commit(struct wlr_drm_backend *drm,
 
			
		
	
		
			
				
						struct  wlr_drm_crtc  * crtc  =  conn - > crtc ; 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						uint32_t  mode_id  =  crtc - > mode_id ; 
 
			
		
	
		
			
				
						if  ( crtc - > pending  &  WLR_DRM_CRTC_MODE  )  { 
 
			
		
	
		
			
				
						if  ( crtc - > pending _modeset )  { 
 
			
		
	
		
			
				
							if  ( ! create_mode_blob ( drm ,  crtc ,  & mode_id ) )  { 
 
			
		
	
		
			
				
								return  false ; 
 
			
		
	
		
			
				
							} 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -196,8 +196,7 @@ static bool atomic_crtc_commit(struct wlr_drm_backend *drm,
 
			
		
	
		
			
				
							} 
 
			
		
	
		
			
				
						} 
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
						bool  modeset  =  crtc - > pending  &  WLR_DRM_CRTC_MODE ; 
 
			
		
	
		
			
				
						if  ( modeset )  { 
 
			
		
	
		
			
				
						if  ( crtc - > pending_modeset )  { 
 
			
		
	
		
			
				
							flags  | =  DRM_MODE_ATOMIC_ALLOW_MODESET ; 
 
			
		
	
		
			
				
						}  else  { 
 
			
		
	
		
			
				
							flags  | =  DRM_MODE_ATOMIC_NONBLOCK ; 
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -206,14 +205,15 @@ static bool atomic_crtc_commit(struct wlr_drm_backend *drm,
 
			
		
	
		
			
				
						struct  atomic  atom ; 
 
			
		
	
		
			
				
						atomic_begin ( & atom ) ; 
 
			
		
	
		
			
				
						atomic_add ( & atom ,  conn - > id ,  conn - > props . crtc_id , 
 
			
		
	
		
			
				
							crtc - > active  ?  crtc - > id  :  0 ) ; 
 
			
		
	
		
			
				
						if  ( modeset  & &  crtc - > active  & &  conn - > props . link_status  ! =  0 )  { 
 
			
		
	
		
			
				
							crtc - > pending . active  ?  crtc - > id  :  0 ) ; 
 
			
		
	
		
			
				
						if  ( crtc - > pending_modeset  & &  crtc - > pending . active  & & 
 
			
		
	
		
			
				
								conn - > props . link_status  ! =  0 )  { 
 
			
		
	
		
			
				
							atomic_add ( & atom ,  conn - > id ,  conn - > props . link_status , 
 
			
		
	
		
			
				
								DRM_MODE_LINK_STATUS_GOOD ) ; 
 
			
		
	
		
			
				
						} 
 
			
		
	
		
			
				
						atomic_add ( & atom ,  crtc - > id ,  crtc - > props . mode_id ,  mode_id ) ; 
 
			
		
	
		
			
				
						atomic_add ( & atom ,  crtc - > id ,  crtc - > props . active ,  crtc - > ) ; 
 
			
		
	
		
			
				
						if  ( crtc - > )  { 
 
			
		
	
		
			
				
						atomic_add ( & atom ,  crtc - > id ,  crtc - > props . active ,  crtc - > pending.  active) ; 
 
			
		
	
		
			
				
						if  ( crtc - > pending.  active)  { 
 
			
		
	
		
			
				
							if  ( crtc - > props . gamma_lut  ! =  0 )  { 
 
			
		
	
		
			
				
								atomic_add ( & atom ,  crtc - > id ,  crtc - > props . gamma_lut ,  gamma_lut ) ; 
 
			
		
	
		
			
				
							}