Skip to content

RFC: Fix async binds by adding drm_syncobj_ufence

Not very well documented, more details in: #151

Very high level:

  • Add drm_syncobj_ufence which is counting fence which combines a drm_syncobj and dma-fence. Can't be exported so dma-fence rules do not apply. Strictly used for ordering 2 operations (e.g. exec and binds).
  • Use new drm_syncobj_ufence to order async binds processing (e.g. worker has run) which subsequent operations that depending on operation completion
  • Kill async_op fence as it is not allowed per dma-fence rules

Compile tested only as this requires large IGT changes. Will work on that soon, just have a bunch of tasks floating around.

Looking for feedback if this design is sane and if we should pursue this further.

Next steps if we want to move forward would be engage with the community on the drm_syncobj_ufence design, update all IGTs with new uAPI, update all UMDs with new uAPI, and lastly kill our internal XE user fence implementation completely.

Merge request reports