aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/lima
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2019-09-02 22:31:00 +0200
committerConnor Abbott <[email protected]>2019-09-09 17:41:35 +0700
commit2955875381c18290a8f6f798ab78dc53cf3daa47 (patch)
tree59bb2e103cd5ed46f6257ba209d21002cf2a89a3 /src/gallium/drivers/lima
parent63acdb5ce68b77443bed06729d109145ca8dfa77 (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.c5
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;
}