From: Eric Anholt Date: Mon, 1 Jun 2020 18:32:04 +0000 (-0700) Subject: freedreno/ir3: Stop pushing immediates once we've filled the constbuf. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=07ec745014a9fd07a1948aa0f653b1a57b9b5e12;p=mesa.git 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: --- 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;