GitLab will be down for maintenance this Sunday 13th June, from approx 7-11am UTC. This is for a PostgreSQL migration. See the tracker issue for more informations.

Commit dfd536c6 authored by Chris Wilson's avatar Chris Wilson 🤔
Browse files

intel: Export a function to re-enable implicit synchronisation

Implicit synchronisation is the default behaviour of the kernel when
rendering with an execobject. It may be disabled with
drm_intel_gem_bo_disable_implicit_sync(), and then to restore it use
Signed-off-by: Chris Wilson's avatarChris Wilson <>
parent 22cfd043
......@@ -187,6 +187,7 @@ int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo);
int drm_intel_bufmgr_gem_can_disable_implicit_sync(drm_intel_bufmgr *bufmgr);
void drm_intel_gem_bo_disable_implicit_sync(drm_intel_bo *bo);
void drm_intel_gem_bo_enable_implicit_sync(drm_intel_bo *bo);
void *drm_intel_gem_bo_map__cpu(drm_intel_bo *bo);
void *drm_intel_gem_bo_map__gtt(drm_intel_bo *bo);
......@@ -2815,6 +2815,25 @@ drm_intel_gem_bo_disable_implicit_sync(drm_intel_bo *bo)
bo_gem->kflags |= EXEC_OBJECT_ASYNC;
* Enables implicit synchronisation before executing the bo
* This is the default behaviour of the kernel, to wait upon prior writes
* completing on the object before rendering with it, or to wait for prior
* reads to complete before writing into the object.
* drm_intel_gem_bo_disable_implicit_sync() can stop this behaviour, telling
* the kernel never to insert a stall before using the object. Then this
* function can be used to restore the implicit sync before subsequent
* rendering.
drm_intel_gem_bo_enable_implicit_sync(drm_intel_bo *bo)
drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *) bo;
bo_gem->kflags &= ~EXEC_OBJECT_ASYNC;
* Query whether the kernel supports disabling of its implicit synchronisation
* before execbuf. See drm_intel_gem_bo_disable_implicit_sync()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment