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);
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);
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.. */
};
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) {
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) {
#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 */
}
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;
}
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;
/* 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: */
}
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;
}
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)) {