diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_compute.cc b/src/gallium/drivers/freedreno/a6xx/fd6_compute.cc index 195be864fdb..dfc86c7bb31 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_compute.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_compute.cc @@ -109,7 +109,7 @@ cs_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring, } fd6_emit_shader(ctx, ring, v); - fd6_emit_immediates(ctx->screen, v, ring); + fd6_emit_immediates(v, ring); } template diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_const.cc b/src/gallium/drivers/freedreno/a6xx/fd6_const.cc index a9b876de20e..f689e55c32e 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_const.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_const.cc @@ -350,18 +350,16 @@ fd6_emit_cs_user_consts(struct fd_context *ctx, } void -fd6_emit_immediates(struct fd_screen *screen, - const struct ir3_shader_variant *v, +fd6_emit_immediates(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring) { - ir3_emit_immediates(screen, v, ring); + ir3_emit_immediates(v, ring); } void -fd6_emit_link_map(struct fd_screen *screen, - const struct ir3_shader_variant *producer, - const struct ir3_shader_variant *v, +fd6_emit_link_map(const struct ir3_shader_variant *producer, + const struct ir3_shader_variant *consumer, struct fd_ringbuffer *ring) { - ir3_emit_link_map(screen, producer, v, ring); + ir3_emit_link_map(producer, consumer, ring); } diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_const.h b/src/gallium/drivers/freedreno/a6xx/fd6_const.h index 33e059641bc..6f0cc33d63e 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_const.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_const.h @@ -44,12 +44,10 @@ void fd6_emit_cs_driver_params(struct fd_context *ctx, void fd6_emit_cs_user_consts(struct fd_context *ctx, struct fd_ringbuffer *ring, struct fd6_compute_state *cs) assert_dt; -void fd6_emit_immediates(struct fd_screen *screen, - const struct ir3_shader_variant *v, +void fd6_emit_immediates(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring) assert_dt; -void fd6_emit_link_map(struct fd_screen *screen, - const struct ir3_shader_variant *producer, - const struct ir3_shader_variant *v, +void fd6_emit_link_map(const struct ir3_shader_variant *producer, + const struct ir3_shader_variant *consumer, struct fd_ringbuffer *ring) assert_dt; #endif /* FD6_CONST_H */ diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc index f4f373f1bbe..96486c2e256 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc @@ -598,7 +598,7 @@ setup_stateobj(struct fd_screen *screen, struct fd_ringbuffer *ring, A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(ir3_shader_branchstack_hw(vs))); fd6_emit_shader(ctx, ring, vs); - fd6_emit_immediates(ctx->screen, vs, ring); + fd6_emit_immediates(vs, ring); if (hs) { fd6_emit_tess_bos(ctx->screen, ring, hs); fd6_emit_tess_bos(ctx->screen, ring, ds); @@ -743,8 +743,8 @@ setup_stateobj(struct fd_screen *screen, struct fd_ringbuffer *ring, A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(ir3_shader_branchstack_hw(hs))); fd6_emit_shader(ctx, ring, hs); - fd6_emit_immediates(ctx->screen, hs, ring); - fd6_emit_link_map(ctx->screen, vs, hs, ring); + fd6_emit_immediates(hs, ring); + fd6_emit_link_map(vs, hs, ring); OUT_PKT4(ring, REG_A6XX_SP_DS_CTRL_REG0, 1); OUT_RING( @@ -754,8 +754,8 @@ setup_stateobj(struct fd_screen *screen, struct fd_ringbuffer *ring, A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(ir3_shader_branchstack_hw(ds))); fd6_emit_shader(ctx, ring, ds); - fd6_emit_immediates(ctx->screen, ds, ring); - fd6_emit_link_map(ctx->screen, hs, ds, ring); + fd6_emit_immediates(ds, ring); + fd6_emit_link_map(hs, ds, ring); OUT_PKT4(ring, REG_A6XX_PC_TESS_NUM_VERTEX, 1); OUT_RING(ring, hs->tess.tcs_vertices_out); @@ -1023,11 +1023,11 @@ setup_stateobj(struct fd_screen *screen, struct fd_ringbuffer *ring, A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(ir3_shader_branchstack_hw(gs))); fd6_emit_shader(ctx, ring, gs); - fd6_emit_immediates(ctx->screen, gs, ring); + fd6_emit_immediates(gs, ring); if (ds) - fd6_emit_link_map(ctx->screen, ds, gs, ring); + fd6_emit_link_map(ds, gs, ring); else - fd6_emit_link_map(ctx->screen, vs, gs, ring); + fd6_emit_link_map(vs, gs, ring); OUT_PKT4(ring, REG_A6XX_VPC_GS_PACK, 1); OUT_RING(ring, A6XX_VPC_GS_PACK_POSITIONLOC(pos_loc) | @@ -1178,7 +1178,7 @@ setup_stateobj(struct fd_screen *screen, struct fd_ringbuffer *ring, A6XX_VFD_CONTROL_6_PRIMID4PSEN)); /* VFD_CONTROL_6 */ if (!binning_pass) - fd6_emit_immediates(ctx->screen, fs, ring); + fd6_emit_immediates(fs, ring); } static void emit_interp_state(struct fd_ringbuffer *ring, diff --git a/src/gallium/drivers/freedreno/ir3/ir3_const.h b/src/gallium/drivers/freedreno/ir3/ir3_const.h index 40e86544994..922601d7f44 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_const.h +++ b/src/gallium/drivers/freedreno/ir3/ir3_const.h @@ -111,8 +111,7 @@ ir3_user_consts_size(struct ir3_ubo_analysis_state *state, unsigned *packets, * constant buffer. */ static inline void -ir3_emit_constant_data(struct fd_screen *screen, - const struct ir3_shader_variant *v, +ir3_emit_constant_data(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring) { const struct ir3_const_state *const_state = ir3_const_state(v); @@ -308,8 +307,7 @@ ir3_emit_image_dims(struct fd_screen *screen, } static inline void -ir3_emit_immediates(struct fd_screen *screen, - const struct ir3_shader_variant *v, +ir3_emit_immediates(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring) { const struct ir3_const_state *const_state = ir3_const_state(v); @@ -331,30 +329,29 @@ ir3_emit_immediates(struct fd_screen *screen, /* NIR constant data has the same lifetime as immediates, so upload it * now, too. */ - ir3_emit_constant_data(screen, v, ring); + ir3_emit_constant_data(v, ring); } static inline void -ir3_emit_link_map(struct fd_screen *screen, - const struct ir3_shader_variant *producer, - const struct ir3_shader_variant *v, +ir3_emit_link_map(const struct ir3_shader_variant *producer, + const struct ir3_shader_variant *consumer, struct fd_ringbuffer *ring) { - const struct ir3_const_state *const_state = ir3_const_state(v); + const struct ir3_const_state *const_state = ir3_const_state(consumer); uint32_t base = const_state->offsets.primitive_map; - int size = DIV_ROUND_UP(v->input_size, 4); + int size = DIV_ROUND_UP(consumer->input_size, 4); /* truncate size to avoid writing constants that shader * does not use: */ - size = MIN2(size + base, v->constlen) - base; + size = MIN2(size + base, consumer->constlen) - base; /* convert out of vec4: */ base *= 4; size *= 4; if (size > 0) - emit_const_user(ring, v, base, size, producer->output_loc); + emit_const_user(ring, consumer, base, size, producer->output_loc); } /* emit stream-out buffers: */ @@ -423,7 +420,7 @@ emit_common_consts(const struct ir3_shader_variant *v, ir3_emit_user_consts(v, ring, constbuf); ir3_emit_ubos(ctx, v, ring, constbuf); if (shader_dirty) - ir3_emit_immediates(ctx->screen, v, ring); + ir3_emit_immediates(v, ring); } if (dirty & (FD_DIRTY_SHADER_PROG | FD_DIRTY_SHADER_IMAGE)) {