r600g: use a helper to add an initialized atom
Instead of writing to rctx->atoms directly use a helper to take advantage of assert checks. Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
committed by
Marek Olšák
parent
3206d4ed44
commit
85adde30a4
@@ -3470,8 +3470,8 @@ void evergreen_init_state_functions(struct r600_context *rctx)
|
||||
}
|
||||
r600_init_atom(rctx, &rctx->stencil_ref.atom, id++, r600_emit_stencil_ref, 4);
|
||||
r600_init_atom(rctx, &rctx->vertex_fetch_shader.atom, id++, evergreen_emit_vertex_fetch_shader, 5);
|
||||
rctx->atoms[id++] = &rctx->b.streamout.begin_atom;
|
||||
rctx->atoms[id++] = &rctx->b.streamout.enable_atom;
|
||||
r600_add_atom(rctx, &rctx->b.streamout.begin_atom, id++);
|
||||
r600_add_atom(rctx, &rctx->b.streamout.enable_atom, id++);
|
||||
r600_init_atom(rctx, &rctx->vertex_shader.atom, id++, r600_emit_shader, 23);
|
||||
r600_init_atom(rctx, &rctx->pixel_shader.atom, id++, r600_emit_shader, 0);
|
||||
r600_init_atom(rctx, &rctx->geometry_shader.atom, id++, r600_emit_shader, 0);
|
||||
|
||||
@@ -671,6 +671,7 @@ void r600_emit_clip_misc_state(struct r600_context *rctx, struct r600_atom *atom
|
||||
void r600_emit_stencil_ref(struct r600_context *rctx, struct r600_atom *atom);
|
||||
void r600_emit_viewport_state(struct r600_context *rctx, struct r600_atom *atom);
|
||||
void r600_emit_shader(struct r600_context *rctx, struct r600_atom *a);
|
||||
void r600_add_atom(struct r600_context *rctx, struct r600_atom *atom, unsigned id);
|
||||
void r600_init_atom(struct r600_context *rctx, struct r600_atom *atom, unsigned id,
|
||||
void (*emit)(struct r600_context *ctx, struct r600_atom *state),
|
||||
unsigned num_dw);
|
||||
|
||||
@@ -3074,8 +3074,8 @@ void r600_init_state_functions(struct r600_context *rctx)
|
||||
r600_init_atom(rctx, &rctx->config_state.atom, id++, r600_emit_config_state, 3);
|
||||
r600_init_atom(rctx, &rctx->stencil_ref.atom, id++, r600_emit_stencil_ref, 4);
|
||||
r600_init_atom(rctx, &rctx->vertex_fetch_shader.atom, id++, r600_emit_vertex_fetch_shader, 5);
|
||||
rctx->atoms[id++] = &rctx->b.streamout.begin_atom;
|
||||
rctx->atoms[id++] = &rctx->b.streamout.enable_atom;
|
||||
r600_add_atom(rctx, &rctx->b.streamout.begin_atom, id++);
|
||||
r600_add_atom(rctx, &rctx->b.streamout.enable_atom, id++);
|
||||
r600_init_atom(rctx, &rctx->vertex_shader.atom, id++, r600_emit_shader, 23);
|
||||
r600_init_atom(rctx, &rctx->pixel_shader.atom, id++, r600_emit_shader, 0);
|
||||
r600_init_atom(rctx, &rctx->geometry_shader.atom, id++, r600_emit_shader, 0);
|
||||
|
||||
@@ -47,18 +47,25 @@ void r600_release_command_buffer(struct r600_command_buffer *cb)
|
||||
FREE(cb->buf);
|
||||
}
|
||||
|
||||
void r600_add_atom(struct r600_context *rctx,
|
||||
struct r600_atom *atom,
|
||||
unsigned id)
|
||||
{
|
||||
assert(id < R600_NUM_ATOMS);
|
||||
assert(rctx->atoms[id] == NULL);
|
||||
rctx->atoms[id] = atom;
|
||||
atom->dirty = false;
|
||||
}
|
||||
|
||||
void r600_init_atom(struct r600_context *rctx,
|
||||
struct r600_atom *atom,
|
||||
unsigned id,
|
||||
void (*emit)(struct r600_context *ctx, struct r600_atom *state),
|
||||
unsigned num_dw)
|
||||
{
|
||||
assert(id < R600_NUM_ATOMS);
|
||||
assert(rctx->atoms[id] == NULL);
|
||||
rctx->atoms[id] = atom;
|
||||
atom->emit = (void*)emit;
|
||||
atom->num_dw = num_dw;
|
||||
atom->dirty = false;
|
||||
r600_add_atom(rctx, atom, id);
|
||||
}
|
||||
|
||||
void r600_emit_cso_state(struct r600_context *rctx, struct r600_atom *atom)
|
||||
|
||||
Reference in New Issue
Block a user