Lines Matching defs:fenced_mgr

172 fenced_buffer_create_cpu_storage_locked(struct fenced_manager *fenced_mgr,
179 fenced_buffer_create_gpu_storage_locked(struct fenced_manager *fenced_mgr,
196 fenced_manager_dump_locked(struct fenced_manager *fenced_mgr)
199 struct pb_fence_ops *ops = fenced_mgr->ops;
206 curr = fenced_mgr->unfenced.next;
208 while(curr != &fenced_mgr->unfenced) {
220 curr = fenced_mgr->fenced.next;
222 while(curr != &fenced_mgr->fenced) {
238 (void)fenced_mgr;
244 fenced_buffer_destroy_locked(struct fenced_manager *fenced_mgr,
253 assert(fenced_mgr->num_unfenced);
254 --fenced_mgr->num_unfenced;
269 fenced_buffer_add_locked(struct fenced_manager *fenced_mgr,
279 assert(fenced_mgr->num_unfenced);
280 --fenced_mgr->num_unfenced;
281 LIST_ADDTAIL(&fenced_buf->head, &fenced_mgr->fenced);
282 ++fenced_mgr->num_fenced;
293 fenced_buffer_remove_locked(struct fenced_manager *fenced_mgr,
296 struct pb_fence_ops *ops = fenced_mgr->ops;
299 assert(fenced_buf->mgr == fenced_mgr);
308 assert(fenced_mgr->num_fenced);
309 --fenced_mgr->num_fenced;
311 LIST_ADDTAIL(&fenced_buf->head, &fenced_mgr->unfenced);
312 ++fenced_mgr->num_unfenced;
315 fenced_buffer_destroy_locked(fenced_mgr, fenced_buf);
330 fenced_buffer_finish_locked(struct fenced_manager *fenced_mgr,
333 struct pb_fence_ops *ops = fenced_mgr->ops;
350 pipe_mutex_unlock(fenced_mgr->mutex);
354 pipe_mutex_lock(fenced_mgr->mutex);
374 destroyed = fenced_buffer_remove_locked(fenced_mgr, fenced_buf);
396 fenced_manager_check_signalled_locked(struct fenced_manager *fenced_mgr,
399 struct pb_fence_ops *ops = fenced_mgr->ops;
405 curr = fenced_mgr->fenced.next;
407 while(curr != &fenced_mgr->fenced) {
439 fenced_buffer_remove_locked(fenced_mgr, fenced_buf);
457 fenced_manager_free_gpu_storage_locked(struct fenced_manager *fenced_mgr)
462 curr = fenced_mgr->unfenced.next;
464 while(curr != &fenced_mgr->unfenced) {
476 ret = fenced_buffer_create_cpu_storage_locked(fenced_mgr, fenced_buf);
514 fenced_buffer_create_cpu_storage_locked(struct fenced_manager *fenced_mgr,
521 if (fenced_mgr->cpu_total_size + fenced_buf->size > fenced_mgr->max_cpu_total_size)
528 fenced_mgr->cpu_total_size += fenced_buf->size;
553 fenced_buffer_try_create_gpu_storage_locked(struct fenced_manager *fenced_mgr,
556 struct pb_manager *provider = fenced_mgr->provider;
560 fenced_buf->buffer = provider->create_buffer(fenced_mgr->provider,
571 fenced_buffer_create_gpu_storage_locked(struct fenced_manager *fenced_mgr,
580 fenced_manager_check_signalled_locked(fenced_mgr, FALSE);
582 fenced_buffer_try_create_gpu_storage_locked(fenced_mgr, fenced_buf);
590 (fenced_manager_check_signalled_locked(fenced_mgr, FALSE) ||
591 fenced_manager_free_gpu_storage_locked(fenced_mgr))) {
592 fenced_buffer_try_create_gpu_storage_locked(fenced_mgr, fenced_buf);
601 (fenced_manager_check_signalled_locked(fenced_mgr, TRUE) ||
602 fenced_manager_free_gpu_storage_locked(fenced_mgr))) {
603 fenced_buffer_try_create_gpu_storage_locked(fenced_mgr, fenced_buf);
609 fenced_manager_dump_locked(fenced_mgr);
663 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
667 pipe_mutex_lock(fenced_mgr->mutex);
669 fenced_buffer_destroy_locked(fenced_mgr, fenced_buf);
671 pipe_mutex_unlock(fenced_mgr->mutex);
680 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
681 struct pb_fence_ops *ops = fenced_mgr->ops;
684 pipe_mutex_lock(fenced_mgr->mutex);
711 fenced_buffer_finish_locked(fenced_mgr, fenced_buf);
728 pipe_mutex_unlock(fenced_mgr->mutex);
738 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
740 pipe_mutex_lock(fenced_mgr->mutex);
751 pipe_mutex_unlock(fenced_mgr->mutex);
761 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
764 pipe_mutex_lock(fenced_mgr->mutex);
797 ret = fenced_buffer_create_gpu_storage_locked(fenced_mgr, fenced_buf, TRUE);
824 pipe_mutex_unlock(fenced_mgr->mutex);
835 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
836 struct pb_fence_ops *ops = fenced_mgr->ops;
838 pipe_mutex_lock(fenced_mgr->mutex);
849 destroyed = fenced_buffer_remove_locked(fenced_mgr, fenced_buf);
855 fenced_buffer_add_locked(fenced_mgr, fenced_buf);
864 pipe_mutex_unlock(fenced_mgr->mutex);
874 struct fenced_manager *fenced_mgr = fenced_buf->mgr;
876 pipe_mutex_lock(fenced_mgr->mutex);
892 pipe_mutex_unlock(fenced_mgr->mutex);
915 struct fenced_manager *fenced_mgr = fenced_manager(mgr);
924 if(size > fenced_mgr->max_buffer_size) {
940 fenced_buf->mgr = fenced_mgr;
942 pipe_mutex_lock(fenced_mgr->mutex);
947 ret = fenced_buffer_create_gpu_storage_locked(fenced_mgr, fenced_buf, FALSE);
953 ret = fenced_buffer_create_cpu_storage_locked(fenced_mgr, fenced_buf);
960 ret = fenced_buffer_create_gpu_storage_locked(fenced_mgr, fenced_buf, TRUE);
972 LIST_ADDTAIL(&fenced_buf->head, &fenced_mgr->unfenced);
973 ++fenced_mgr->num_unfenced;
974 pipe_mutex_unlock(fenced_mgr->mutex);
979 pipe_mutex_unlock(fenced_mgr->mutex);
989 struct fenced_manager *fenced_mgr = fenced_manager(mgr);
991 pipe_mutex_lock(fenced_mgr->mutex);
992 while(fenced_manager_check_signalled_locked(fenced_mgr, TRUE))
994 pipe_mutex_unlock(fenced_mgr->mutex);
996 assert(fenced_mgr->provider->flush);
997 if(fenced_mgr->provider->flush)
998 fenced_mgr->provider->flush(fenced_mgr->provider);
1005 struct fenced_manager *fenced_mgr = fenced_manager(mgr);
1007 pipe_mutex_lock(fenced_mgr->mutex);
1010 while (fenced_mgr->num_fenced) {
1011 pipe_mutex_unlock(fenced_mgr->mutex);
1015 pipe_mutex_lock(fenced_mgr->mutex);
1016 while(fenced_manager_check_signalled_locked(fenced_mgr, TRUE))
1021 /*assert(!fenced_mgr->num_unfenced);*/
1024 pipe_mutex_unlock(fenced_mgr->mutex);
1025 pipe_mutex_destroy(fenced_mgr->mutex);
1027 if(fenced_mgr->provider)
1028 fenced_mgr->provider->destroy(fenced_mgr->provider);
1030 fenced_mgr->ops->destroy(fenced_mgr->ops);
1032 FREE(fenced_mgr);
1042 struct fenced_manager *fenced_mgr;
1047 fenced_mgr = CALLOC_STRUCT(fenced_manager);
1048 if (!fenced_mgr)
1051 fenced_mgr->base.destroy = fenced_bufmgr_destroy;
1052 fenced_mgr->base.create_buffer = fenced_bufmgr_create_buffer;
1053 fenced_mgr->base.flush = fenced_bufmgr_flush;
1055 fenced_mgr->provider = provider;
1056 fenced_mgr->ops = ops;
1057 fenced_mgr->max_buffer_size = max_buffer_size;
1058 fenced_mgr->max_cpu_total_size = max_cpu_total_size;
1060 LIST_INITHEAD(&fenced_mgr->fenced);
1061 fenced_mgr->num_fenced = 0;
1063 LIST_INITHEAD(&fenced_mgr->unfenced);
1064 fenced_mgr->num_unfenced = 0;
1066 pipe_mutex_init(fenced_mgr->mutex);
1068 return &fenced_mgr->base;