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: Nayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
adea72c504
commit
6201e033d7
|
@ -349,8 +349,13 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity)
|
|||
struct dma_fence * fence = entity->dependency;
|
||||
struct drm_sched_fence *s_fence;
|
||||
|
||||
if (fence->context == entity->fence_context) {
|
||||
/* We can ignore fences from ourself */
|
||||
if (fence->context == entity->fence_context ||
|
||||
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);
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue