mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
vc4: Make the last static array in vc4_program.c dynamically sized.
This commit is contained in:
parent
ebff93ac19
commit
75f8e0bc2a
2 changed files with 13 additions and 3 deletions
|
|
@ -104,6 +104,18 @@ add_uniform(struct vc4_compile *c,
|
|||
uint32_t uniform = c->num_uniforms++;
|
||||
struct qreg u = { QFILE_UNIF, uniform };
|
||||
|
||||
if (uniform >= c->uniform_array_size) {
|
||||
c->uniform_array_size = MAX2(MAX2(16, uniform + 1),
|
||||
c->uniform_array_size * 2);
|
||||
|
||||
c->uniform_data = reralloc(c, c->uniform_data,
|
||||
uint32_t,
|
||||
c->uniform_array_size);
|
||||
c->uniform_contents = reralloc(c, c->uniform_contents,
|
||||
enum quniform_contents,
|
||||
c->uniform_array_size);
|
||||
}
|
||||
|
||||
c->uniform_contents[uniform] = contents;
|
||||
c->uniform_data[uniform] = data;
|
||||
|
||||
|
|
@ -1573,9 +1585,6 @@ vc4_shader_tgsi_to_qir(struct vc4_context *vc4,
|
|||
|
||||
c->stage = stage;
|
||||
|
||||
c->uniform_data = ralloc_array(c, uint32_t, 1024);
|
||||
c->uniform_contents = ralloc_array(c, enum quniform_contents, 1024);
|
||||
|
||||
c->shader_state = key->shader_state;
|
||||
ret = tgsi_parse_init(&c->parser, c->shader_state->tokens);
|
||||
assert(ret == TGSI_PARSE_OK);
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ struct vc4_compile {
|
|||
|
||||
uint32_t *uniform_data;
|
||||
enum quniform_contents *uniform_contents;
|
||||
uint32_t uniform_array_size;
|
||||
uint32_t num_uniforms;
|
||||
uint32_t num_outputs;
|
||||
uint32_t num_texture_samples;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue