mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-10-29 05:40:12 -04:00 
			
		
		
		
	render/drm_syncobj: add wlr_drm_syncobj_timeline_transfer()
This commit is contained in:
		
							parent
							
								
									3067e45c2e
								
							
						
					
					
						commit
						5552de65f8
					
				
					 2 changed files with 20 additions and 0 deletions
				
			
		|  | @ -62,6 +62,13 @@ struct wlr_drm_syncobj_timeline *wlr_drm_syncobj_timeline_ref(struct wlr_drm_syn | |||
|  * Unreference a synchronization timeline. | ||||
|  */ | ||||
| void wlr_drm_syncobj_timeline_unref(struct wlr_drm_syncobj_timeline *timeline); | ||||
| /**
 | ||||
|  * Transfer a point from a timeline to another. | ||||
|  * | ||||
|  * Both timelines must have been created with the same DRM FD. | ||||
|  */ | ||||
| bool wlr_drm_syncobj_timeline_transfer(struct wlr_drm_syncobj_timeline *dst, | ||||
| 	uint64_t dst_point, struct wlr_drm_syncobj_timeline *src, uint64_t src_point); | ||||
| /**
 | ||||
|  * Check if a timeline point has been signalled or has materialized. | ||||
|  * | ||||
|  |  | |||
|  | @ -67,6 +67,19 @@ void wlr_drm_syncobj_timeline_unref(struct wlr_drm_syncobj_timeline *timeline) { | |||
| 	free(timeline); | ||||
| } | ||||
| 
 | ||||
| bool wlr_drm_syncobj_timeline_transfer(struct wlr_drm_syncobj_timeline *dst, | ||||
| 		uint64_t dst_point, struct wlr_drm_syncobj_timeline *src, uint64_t src_point) { | ||||
| 	assert(dst->drm_fd == src->drm_fd); | ||||
| 
 | ||||
| 	if (drmSyncobjTransfer(dst->drm_fd, dst->handle, dst_point, | ||||
| 			src->handle, src_point, 0) != 0) { | ||||
| 		wlr_log_errno(WLR_ERROR, "drmSyncobjTransfer failed"); | ||||
| 		return false; | ||||
| 	} | ||||
| 
 | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| int wlr_drm_syncobj_timeline_export_sync_file(struct wlr_drm_syncobj_timeline *timeline, | ||||
| 		uint64_t src_point) { | ||||
| 	int sync_file_fd = -1; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Simon Ser
						Simon Ser