summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2015-10-27 17:00:17 +0100
committerAlex Deucher <alexander.deucher@amd.com>2015-10-28 17:04:18 -0400
commitfe537d003f9a97c65848e47b3b9acbb0c5002fd9 (patch)
tree62a6d431080e3c8e2912000f7f6e0a663c742ed1
parent6bd53c4125e545a495fba63024d5522e33c600f5 (diff)
downloadlwn-fe537d003f9a97c65848e47b3b9acbb0c5002fd9.tar.gz
lwn-fe537d003f9a97c65848e47b3b9acbb0c5002fd9.zip
drm/amdgpu: ignore scheduler fences from the same entity
We are going to submit them before the job anyway. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 7fa1d7a438e9..8dd7316b1d4f 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -222,6 +222,12 @@ amd_sched_entity_pop_job(struct amd_sched_entity *entity)
while ((entity->dependency = sched->ops->dependency(sched_job))) {
+ if (entity->dependency->context == entity->fence_context) {
+ /* We can ignore fences from ourself */
+ fence_put(entity->dependency);
+ continue;
+ }
+
if (fence_add_callback(entity->dependency, &entity->cb,
amd_sched_entity_wakeup))
fence_put(entity->dependency);