mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
prog_to_nir: Don't allocate nir_variable with type vec4[0] for uniforms.
If there are no parameters, we don't need to create a nir_variable to hold them...and allocating an array of length 0 is pretty bogus. Should avoid i965 backend assertions in future patches Jason and I are working on. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
parent
640c472fd0
commit
a23f82053d
1 changed files with 11 additions and 7 deletions
|
|
@ -166,6 +166,8 @@ ptn_get_src(struct ptn_compile *c, const struct prog_src_register *prog_src)
|
|||
}
|
||||
/* FALLTHROUGH */
|
||||
case PROGRAM_STATE_VAR: {
|
||||
assert(c->parameters != NULL);
|
||||
|
||||
nir_intrinsic_instr *load =
|
||||
nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_var);
|
||||
nir_ssa_dest_init(&load->instr, &load->dest, 4, NULL);
|
||||
|
|
@ -1088,13 +1090,15 @@ prog_to_nir(const struct gl_program *prog,
|
|||
goto fail;
|
||||
c->prog = prog;
|
||||
|
||||
c->parameters = rzalloc(s, nir_variable);
|
||||
c->parameters->type = glsl_array_type(glsl_vec4_type(),
|
||||
prog->Parameters->NumParameters);
|
||||
c->parameters->name = "parameters";
|
||||
c->parameters->data.read_only = true;
|
||||
c->parameters->data.mode = nir_var_uniform;
|
||||
exec_list_push_tail(&s->uniforms, &c->parameters->node);
|
||||
if (prog->Parameters->NumParameters > 0) {
|
||||
c->parameters = rzalloc(s, nir_variable);
|
||||
c->parameters->type =
|
||||
glsl_array_type(glsl_vec4_type(), prog->Parameters->NumParameters);
|
||||
c->parameters->name = "parameters";
|
||||
c->parameters->data.read_only = true;
|
||||
c->parameters->data.mode = nir_var_uniform;
|
||||
exec_list_push_tail(&s->uniforms, &c->parameters->node);
|
||||
}
|
||||
|
||||
nir_function *func = nir_function_create(s, "main");
|
||||
nir_function_overload *overload = nir_function_overload_create(func);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue