aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno/ir3
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_gallium.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
index 4481c544217..2d9516ade5c 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_gallium.c
@@ -254,6 +254,22 @@ emit_user_consts(struct fd_context *ctx, const struct ir3_shader_variant *v,
cb->user_buffer, cb->buffer);
}
}
+
+ struct ir3_ubo_analysis_state *state;
+ state = &v->shader->ubo_state;
+
+ for (uint32_t i = 1; i < ARRAY_SIZE(state->range); i++) {
+ struct pipe_constant_buffer *cb = &constbuf->cb[i];
+
+ if (state->range[i].start < state->range[i].end &&
+ constbuf->enabled_mask & (1 << i)) {
+
+ ctx->emit_const(ring, v->type, state->range[i].offset / 4,
+ cb->buffer_offset + state->range[i].start,
+ (state->range[i].end - state->range[i].start) / 4,
+ cb->user_buffer, cb->buffer);
+ }
+ }
}
static void