From 2189920e49d86e011276d1d84a3ab437aa0ca1b6 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 27 Sep 2023 10:24:13 -0700 Subject: [PATCH] freedreno: Fix user const buffer dirtiness If we went the upload_user_buffer() path, cb->buffer would be null, causing fd_dirty_shader_resource() to be a no-op. What we want to use is &so->cb[index]. Fixes: b43e5aec0d2c ("freedreno/batch: Move submit bo tracking to batch") Signed-off-by: Rob Clark Part-of: --- src/gallium/drivers/freedreno/freedreno_state.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/freedreno_state.c b/src/gallium/drivers/freedreno/freedreno_state.c index da6b5b7cd4f..d060122498d 100644 --- a/src/gallium/drivers/freedreno/freedreno_state.c +++ b/src/gallium/drivers/freedreno/freedreno_state.c @@ -159,8 +159,10 @@ fd_set_constant_buffer(struct pipe_context *pctx, enum pipe_shader_type shader, return; } - if (cb->user_buffer && ctx->screen->gen >= 6) + if (cb->user_buffer && ctx->screen->gen >= 6) { upload_user_buffer(pctx, &so->cb[index]); + cb = &so->cb[index]; + } so->enabled_mask |= 1 << index;