projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ir3: use empirical size for params as used by the shader
[mesa.git]
/
src
/
freedreno
/
ir3
/
ir3_parser.y
diff --git
a/src/freedreno/ir3/ir3_parser.y
b/src/freedreno/ir3/ir3_parser.y
index 2b024d358cc36dfe7d42adda91180aac49b0e565..27c52bd21e91aeb0097a38d4de44c08aff258300 100644
(file)
--- a/
src/freedreno/ir3/ir3_parser.y
+++ b/
src/freedreno/ir3/ir3_parser.y
@@
-89,7
+89,7
@@
static struct ir3_instruction * new_instr(opc_t opc)
static void new_shader(void)
{
static void new_shader(void)
{
- variant->ir = ir3_create(variant->shader->compiler, variant
->shader->type
);
+ variant->ir = ir3_create(variant->shader->compiler, variant);
block = ir3_block_create(variant->ir);
list_addtail(&block->node, &variant->ir->block_list);
}
block = ir3_block_create(variant->ir);
list_addtail(&block->node, &variant->ir->block_list);
}
@@
-153,13
+153,16
@@
static struct ir3_register * dummy_dst(void)
static void add_const(unsigned reg, unsigned c0, unsigned c1, unsigned c2, unsigned c3)
{
static void add_const(unsigned reg, unsigned c0, unsigned c1, unsigned c2, unsigned c3)
{
- struct ir3_const_state *const_state =
&variant->shader->const_state
;
+ struct ir3_const_state *const_state =
ir3_const_state(variant)
;
assert((reg & 0x7) == 0);
int idx = reg >> (1 + 2); /* low bit is half vs full, next two bits are swiz */
if (const_state->immediate_idx == const_state->immediates_size * 4) {
assert((reg & 0x7) == 0);
int idx = reg >> (1 + 2); /* low bit is half vs full, next two bits are swiz */
if (const_state->immediate_idx == const_state->immediates_size * 4) {
+ const_state->immediates = rerzalloc(const_state,
+ const_state->immediates,
+ __typeof__(const_state->immediates[0]),
+ const_state->immediates_size,
+ const_state->immediates_size + 4);
const_state->immediates_size += 4;
const_state->immediates_size += 4;
- const_state->immediates = realloc (const_state->immediates,
- const_state->immediates_size * sizeof(const_state->immediates[0]));
}
const_state->immediates[idx].val[0] = c0;
const_state->immediates[idx].val[1] = c1;
}
const_state->immediates[idx].val[0] = c0;
const_state->immediates[idx].val[1] = c1;