[Intel-gfx] Wait-for-submit on future syncobj

Chris Wilson chris at chris-wilson.co.uk
Mon May 4 13:54:37 UTC 2020


Quoting Chris Wilson (2020-05-04 14:50:24)
> A simplified example of out-of-order execution that is required by iris:
> 
>         struct drm_i915_gem_exec_object2 obj = {
>                 .offset = 24 << 20,
>                 .handle = future_submit_batch(i915, 24 << 20),
>                 .flags = EXEC_OBJECT_PINNED,
>         };
>         struct drm_i915_gem_exec_fence fence = {
>                 .handle = syncobj_create(i915, 0),
>         };
>         struct drm_i915_gem_execbuffer2 execbuf  = {
>                 .buffers_ptr = to_user_pointer(&obj),
>                 .buffer_count = 1,
>                 .cliprects_ptr = to_user_pointer(&fence),
>                 .num_cliprects = 1,
>                 .flags = engine | I915_EXEC_FENCE_ARRAY,
>         };
>         uint32_t result;
>         int out;
> 
>         /*
>          * Here we submit client A waiting on client B, but internally client
>          * B has a semaphore that waits on client A. This relies on timeslicing
>          * to reorder B before A, even though userspace has asked to submit

A before B


More information about the Intel-gfx mailing list