summaryrefslogtreecommitdiff
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2023-05-17 15:00:46 +0200
committerMarge Bot <emma+marge@anholt.net>2023-09-11 10:34:10 +0000
commit252aee26346ee2f45dd009332d8997975bf7a2cf (patch)
treee54844f20e832ffaaf1f9762eafa57378e3407f2 /src/gallium/drivers
parentd1b333a0b57d24b03dfd960859b52be43cb3e6d0 (diff)
freedreno, ir3, tu: Constify various uses of ir3_shader_variant
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25076>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/freedreno/a3xx/fd3_program.c10
-rw-r--r--src/gallium/drivers/freedreno/a3xx/fd3_program.h6
-rw-r--r--src/gallium/drivers/freedreno/a4xx/fd4_program.c10
-rw-r--r--src/gallium/drivers/freedreno/a4xx/fd4_program.h6
-rw-r--r--src/gallium/drivers/freedreno/a5xx/fd5_program.c10
-rw-r--r--src/gallium/drivers/freedreno/a5xx/fd5_program.h6
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_const.cc6
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_const.h2
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_emit.h10
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_program.cc12
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_program.h12
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_cache.c4
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_cache.h8
13 files changed, 55 insertions, 47 deletions
diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_program.c b/src/gallium/drivers/freedreno/a3xx/fd3_program.c
index 2219d2e7c4a..23443ee1e8e 100644
--- a/src/gallium/drivers/freedreno/a3xx/fd3_program.c
+++ b/src/gallium/drivers/freedreno/a3xx/fd3_program.c
@@ -450,10 +450,12 @@ fd3_program_emit(struct fd_ringbuffer *ring, struct fd3_emit *emit, int nr,
}
static struct ir3_program_state *
-fd3_program_create(void *data, struct ir3_shader_variant *bs,
- struct ir3_shader_variant *vs, struct ir3_shader_variant *hs,
- struct ir3_shader_variant *ds, struct ir3_shader_variant *gs,
- struct ir3_shader_variant *fs,
+fd3_program_create(void *data, const struct ir3_shader_variant *bs,
+ const struct ir3_shader_variant *vs,
+ const struct ir3_shader_variant *hs,
+ const struct ir3_shader_variant *ds,
+ const struct ir3_shader_variant *gs,
+ const struct ir3_shader_variant *fs,
const struct ir3_cache_key *key) in_dt
{
struct fd_context *ctx = fd_context(data);
diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_program.h b/src/gallium/drivers/freedreno/a3xx/fd3_program.h
index cefe1929773..4c8f3c46845 100644
--- a/src/gallium/drivers/freedreno/a3xx/fd3_program.h
+++ b/src/gallium/drivers/freedreno/a3xx/fd3_program.h
@@ -37,9 +37,9 @@ struct fd3_emit;
struct fd3_program_state {
struct ir3_program_state base;
- struct ir3_shader_variant *bs; /* VS for when emit->binning */
- struct ir3_shader_variant *vs;
- struct ir3_shader_variant *fs; /* FS for when !emit->binning */
+ const struct ir3_shader_variant *bs; /* VS for when emit->binning */
+ const struct ir3_shader_variant *vs;
+ const struct ir3_shader_variant *fs; /* FS for when !emit->binning */
};
static inline struct fd3_program_state *
diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_program.c b/src/gallium/drivers/freedreno/a4xx/fd4_program.c
index d165cebd95a..be1d4a717a5 100644
--- a/src/gallium/drivers/freedreno/a4xx/fd4_program.c
+++ b/src/gallium/drivers/freedreno/a4xx/fd4_program.c
@@ -578,10 +578,12 @@ fd4_program_emit(struct fd_ringbuffer *ring, struct fd4_emit *emit, int nr,
}
static struct ir3_program_state *
-fd4_program_create(void *data, struct ir3_shader_variant *bs,
- struct ir3_shader_variant *vs, struct ir3_shader_variant *hs,
- struct ir3_shader_variant *ds, struct ir3_shader_variant *gs,
- struct ir3_shader_variant *fs,
+fd4_program_create(void *data, const struct ir3_shader_variant *bs,
+ const struct ir3_shader_variant *vs,
+ const struct ir3_shader_variant *hs,
+ const struct ir3_shader_variant *ds,
+ const struct ir3_shader_variant *gs,
+ const struct ir3_shader_variant *fs,
const struct ir3_cache_key *key) in_dt
{
struct fd_context *ctx = fd_context(data);
diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_program.h b/src/gallium/drivers/freedreno/a4xx/fd4_program.h
index 8de10963966..0f1a9ad888b 100644
--- a/src/gallium/drivers/freedreno/a4xx/fd4_program.h
+++ b/src/gallium/drivers/freedreno/a4xx/fd4_program.h
@@ -37,9 +37,9 @@ struct fd4_emit;
struct fd4_program_state {
struct ir3_program_state base;
- struct ir3_shader_variant *bs; /* VS for when emit->binning */
- struct ir3_shader_variant *vs;
- struct ir3_shader_variant *fs; /* FS for when !emit->binning */
+ const struct ir3_shader_variant *bs; /* VS for when emit->binning */
+ const struct ir3_shader_variant *vs;
+ const struct ir3_shader_variant *fs; /* FS for when !emit->binning */
};
static inline struct fd4_program_state *
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_program.c b/src/gallium/drivers/freedreno/a5xx/fd5_program.c
index f2c19c24917..32b97f04c79 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_program.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_program.c
@@ -748,10 +748,12 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
}
static struct ir3_program_state *
-fd5_program_create(void *data, struct ir3_shader_variant *bs,
- struct ir3_shader_variant *vs, struct ir3_shader_variant *hs,
- struct ir3_shader_variant *ds, struct ir3_shader_variant *gs,
- struct ir3_shader_variant *fs,
+fd5_program_create(void *data, const struct ir3_shader_variant *bs,
+ const struct ir3_shader_variant *vs,
+ const struct ir3_shader_variant *hs,
+ const struct ir3_shader_variant *ds,
+ const struct ir3_shader_variant *gs,
+ const struct ir3_shader_variant *fs,
const struct ir3_cache_key *key) in_dt
{
struct fd_context *ctx = fd_context(data);
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_program.h b/src/gallium/drivers/freedreno/a5xx/fd5_program.h
index d6904cc4aa9..2f9906bab08 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_program.h
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_program.h
@@ -37,9 +37,9 @@ struct fd5_emit;
struct fd5_program_state {
struct ir3_program_state base;
- struct ir3_shader_variant *bs; /* VS for when emit->binning */
- struct ir3_shader_variant *vs;
- struct ir3_shader_variant *fs; /* FS for when !emit->binning */
+ const struct ir3_shader_variant *bs; /* VS for when emit->binning */
+ const struct ir3_shader_variant *vs;
+ const struct ir3_shader_variant *fs; /* FS for when !emit->binning */
};
static inline struct fd5_program_state *
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_const.cc b/src/gallium/drivers/freedreno/a6xx/fd6_const.cc
index b3d2f460551..a9b876de20e 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_const.cc
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_const.cc
@@ -111,7 +111,7 @@ emit_const_ptrs(struct fd_ringbuffer *ring, const struct ir3_shader_variant *v,
}
static void
-emit_stage_tess_consts(struct fd_ringbuffer *ring, struct ir3_shader_variant *v,
+emit_stage_tess_consts(struct fd_ringbuffer *ring, const struct ir3_shader_variant *v,
uint32_t *params, int num_params)
{
const struct ir3_const_state *const_state = ir3_const_state(v);
@@ -166,7 +166,7 @@ fd6_build_tess_consts(struct fd6_emit *emit)
}
if (emit->gs) {
- struct ir3_shader_variant *prev;
+ const struct ir3_shader_variant *prev;
if (emit->ds)
prev = emit->ds;
else
@@ -229,7 +229,7 @@ fd6_emit_ubos(const struct ir3_shader_variant *v, struct fd_ringbuffer *ring,
}
unsigned
-fd6_user_consts_cmdstream_size(struct ir3_shader_variant *v)
+fd6_user_consts_cmdstream_size(const struct ir3_shader_variant *v)
{
if (!v)
return 0;
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_const.h b/src/gallium/drivers/freedreno/a6xx/fd6_const.h
index 8c277752884..33e059641bc 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_const.h
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_const.h
@@ -28,7 +28,7 @@
#include "fd6_emit.h"
struct fd_ringbuffer *fd6_build_tess_consts(struct fd6_emit *emit) assert_dt;
-unsigned fd6_user_consts_cmdstream_size(struct ir3_shader_variant *v);
+unsigned fd6_user_consts_cmdstream_size(const struct ir3_shader_variant *v);
template <fd6_pipeline_type PIPELINE>
struct fd_ringbuffer *fd6_build_user_consts(struct fd6_emit *emit) assert_dt;
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
index d0f7fecb6a6..5fd9e38b0bf 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h
@@ -200,11 +200,11 @@ struct fd6_emit {
/* cached to avoid repeated lookups: */
const struct fd6_program_state *prog;
- struct ir3_shader_variant *vs;
- struct ir3_shader_variant *hs;
- struct ir3_shader_variant *ds;
- struct ir3_shader_variant *gs;
- struct ir3_shader_variant *fs;
+ const struct ir3_shader_variant *vs;
+ const struct ir3_shader_variant *hs;
+ const struct ir3_shader_variant *ds;
+ const struct ir3_shader_variant *gs;
+ const struct ir3_shader_variant *fs;
struct fd6_state state;
};
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc
index efb9a1b96df..f4f373f1bbe 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_program.cc
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.cc
@@ -285,7 +285,7 @@ setup_stream_out(struct fd_context *ctx, struct fd6_program_state *state,
}
static uint32_t
-sp_xs_config(struct ir3_shader_variant *v)
+sp_xs_config(const struct ir3_shader_variant *v)
{
if (!v)
return 0;
@@ -1312,10 +1312,12 @@ emit_interp_state(struct fd_ringbuffer *ring, const struct fd6_program_state *st
template <chip CHIP>
static struct ir3_program_state *
-fd6_program_create(void *data, struct ir3_shader_variant *bs,
- struct ir3_shader_variant *vs, struct ir3_shader_variant *hs,
- struct ir3_shader_variant *ds, struct ir3_shader_variant *gs,
- struct ir3_shader_variant *fs,
+fd6_program_create(void *data, const struct ir3_shader_variant *bs,
+ const struct ir3_shader_variant *vs,
+ const struct ir3_shader_variant *hs,
+ const struct ir3_shader_variant *ds,
+ const struct ir3_shader_variant *gs,
+ const struct ir3_shader_variant *fs,
const struct ir3_cache_key *key) in_dt
{
struct fd_context *ctx = fd_context((struct pipe_context *)data);
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_program.h b/src/gallium/drivers/freedreno/a6xx/fd6_program.h
index e7ae12f466e..0ce2f8627c3 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_program.h
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_program.h
@@ -38,12 +38,12 @@ struct fd6_emit;
struct fd6_program_state {
struct ir3_program_state base;
- struct ir3_shader_variant *bs; /* binning pass vs */
- struct ir3_shader_variant *vs;
- struct ir3_shader_variant *hs;
- struct ir3_shader_variant *ds;
- struct ir3_shader_variant *gs;
- struct ir3_shader_variant *fs;
+ const struct ir3_shader_variant *bs; /* binning pass vs */
+ const struct ir3_shader_variant *vs;
+ const struct ir3_shader_variant *hs;
+ const struct ir3_shader_variant *ds;
+ const struct ir3_shader_variant *gs;
+ const struct ir3_shader_variant *fs;
struct fd_ringbuffer *config_stateobj;
struct fd_ringbuffer *interp_stateobj;
struct fd_ringbuffer *binning_stateobj;
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cache.c b/src/gallium/drivers/freedreno/ir3/ir3_cache.c
index ff39540c41d..351ed52bd52 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_cache.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_cache.c
@@ -117,7 +117,7 @@ ir3_cache_lookup(struct ir3_cache *cache, const struct ir3_cache_key *key,
shaders[MESA_SHADER_TESS_CTRL] = hs;
}
- struct ir3_shader_variant *variants[MESA_SHADER_STAGES];
+ const struct ir3_shader_variant *variants[MESA_SHADER_STAGES];
struct ir3_shader_key shader_key = key->key;
for (gl_shader_stage stage = MESA_SHADER_VERTEX; stage < MESA_SHADER_STAGES;
@@ -146,7 +146,7 @@ ir3_cache_lookup(struct ir3_cache *cache, const struct ir3_cache_key *key,
}
}
- struct ir3_shader_variant *bs;
+ const struct ir3_shader_variant *bs;
if (ir3_has_binning_vs(&key->key)) {
/* starting with a6xx, the same const state is used for binning and draw
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cache.h b/src/gallium/drivers/freedreno/ir3/ir3_cache.h
index cd75f33d462..e29561f5b86 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_cache.h
+++ b/src/gallium/drivers/freedreno/ir3/ir3_cache.h
@@ -61,10 +61,10 @@ struct ir3_program_state {
struct ir3_cache_funcs {
struct ir3_program_state *(*create_state)(
- void *data, struct ir3_shader_variant *bs, /* binning pass vs */
- struct ir3_shader_variant *vs, struct ir3_shader_variant *hs,
- struct ir3_shader_variant *ds, struct ir3_shader_variant *gs,
- struct ir3_shader_variant *fs, const struct ir3_cache_key *key);
+ void *data, const struct ir3_shader_variant *bs, /* binning pass vs */
+ const struct ir3_shader_variant *vs, const struct ir3_shader_variant *hs,
+ const struct ir3_shader_variant *ds, const struct ir3_shader_variant *gs,
+ const struct ir3_shader_variant *fs, const struct ir3_cache_key *key);
void (*destroy_state)(void *data, struct ir3_program_state *state);
};