/external/mesa3d/src/gallium/drivers/nouveau/ |
nouveau_fence.c | 33 nouveau_fence_new(struct nouveau_screen *screen, struct nouveau_fence **fence) 35 *fence = CALLOC_STRUCT(nouveau_fence); 36 if (!*fence) 39 (*fence)->screen = screen; 40 (*fence)->ref = 1; 41 LIST_INITHEAD(&(*fence)->work); 47 nouveau_fence_trigger_work(struct nouveau_fence *fence) 51 LIST_FOR_EACH_ENTRY_SAFE(work, tmp, &fence->work, list) { 59 nouveau_fence_emit(struct nouveau_fence *fence) 61 struct nouveau_screen *screen = fence->screen 114 struct nouveau_fence *fence; local [all...] |
nouveau_fence.h | 46 nouveau_fence_ref(struct nouveau_fence *fence, struct nouveau_fence **ref) 48 if (fence) 49 ++fence->ref; 56 *ref = fence; 60 nouveau_fence(struct pipe_fence_handle *fence) 62 return (struct nouveau_fence *)fence;
|
/external/mesa3d/src/gallium/drivers/llvmpipe/ |
lp_fence.c | 36 * Create a new fence object. 39 * thread hits a fence command, it'll increment the fence counter. When 40 * the counter == the rank, the fence is finished. 42 * \param rank the expected finished value of the fence counter. 48 struct lp_fence *fence = CALLOC_STRUCT(lp_fence); local 50 if (!fence) 53 pipe_reference_init(&fence->reference, 1); 55 (void) mtx_init(&fence->mutex, mtx_plain); 56 cnd_init(&fence->signalled) [all...] |
lp_fence.h | 60 lp_fence_signal(struct lp_fence *fence); 63 lp_fence_signalled(struct lp_fence *fence); 66 lp_fence_wait(struct lp_fence *fence); 73 lp_fence_destroy(struct lp_fence *fence); 89 lp_fence_issued(const struct lp_fence *fence) 91 return fence->issued;
|
/external/mesa3d/src/mesa/drivers/dri/i965/ |
brw_sync.c | 52 /** The fence waits for completion of brw_fence::batch_bo. */ 55 /** The fence waits for brw_fence::sync_fd to signal. */ 72 struct brw_fence fence; member in struct:brw_gl_sync 76 brw_fence_init(struct brw_context *brw, struct brw_fence *fence, 79 fence->brw = brw; 80 fence->type = type; 81 mtx_init(&fence->mutex, mtx_plain); 85 fence->batch_bo = NULL; 88 fence->sync_fd = -1; 94 brw_fence_finish(struct brw_fence *fence) 424 struct brw_fence *fence; local 444 struct brw_fence *fence = _fence; local 454 struct brw_fence *fence = _fence; local 462 struct brw_fence *fence = _fence; local 489 struct brw_fence *fence; local 528 struct brw_fence *fence = _fence; local [all...] |
/external/mesa3d/src/gallium/drivers/freedreno/ |
freedreno_fence.c | 39 /* fence holds a weak reference to the batch until the batch is flushed, 50 static void fence_flush(struct pipe_fence_handle *fence) 52 if (fence->batch) 53 fd_batch_flush(fence->batch, true, true); 54 debug_assert(!fence->batch); 57 void fd_fence_populate(struct pipe_fence_handle *fence, 60 if (!fence->batch) 62 fence->timestamp = timestamp; 63 fence->fence_fd = fence_fd; 64 fence->batch = NULL 105 struct pipe_fence_handle *fence; local [all...] |
/external/linux-kselftest/tools/testing/selftests/sync/ |
sync_alloc.c | 46 int timeline, fence, valid; local 52 fence = sw_sync_fence_create(timeline, "allocFence", 1); 53 valid = sw_sync_fence_is_valid(fence); 54 ASSERT(valid, "Failure allocating fence\n"); 56 sw_sync_fence_destroy(fence); 63 int fence, timeline; local 68 fence = sw_sync_fence_create(-1, "fence", 1); 69 ASSERT(fence < 0, "Success allocating negative fence\n") [all...] |
sync_merge.c | 2 * sync fence merge tests 34 int fence, valid, merged; local 40 fence = sw_sync_fence_create(timeline, "allocFence", 5); 41 valid = sw_sync_fence_is_valid(fence); 42 ASSERT(valid, "Failure allocating fence\n"); 44 merged = sync_merge("mergeFence", fence, fence); 45 valid = sw_sync_fence_is_valid(fence); 46 ASSERT(valid, "Failure merging fence\n"); 49 "fence signaled too early!\n") [all...] |
sync_stress_consumer.c | 40 static int busy_wait_on_fence(int fence) 45 error = sync_fence_count_with_status(fence, FENCE_STATUS_ERROR); 46 ASSERT(error == 0, "Error occurred on fence\n"); 47 active = sync_fence_count_with_status(fence, 66 int fence, valid, i; local 72 fence = sw_sync_fence_create(consumer_timeline, "fence", i); 73 valid = sw_sync_fence_is_valid(fence); 74 ASSERT(valid, "Failure creating fence\n"); 78 * means of waiting on the fence 108 int fence, merged, tmp, valid, it, i; local [all...] |
sync_stress_merge.c | 43 int fence, tmpfence, merged, valid; local 51 fence = sw_sync_fence_create(timelines[0], "fence", 0); 52 valid = sw_sync_fence_is_valid(fence); 53 ASSERT(valid, "Failure creating fence\n"); 75 tmpfence = sw_sync_fence_create(timeline, "fence", sync_point); 76 merged = sync_merge("merge", tmpfence, fence); 78 sw_sync_fence_destroy(fence); 79 fence = merged; 82 ASSERT(valid, "Failure creating fence i\n") [all...] |
/external/mesa3d/src/util/ |
u_queue.h | 59 /* Job completion fence. 63 /* The fence can be in one of three states: 72 util_queue_fence_init(struct util_queue_fence *fence) 74 fence->val = 0; 78 util_queue_fence_destroy(struct util_queue_fence *fence) 80 assert(fence->val == 0); 85 util_queue_fence_signal(struct util_queue_fence *fence) 87 uint32_t val = p_atomic_xchg(&fence->val, 0); 92 futex_wake(&fence->val, INT_MAX); 96 * Move \p fence back into unsignalled state 195 struct util_queue_fence *fence; member in struct:util_queue_job [all...] |
/external/mesa3d/src/gallium/drivers/etnaviv/ |
etnaviv_fence.c | 46 etna_fence_destroy(struct pipe_fence_handle *fence) 48 if (fence->fence_fd != -1) 49 close(fence->fence_fd); 50 FREE(fence); 56 struct pipe_fence_handle *fence) 58 if (pipe_reference(&(*ptr)->reference, &fence->reference)) 61 *ptr = fence; 66 struct pipe_fence_handle *fence, uint64_t timeout) 68 if (fence->fence_fd != -1) 69 return !sync_wait(fence->fence_fd, timeout / 1000000) 103 struct pipe_fence_handle *fence; local [all...] |
/external/mesa3d/src/gallium/drivers/softpipe/ |
sp_fence.c | 37 struct pipe_fence_handle *fence) 39 *ptr = fence; 46 struct pipe_fence_handle *fence, 49 assert(fence);
|
/external/mesa3d/src/gallium/drivers/swr/ |
swr_fence.cpp | 37 * Fence callback, called by back-end thread on completion of all rendering up 43 struct swr_fence *fence = (struct swr_fence *)userData; local 45 /* Complete all work attached to the fence */ 46 swr_fence_do_work(fence); 48 /* Correct value is in SwrSync data, and not the fence write field. */ 49 fence->read = userData2; 53 * Submit an existing fence. 58 struct swr_fence *fence = swr_fence(fh); local 60 fence->write++; 61 fence->pending = TRUE 72 struct swr_fence *fence = CALLOC_STRUCT(swr_fence); local 100 struct swr_fence *fence = swr_fence(f); local [all...] |
swr_fence_work.h | 40 void swr_fence_do_work(struct swr_fence *fence); 42 bool swr_fence_work_free(struct pipe_fence_handle *fence, void *data, 44 bool swr_fence_work_delete_vs(struct pipe_fence_handle *fence, 46 bool swr_fence_work_delete_fs(struct pipe_fence_handle *fence, 48 bool swr_fence_work_delete_gs(struct pipe_fence_handle *fence,
|
swr_fence_work.cpp | 34 swr_fence_do_work(struct swr_fence *fence) 38 if (fence->work.head.next) { 39 work = fence->work.head.next; 42 p_atomic_set(&fence->work.head.next, 0); 43 p_atomic_set(&fence->work.tail, &fence->work.head); 44 p_atomic_set(&fence->work.count, 0); 63 /* If no fence, just do the work now */ 70 struct swr_fence *fence = swr_fence(fh); local 71 p_atomic_set(&fence->work.tail->next, work) [all...] |
swr_fence.h | 51 swr_fence(struct pipe_fence_handle *fence) 53 return (struct swr_fence *)fence; 60 struct swr_fence *fence = swr_fence(fence_handle); local 61 return (fence->read == fence->write); 85 swr_fence_submit(struct swr_context *ctx, struct pipe_fence_handle *fence);
|
/external/mesa3d/src/mesa/drivers/dri/i915/ |
intel_syncobj.c | 49 /** The fence waits for completion of this batch. */ 58 struct intel_fence fence; member in struct:intel_gl_sync_object 62 intel_fence_finish(struct intel_fence *fence) 64 if (fence->batch_bo) 65 drm_intel_bo_unreference(fence->batch_bo); 69 intel_fence_insert(struct intel_context *intel, struct intel_fence *fence) 71 assert(!fence->batch_bo); 72 assert(!fence->signalled); 75 fence->batch_bo = intel->batch.bo; 76 drm_intel_bo_reference(fence->batch_bo) 238 struct intel_fence *fence; local 254 struct intel_fence *fence = driver_fence; local 264 struct intel_fence *fence = driver_fence; local 272 struct intel_fence *fence = driver_fence; local [all...] |
/external/mesa3d/src/gallium/auxiliary/pipebuffer/ |
pb_buffer_fenced.h | 38 * - the ability for the destruction to be delayed by a fence; 42 * handle. The end-of-life is dictated by the fence signalling. 44 * Between the handle's destruction, and the fence signalling, the buffer is 66 * List of buffers which are awaiting fence signalling. 75 /** Set ptr = fence, with reference counting */ 78 struct pipe_fence_handle *fence ); 81 * Checks whether the fence has been signalled. 86 struct pipe_fence_handle *fence, 90 * Wait for the fence to finish. 95 struct pipe_fence_handle *fence, [all...] |
/external/mesa3d/src/gallium/winsys/i915/drm/ |
i915_drm_fence.c | 8 * Because gem does not have fence's we have to create our own fences. 11 * been idled. If bo is NULL fence has expired. 23 struct i915_drm_fence *fence = CALLOC_STRUCT(i915_drm_fence); local 25 pipe_reference_init(&fence->reference, 1); 26 /* bo is null if fence already expired */ 29 fence->bo = bo; 32 return (struct pipe_fence_handle *)fence; 38 struct pipe_fence_handle *fence) 41 struct i915_drm_fence *f = (struct i915_drm_fence *)fence; 48 *ptr = fence; [all...] |
/external/mesa3d/src/gallium/winsys/svga/drm/ |
vmw_fence.c | 68 * vmw_fence_seq_is_signaled - Check whether a fence seqno is 106 struct vmw_fence *fence, *n; local 109 LIST_FOR_EACH_ENTRY_SAFE(fence, n, &ops->not_signaled, ops_list) 110 LIST_DELINIT(&fence->ops_list); 131 struct vmw_fence *fence, *n; local 148 LIST_FOR_EACH_ENTRY_SAFE(fence, n, &ops->not_signaled, ops_list) { 149 if (!vmw_fence_seq_is_signaled(fence->seqno, signaled, emitted)) 152 p_atomic_set(&fence->signalled, 1); 153 LIST_DELINIT(&fence->ops_list); 167 * @fence: The opaque pipe fence handle 190 struct vmw_fence *fence = CALLOC_STRUCT(vmw_fence); local [all...] |
vmw_fence.h | 45 struct pipe_fence_handle *fence, 50 vmw_fence_get_fd(struct pipe_fence_handle *fence); 54 struct pipe_fence_handle *fence, 59 struct pipe_fence_handle *fence);
|
/external/mesa3d/src/gallium/drivers/r300/ |
r300_flush.c | 38 struct pipe_fence_handle **fence) 56 r300->rws->cs_flush(r300->cs, flags, fence); 77 struct pipe_fence_handle **fence) 82 r300_flush_and_cleanup(r300, flags, fence); 84 if (fence) { 85 /* We have to create a fence object, but the command stream is empty 89 r300->rws->cs_flush(r300->cs, flags, fence); 115 if (fence && *fence) 116 r300->rws->fence_reference(fence, NULL) [all...] |
/external/mesa3d/src/gallium/drivers/svga/ |
svga_pipe_flush.c | 36 struct pipe_fence_handle **fence, 50 svga_context_flush(svga, fence); 53 __FUNCTION__, fence ? *fence : 0x0); 80 * Wraps a SVGA fence around an imported file descriptor. This 81 * fd represents a fence from another process/device. The fence created 87 struct pipe_fence_handle **fence, 92 sws->fence_create_fd(sws, fence, fd); 99 * This function imports a fence from another process/device into the curren [all...] |
/external/mesa3d/src/gallium/drivers/i915/ |
i915_flush.c | 42 struct pipe_fence_handle **fence, 51 /* Only shortcut this if we have no fence, otherwise we must flush the 52 * empty batchbuffer to get our fence back. 54 if (!fence && (i915->batch->map == i915->batch->ptr)) { 61 FLUSH_BATCH(fence, winsys_flags); 76 struct pipe_fence_handle **fence, 81 batch->iws->batchbuffer_flush(batch, fence, flags);
|