提交 6201e033 编写于 作者: N Nayan Deshmukh 提交者: Alex Deucher

drm/scheduler: fix a corner case in dependency optimization

When checking for a dependency fence for belonging to the same entity
compare it with scheduled as well finished fence. Earlier we were only
comparing it with the scheduled fence.
Signed-off-by: NNayan Deshmukh <nayan26deshmukh@gmail.com>
Reviewed-by: NChristian König <christian.koenig@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 adea72c5
...@@ -349,8 +349,13 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity) ...@@ -349,8 +349,13 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity)
struct dma_fence * fence = entity->dependency; struct dma_fence * fence = entity->dependency;
struct drm_sched_fence *s_fence; struct drm_sched_fence *s_fence;
if (fence->context == entity->fence_context) { if (fence->context == entity->fence_context ||
/* We can ignore fences from ourself */ fence->context == entity->fence_context + 1) {
/*
* Fence is a scheduled/finished fence from a job
* which belongs to the same entity, we can ignore
* fences from ourself
*/
dma_fence_put(entity->dependency); dma_fence_put(entity->dependency);
return false; return false;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册