nir/clone: Expose nir_constant_clone
Reviewed-by: Rob Clark <robclark@gmail.com>
This commit is contained in:
@@ -2051,6 +2051,7 @@ void nir_print_instr(const nir_instr *instr, FILE *fp);
|
|||||||
|
|
||||||
nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
|
nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
|
||||||
nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
|
nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
|
||||||
|
nir_constant *nir_constant_clone(const nir_constant *c, nir_variable *var);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
void nir_validate_shader(nir_shader *shader);
|
void nir_validate_shader(nir_shader *shader);
|
||||||
|
@@ -109,8 +109,8 @@ remap_var(clone_state *state, const nir_variable *var)
|
|||||||
return _lookup_ptr(state, var, nir_variable_is_global(var));
|
return _lookup_ptr(state, var, nir_variable_is_global(var));
|
||||||
}
|
}
|
||||||
|
|
||||||
static nir_constant *
|
nir_constant *
|
||||||
clone_constant(clone_state *state, const nir_constant *c, nir_variable *nvar)
|
nir_constant_clone(const nir_constant *c, nir_variable *nvar)
|
||||||
{
|
{
|
||||||
nir_constant *nc = ralloc(nvar, nir_constant);
|
nir_constant *nc = ralloc(nvar, nir_constant);
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ clone_constant(clone_state *state, const nir_constant *c, nir_variable *nvar)
|
|||||||
nc->num_elements = c->num_elements;
|
nc->num_elements = c->num_elements;
|
||||||
nc->elements = ralloc_array(nvar, nir_constant *, c->num_elements);
|
nc->elements = ralloc_array(nvar, nir_constant *, c->num_elements);
|
||||||
for (unsigned i = 0; i < c->num_elements; i++) {
|
for (unsigned i = 0; i < c->num_elements; i++) {
|
||||||
nc->elements[i] = clone_constant(state, c->elements[i], nvar);
|
nc->elements[i] = nir_constant_clone(c->elements[i], nvar);
|
||||||
}
|
}
|
||||||
|
|
||||||
return nc;
|
return nc;
|
||||||
@@ -142,7 +142,7 @@ clone_variable(clone_state *state, const nir_variable *var)
|
|||||||
var->num_state_slots * sizeof(nir_state_slot));
|
var->num_state_slots * sizeof(nir_state_slot));
|
||||||
if (var->constant_initializer) {
|
if (var->constant_initializer) {
|
||||||
nvar->constant_initializer =
|
nvar->constant_initializer =
|
||||||
clone_constant(state, var->constant_initializer, nvar);
|
nir_constant_clone(var->constant_initializer, nvar);
|
||||||
}
|
}
|
||||||
nvar->interface_type = var->interface_type;
|
nvar->interface_type = var->interface_type;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user