aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/lima/lima_draw.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/lima/lima_draw.c b/src/gallium/drivers/lima/lima_draw.c
index 0449eaba7cd..bd6b62a3bb6 100644
--- a/src/gallium/drivers/lima/lima_draw.c
+++ b/src/gallium/drivers/lima/lima_draw.c
@@ -1086,6 +1086,14 @@ lima_pack_render_state(struct lima_context *ctx, const struct pipe_draw_info *in
if (ctx->const_buffer[PIPE_SHADER_FRAGMENT].buffer) {
render->uniforms_address =
lima_ctx_buff_va(ctx, lima_ctx_buff_pp_uniform_array, LIMA_CTX_BUFF_SUBMIT_PP);
+ uint32_t size = ctx->buffer_state[lima_ctx_buff_pp_uniform].size;
+ uint32_t bits = 0;
+ if (size >= 8) {
+ bits = util_last_bit(size >> 3) - 1;
+ bits += size & u_bit_consecutive(0, bits + 3) ? 1 : 0;
+ }
+ render->uniforms_address |= bits > 0xf ? 0xf : bits;
+
render->aux0 |= 0x80;
render->aux1 |= 0x10000;
}