From 07ec745014a9fd07a1948aa0f653b1a57b9b5e12 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 1 Jun 2020 11:32:04 -0700 Subject: [PATCH] freedreno/ir3: Stop pushing immediates once we've filled the constbuf. If we filled the constbuf up with UBOs, we may need to avoid generating more immediate push constants. Part-of: --- src/freedreno/ir3/ir3_cp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/freedreno/ir3/ir3_cp.c b/src/freedreno/ir3/ir3_cp.c index ca80b7a8bc2..052c8a539ac 100644 --- a/src/freedreno/ir3/ir3_cp.c +++ b/src/freedreno/ir3/ir3_cp.c @@ -383,7 +383,14 @@ lower_immed(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr, unsigned n, } if (i == const_state->immediate_idx) { - /* need to generate a new immediate: */ + struct ir3_compiler *compiler = instr->block->shader->compiler; + /* Add on a new immediate to be pushed, if we have space left in the + * constbuf. + */ + if (const_state->offsets.immediate + const_state->immediate_idx / 4 >= + compiler->max_const) + return false; + swiz = i % 4; idx = i / 4; -- 2.30.2