Top | ![]() |
![]() |
![]() |
![]() |
igt_spin_t * | igt_spin_batch_new () |
igt_spin_t * | igt_spin_batch_new_fence () |
void | igt_spin_batch_set_timeout () |
void | igt_spin_batch_end () |
void | igt_spin_batch_free () |
void | igt_terminate_spin_batches () |
A lot of igt testcases need some GPU workload to make sure a race window is big enough. Unfortunately having a fixed amount of workload leads to spurious test failures or overly long runtimes on some fast/slow platforms. This library contains functionality to submit GPU workloads that should consume exactly a specific amount of time.
igt_spin_t * igt_spin_batch_new (int fd
,uint32_t ctx
,unsigned engine
,uint32_t dep
);
Start a recursive batch on a ring. Immediately returns a igt_spin_t that
contains the batch's handle that can be waited upon. The returned structure
must be passed to igt_spin_batch_free()
for post-processing.
igt_spin_t * igt_spin_batch_new_fence (int fd
,uint32_t ctx
,unsigned engine
);
Start a recursive batch on a ring. Immediately returns a igt_spin_t that
contains the batch's handle that can be waited upon. The returned structure
must be passed to igt_spin_batch_free()
for post-processing.
igt_spin_t will contain an output fence associtated with this batch.
void igt_spin_batch_set_timeout (igt_spin_t *spin
,int64_t ns
);
Specify a timeout. This ends the recursive batch associated with spin
after
the timeout has elapsed.
spin |
spin batch state from |
|
ns |
amount of time in nanoseconds the batch continues to execute before finishing. |
void
igt_spin_batch_end (igt_spin_t *spin
);
End the recursive batch associated with spin
manually.
void igt_spin_batch_free (int fd
,igt_spin_t *spin
);
This function does the necessary post-processing after starting a recursive
batch with igt_spin_batch_new()
.