backend/drm: fail on explicit modifier in drmModeAddFB2
drmModeAddFB2 doesn't support explicit modifiers. Only accept INVALID which indicates an implicit modifier and LINEAR which may indicate that GBM_BO_USE_LINEAR has been used.
This commit is contained in:
		
							parent
							
								
									ea7357b703
								
							
						
					
					
						commit
						d6be1d68b7
					
				|  | @ -256,6 +256,13 @@ static uint32_t get_fb_for_bo(struct wlr_drm_backend *drm, | |||
| 			wlr_log_errno(WLR_DEBUG, "drmModeAddFB2WithModifiers failed"); | ||||
| 		} | ||||
| 	} else { | ||||
| 		if (dmabuf->modifier != DRM_FORMAT_MOD_INVALID && | ||||
| 				dmabuf->modifier != DRM_FORMAT_MOD_LINEAR) { | ||||
| 			wlr_log(WLR_ERROR, "Cannot import DRM framebuffer with explicit " | ||||
| 				"modifier 0x%"PRIX64, dmabuf->modifier); | ||||
| 			return 0; | ||||
| 		} | ||||
| 
 | ||||
| 		int ret = drmModeAddFB2(drm->fd, dmabuf->width, dmabuf->height, | ||||
| 			dmabuf->format, handles, dmabuf->stride, dmabuf->offset, &id, 0); | ||||
| 		if (ret != 0 && dmabuf->format == DRM_FORMAT_ARGB8888 && | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue