Lines Matching defs:vk_sync
36 struct vk_sync;
41 * In binary mode, a vk_sync has two modes: signaled and unsignaled. If
46 * Binary vk_sync types may also support WAIT_PENDING in which they have a
47 * third hidden pending state. Once such a vk_sync has been submitted to
51 * vk_sync types. This is used to by the threaded submit mode to ensure
54 * A vk_sync operates in binary mode if VK_SYNC_IS_TIMELINE is not set
55 * in vk_sync::flags.
61 * In timeline mode, a vk_sync has a monotonically increasing 64-bit value
63 * to time points. Instead of waiting for the vk_sync to enter a signaled
66 * Timeline vk_sync types can also support WAIT_PENDING. In this case, the
71 * the real one. As with binary vk_sync types, this is used by threaded
75 * A vk_sync operates in timeline mode if VK_SYNC_IS_TIMELINE is set in
76 * vk_sync::flags.
88 * often useful to have well-defined multi-wait. If binary vk_sync
93 * This feature only applies to binary vk_sync objects.
102 * This feature only applies to binary vk_sync objects.
126 * kernel requests which wait on the vk_sync before submitting a kernel
138 /** If set, only wait for the vk_sync operation to be pending
145 /** If set, wait for any of of the vk_sync operations to complete
162 /** Initialize a vk_sync
164 * The base vk_sync will already be initialized and the sync type set
169 struct vk_sync *sync,
172 /** Finish a vk_sync
174 * This should free any internal data stored in this vk_sync.
177 struct vk_sync *sync);
179 /** Signal a vk_sync
184 struct vk_sync *sync,
187 /** Get the timeline value for a vk_sync */
189 struct vk_sync *sync,
192 /** Reset a non-timeline vk_sync */
194 struct vk_sync *sync);
196 /** Moves the guts of one binary vk_sync to another
198 * This moves the current binary vk_sync event from src to dst and resets
201 * This is required for all binary vk_sync types that can be used for a
205 struct vk_sync *dst,
206 struct vk_sync *src);
208 /** Wait on a vk_sync
210 * For a timeline vk_sync, wait_value is the timeline value to wait for.
212 * vk_sync would return a value >= wait_value. A wait_value of zero is
213 * allowed in which case the wait is a no-op. For a non-timeline vk_sync,
221 struct vk_sync *sync,
226 /** Wait for multiple vk_sync events
239 /** Permanently imports the given FD into this vk_sync
241 * This replaces the guts of the given vk_sync with whatever is in the FD.
242 * In a sense, this vk_sync now aliases whatever vk_sync the FD was
246 struct vk_sync *sync,
249 /** Export the guts of this vk_sync to an FD */
251 struct vk_sync *sync,
254 /** Imports a sync file into this binary vk_sync
256 * If this completes successfully, the vk_sync will now signal whenever
259 * If sync_file == -1, the vk_sync should be signaled immediately. If
263 struct vk_sync *sync,
266 /** Exports the current binary vk_sync state as a sync file.
269 * binary vk_sync must be turned into a sync file. If the vk_sync is later
273 struct vk_sync *sync,
278 /** Set if the vk_sync is a timeline */
281 /** Set if the vk_sync can have its payload shared */
284 /** Set if the vk_sync has a shared payload */
288 struct vk_sync {
295 struct vk_sync *sync;
302 struct vk_sync *sync;
308 struct vk_sync *sync,
314 struct vk_sync *sync);
320 struct vk_sync **sync_out);
323 struct vk_sync *sync);
326 struct vk_sync *sync,
330 struct vk_sync *sync,
334 struct vk_sync *sync);
337 struct vk_sync *sync,
349 struct vk_sync *sync,
353 struct vk_sync *sync,
357 struct vk_sync *sync,
361 struct vk_sync *sync,
365 struct vk_sync *dst,
366 struct vk_sync *src);