|  |  |  | @ -66,6 +66,21 @@ bool wlr_drm_surface_init(struct wlr_drm_surface *surf, | 
			
		
	
		
			
				
					|  |  |  |  | 	surf->width = width; | 
			
		
	
		
			
				
					|  |  |  |  | 	surf->height = height; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (surf->gbm) { | 
			
		
	
		
			
				
					|  |  |  |  | 		if (surf->front) { | 
			
		
	
		
			
				
					|  |  |  |  | 			gbm_surface_release_buffer(surf->gbm, surf->front); | 
			
		
	
		
			
				
					|  |  |  |  | 			surf->front = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if (surf->back) { | 
			
		
	
		
			
				
					|  |  |  |  | 			gbm_surface_release_buffer(surf->gbm, surf->back); | 
			
		
	
		
			
				
					|  |  |  |  | 			surf->back = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		gbm_surface_destroy(surf->gbm); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	if (surf->egl) { | 
			
		
	
		
			
				
					|  |  |  |  | 		eglDestroySurface(surf->renderer->egl.display, surf->egl); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	surf->gbm = gbm_surface_create(renderer->gbm, width, height, | 
			
		
	
		
			
				
					|  |  |  |  | 		format, GBM_BO_USE_RENDERING | flags); | 
			
		
	
		
			
				
					|  |  |  |  | 	if (!surf->gbm) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |