Lines Matching refs:sync

82              struct vk_sync *sync,
94 assert(type->size >= sizeof(*sync));
95 memset(sync, 0, type->size);
96 sync->type = type;
97 sync->flags = flags;
99 return type->init(device, sync, initial_value);
104 struct vk_sync *sync)
106 sync->type->finish(device, sync);
116 struct vk_sync *sync;
118 sync = vk_alloc(&device->alloc, type->size, 8,
120 if (sync == NULL)
123 VkResult result = vk_sync_init(device, sync, type, flags, initial_value);
125 vk_free(&device->alloc, sync);
129 *sync_out = sync;
136 struct vk_sync *sync)
138 vk_sync_finish(device, sync);
139 vk_free(&device->alloc, sync);
144 struct vk_sync *sync,
147 assert(sync->type->features & VK_SYNC_FEATURE_CPU_SIGNAL);
149 if (sync->flags & VK_SYNC_IS_TIMELINE)
154 return sync->type->signal(device, sync, value);
159 struct vk_sync *sync,
162 assert(sync->flags & VK_SYNC_IS_TIMELINE);
163 return sync->type->get_value(device, sync, value);
168 struct vk_sync *sync)
170 assert(sync->type->features & VK_SYNC_FEATURE_CPU_RESET);
171 assert(!(sync->flags & VK_SYNC_IS_TIMELINE));
172 return sync->type->reset(device, sync);
187 assert_valid_wait(struct vk_sync *sync,
191 assert(sync->type->features & VK_SYNC_FEATURE_CPU_WAIT);
193 if (!(sync->flags & VK_SYNC_IS_TIMELINE))
197 assert(sync->type->features & VK_SYNC_FEATURE_WAIT_PENDING);
215 struct vk_sync *sync,
220 assert_valid_wait(sync, wait_value, wait_flags);
225 if (sync->type->wait) {
226 return sync->type->wait(device, sync, wait_value,
230 .sync = sync,
234 return sync->type->wait_many(device, 1, &wait, wait_flags,
241 struct vk_sync *sync,
249 __vk_sync_wait(device, sync, wait_value, wait_flags,
255 return __vk_sync_wait(device, sync, wait_value, wait_flags,
265 if (waits[0].sync->type->wait_many == NULL)
269 !(waits[0].sync->type->features & VK_SYNC_FEATURE_WAIT_ANY))
273 assert_valid_wait(waits[i].sync, waits[i].wait_value, wait_flags);
274 if (waits[i].sync->type != waits[0].sync->type)
292 return __vk_sync_wait(device, waits[0].sync, waits[0].wait_value,
297 return waits[0].sync->type->wait_many(device, wait_count, waits,
305 VkResult result = __vk_sync_wait(device, waits[i].sync,
317 VkResult result = __vk_sync_wait(device, waits[i].sync,
350 struct vk_sync *sync,
353 VkResult result = sync->type->import_opaque_fd(device, sync, fd);
357 sync->flags |= VK_SYNC_IS_SHAREABLE |
365 struct vk_sync *sync,
368 assert(sync->flags & VK_SYNC_IS_SHAREABLE);
370 VkResult result = sync->type->export_opaque_fd(device, sync, fd);
374 sync->flags |= VK_SYNC_IS_SHARED;
381 struct vk_sync *sync,
384 assert(!(sync->flags & VK_SYNC_IS_TIMELINE));
389 if (sync_file < 0 && sync->type->signal)
390 return sync->type->signal(device, sync, 0);
392 return sync->type->import_sync_file(device, sync, sync_file);
397 struct vk_sync *sync,
400 assert(!(sync->flags & VK_SYNC_IS_TIMELINE));
401 return sync->type->export_sync_file(device, sync, sync_file);