diff options
author | Connor Abbott <[email protected]> | 2019-09-02 22:31:00 +0200 |
---|---|---|
committer | Connor Abbott <[email protected]> | 2019-09-09 17:41:35 +0700 |
commit | 2955875381c18290a8f6f798ab78dc53cf3daa47 (patch) | |
tree | 59bb2e103cd5ed46f6257ba209d21002cf2a89a3 /src/gallium/drivers/lima | |
parent | 63acdb5ce68b77443bed06729d109145ca8dfa77 (diff) |
lima/gpir: Fix schedule_first insertion logic
The idea was to make sure schedule_first nodes were always first in the
ready list. I made sure they were inserted first, but not that other
nodes wouldn't later be scheduled ahead of them. Fixes
[email protected]@execution@built-in-functions@vs-exp-float and probably
others.
Reviewed-by: Vasily Khoruzhick <[email protected]>
Tested-by: Vasily Khoruzhick <[email protected]>
Diffstat (limited to 'src/gallium/drivers/lima')
-rw-r--r-- | src/gallium/drivers/lima/ir/gp/scheduler.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/lima/ir/gp/scheduler.c b/src/gallium/drivers/lima/ir/gp/scheduler.c index bfb64543e06..8fff4f79b36 100644 --- a/src/gallium/drivers/lima/ir/gp/scheduler.c +++ b/src/gallium/drivers/lima/ir/gp/scheduler.c @@ -441,8 +441,9 @@ static void schedule_insert_ready_list(sched_ctx *ctx, struct list_head *insert_pos = &ctx->ready_list; list_for_each_entry(gpir_node, node, &ctx->ready_list, list) { - if (insert_node->sched.dist > node->sched.dist || - gpir_op_infos[insert_node->op].schedule_first) { + if ((insert_node->sched.dist > node->sched.dist || + gpir_op_infos[insert_node->op].schedule_first) && + !gpir_op_infos[node->op].schedule_first) { insert_pos = &node->list; break; } |