freedreno/a6xx: stop using ir3_emit_{vs,fs}_consts()
[mesa.git] / src / gallium / drivers / freedreno / a6xx / fd6_emit.c
index fd2ceaa47301cc243b751148b3fd5dd4e399d586..69d0c3eee95ebaeb015054a298f3fe260f667af4 100644 (file)
@@ -934,7 +934,19 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
                struct fd_ringbuffer *vsconstobj = fd_submit_new_ringbuffer(
                                ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING);
 
-               ir3_emit_vs_consts(vp, vsconstobj, ctx, emit->info);
+               ir3_emit_user_consts(ctx->screen, vp, vsconstobj,
+                               &ctx->constbuf[PIPE_SHADER_VERTEX]);
+               ir3_emit_ubos(ctx->screen, vp, vsconstobj,
+                               &ctx->constbuf[PIPE_SHADER_VERTEX]);
+               ir3_emit_immediates(ctx->screen, vp, vsconstobj);
+               ir3_emit_ssbo_sizes(ctx->screen, vp, vsconstobj,
+                               &ctx->shaderbuf[PIPE_SHADER_VERTEX]);
+               ir3_emit_image_dims(ctx->screen, vp, vsconstobj,
+                               &ctx->shaderimg[PIPE_SHADER_VERTEX]);
+
+               if (ir3_needs_vs_driver_params(vp))
+                       ir3_emit_vs_driver_params(vp, vsconstobj, ctx, emit->info);
+
                fd6_emit_add_group(emit, vsconstobj, FD6_GROUP_VS_CONST, 0x7);
                fd_ringbuffer_del(vsconstobj);
        }
@@ -943,7 +955,16 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit)
                struct fd_ringbuffer *fsconstobj = fd_submit_new_ringbuffer(
                                ctx->batch->submit, 0x1000, FD_RINGBUFFER_STREAMING);
 
-               ir3_emit_fs_consts(fp, fsconstobj, ctx);
+               ir3_emit_user_consts(ctx->screen, fp, fsconstobj,
+                               &ctx->constbuf[PIPE_SHADER_FRAGMENT]);
+               ir3_emit_ubos(ctx->screen, fp, fsconstobj,
+                               &ctx->constbuf[PIPE_SHADER_FRAGMENT]);
+               ir3_emit_immediates(ctx->screen, fp, fsconstobj);
+               ir3_emit_ssbo_sizes(ctx->screen, fp, fsconstobj,
+                               &ctx->shaderbuf[PIPE_SHADER_FRAGMENT]);
+               ir3_emit_image_dims(ctx->screen, fp, fsconstobj,
+                               &ctx->shaderimg[PIPE_SHADER_FRAGMENT]);
+
                fd6_emit_add_group(emit, fsconstobj, FD6_GROUP_FS_CONST, 0x6);
                fd_ringbuffer_del(fsconstobj);
        }
@@ -1333,15 +1354,16 @@ fd6_framebuffer_barrier(struct fd_context *ctx)
 void
 fd6_emit_init_screen(struct pipe_screen *pscreen)
 {
+       struct fd_screen *screen = fd_screen(pscreen);
+       screen->emit_const = fd6_emit_const;
+       screen->emit_const_bo = fd6_emit_const_bo;
+       screen->emit_ib = fd6_emit_ib;
+       screen->mem_to_mem = fd6_mem_to_mem;
 }
 
 void
 fd6_emit_init(struct pipe_context *pctx)
 {
        struct fd_context *ctx = fd_context(pctx);
-       ctx->emit_const = fd6_emit_const;
-       ctx->emit_const_bo = fd6_emit_const_bo;
-       ctx->emit_ib = fd6_emit_ib;
-       ctx->mem_to_mem = fd6_mem_to_mem;
        ctx->framebuffer_barrier = fd6_framebuffer_barrier;
 }