freedreno/a4xx: constify the shader variants
authorRob Clark <robclark@freedesktop.org>
Mon, 7 Mar 2016 05:50:21 +0000 (00:50 -0500)
committerRob Clark <robclark@freedesktop.org>
Sun, 13 Mar 2016 16:23:40 +0000 (12:23 -0400)
Most of the driver just needs read-only access, so constify..

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/a4xx/fd4_emit.c
src/gallium/drivers/freedreno/a4xx/fd4_emit.h
src/gallium/drivers/freedreno/ir3/ir3_shader.c
src/gallium/drivers/freedreno/ir3/ir3_shader.h

index 78a7d0e3fab42421fdd9d51ad50aaeb2437db983..e887abf709f3dfec1146eea177426a48143d0661 100644 (file)
@@ -328,7 +328,7 @@ fd4_emit_vertex_bufs(struct fd_ringbuffer *ring, struct fd4_emit *emit)
        int32_t i, j, last = -1;
        uint32_t total_in = 0;
        const struct fd_vertex_state *vtx = emit->vtx;
-       struct ir3_shader_variant *vp = fd4_emit_get_vp(emit);
+       const struct ir3_shader_variant *vp = fd4_emit_get_vp(emit);
        unsigned vertex_regid = regid(63, 0);
        unsigned instance_regid = regid(63, 0);
        unsigned vtxcnt_regid = regid(63, 0);
@@ -460,8 +460,8 @@ void
 fd4_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
                struct fd4_emit *emit)
 {
-       struct ir3_shader_variant *vp = fd4_emit_get_vp(emit);
-       struct ir3_shader_variant *fp = fd4_emit_get_fp(emit);
+       const struct ir3_shader_variant *vp = fd4_emit_get_vp(emit);
+       const struct ir3_shader_variant *fp = fd4_emit_get_fp(emit);
        uint32_t dirty = emit->dirty;
 
        emit_marker(ring, 5);
index 3a1d4b617d325c3b861600742f87d6b041068dc0..ba4a6ecc7ee5f128cd3eacd0362775f3d0dc05ef 100644 (file)
@@ -59,7 +59,7 @@ struct fd4_emit {
        bool no_decode_srgb;
 
        /* cached to avoid repeated lookups of same variants: */
-       struct ir3_shader_variant *vp, *fp;
+       const struct ir3_shader_variant *vp, *fp;
        /* TODO: other shader stages.. */
 };
 
@@ -70,7 +70,7 @@ static inline enum a4xx_color_fmt fd4_emit_format(struct pipe_surface *surf)
        return fd4_pipe2color(surf->format);
 }
 
-static inline struct ir3_shader_variant *
+static inline const struct ir3_shader_variant *
 fd4_emit_get_vp(struct fd4_emit *emit)
 {
        if (!emit->vp) {
@@ -80,7 +80,7 @@ fd4_emit_get_vp(struct fd4_emit *emit)
        return emit->vp;
 }
 
-static inline struct ir3_shader_variant *
+static inline const struct ir3_shader_variant *
 fd4_emit_get_fp(struct fd4_emit *emit)
 {
        if (!emit->fp) {
index 4d0fcca6b92d536fdb888ea27479b0da119811ed..c05b52e7a5e1627754ec388a6bfd87b40cfa5f6d 100644 (file)
@@ -462,7 +462,7 @@ ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin)
 #include "freedreno_resource.h"
 
 static void
-emit_user_consts(struct fd_context *ctx, struct ir3_shader_variant *v,
+emit_user_consts(struct fd_context *ctx, const struct ir3_shader_variant *v,
                struct fd_ringbuffer *ring, struct fd_constbuf_stateobj *constbuf)
 {
        const unsigned index = 0;     /* user consts are index 0 */
@@ -500,7 +500,7 @@ emit_user_consts(struct fd_context *ctx, struct ir3_shader_variant *v,
 }
 
 static void
-emit_ubos(struct fd_context *ctx, struct ir3_shader_variant *v,
+emit_ubos(struct fd_context *ctx, const struct ir3_shader_variant *v,
                struct fd_ringbuffer *ring, struct fd_constbuf_stateobj *constbuf)
 {
        uint32_t offset = v->first_driver_param + IR3_UBOS_OFF;
@@ -529,7 +529,7 @@ emit_ubos(struct fd_context *ctx, struct ir3_shader_variant *v,
 }
 
 static void
-emit_immediates(struct fd_context *ctx, struct ir3_shader_variant *v,
+emit_immediates(struct fd_context *ctx, const struct ir3_shader_variant *v,
                struct fd_ringbuffer *ring)
 {
        int size = v->immediates_count;
@@ -553,7 +553,7 @@ emit_immediates(struct fd_context *ctx, struct ir3_shader_variant *v,
 
 /* emit stream-out buffers: */
 static void
-emit_tfbos(struct fd_context *ctx, struct ir3_shader_variant *v,
+emit_tfbos(struct fd_context *ctx, const struct ir3_shader_variant *v,
                struct fd_ringbuffer *ring)
 {
        /* streamout addresses after driver-params: */
@@ -584,7 +584,7 @@ emit_tfbos(struct fd_context *ctx, struct ir3_shader_variant *v,
 }
 
 static uint32_t
-max_tf_vtx(struct fd_context *ctx, struct ir3_shader_variant *v)
+max_tf_vtx(struct fd_context *ctx, const struct ir3_shader_variant *v)
 {
        struct fd_streamout_stateobj *so = &ctx->streamout;
        struct pipe_stream_output_info *info = &v->shader->stream_output;
@@ -629,7 +629,7 @@ max_tf_vtx(struct fd_context *ctx, struct ir3_shader_variant *v)
 }
 
 void
-ir3_emit_consts(struct ir3_shader_variant *v, struct fd_ringbuffer *ring,
+ir3_emit_consts(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring,
                struct fd_context *ctx, const struct pipe_draw_info *info, uint32_t dirty)
 {
        if (dirty & (FD_DIRTY_PROG | FD_DIRTY_CONSTBUF)) {
index c6819b17761b07d2eff5757fadc72ade5a8d47e9..c89dc29ff08784956934e611e66b91aa9cec3f94 100644 (file)
@@ -258,7 +258,7 @@ void ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin);
 
 struct fd_ringbuffer;
 struct fd_context;
-void ir3_emit_consts(struct ir3_shader_variant *v, struct fd_ringbuffer *ring,
+void ir3_emit_consts(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring,
                struct fd_context *ctx, const struct pipe_draw_info *info, uint32_t dirty);
 
 static inline const char *