} inst[512];
/* TODO: This is magic! */
- struct {
- int tex_offset;
- int tex_end;
- int alu_offset;
- int alu_end;
- int flags;
- } node[4];
- int cur_node;
- int first_node_has_tex;
-
int temp_reg_offset;
int inst_offset;
R300_STATECHANGE(rmesa, r500fp);
/* Emit our shader... */
- for (i = 0; i < fp->cs->nrslots; i++) {
+ for (i = 0; i < fp->inst_end+1; i++) {
rmesa->hw.r500fp.cmd[i*6+1] = fp->inst[i].inst0;
rmesa->hw.r500fp.cmd[i*6+2] = fp->inst[i].inst1;
rmesa->hw.r500fp.cmd[i*6+3] = fp->inst[i].inst2;
rmesa->hw.r500fp.cmd[i*6+6] = fp->inst[i].inst5;
}
- bump_r500fp_count(rmesa->hw.r500fp.cmd, fp->cs->nrslots * 6);
-
+ bump_r500fp_count(rmesa->hw.r500fp.cmd, (fp->inst_end + 1) * 6);
R300_STATECHANGE(rmesa, r500fp_const);
for (i = 0; i < fp->const_nr; i++) {
fp->translated = GL_FALSE;
fp->error = GL_FALSE;
fp->cs = cs = &(R300_CONTEXT(fp->ctx)->state.pfs_compile);
- fp->cur_node = 0;
- fp->first_node_has_tex = 0;
fp->const_nr = 0;
/* Size of pixel stack, plus 1. */
fp->max_temp_idx = 1;
/* Temp register offset. */
fp->temp_reg_offset = 0;
- fp->node[0].alu_end = -1;
- fp->node[0].tex_end = -1;
_mesa_memset(cs, 0, sizeof(*fp->cs));
for (i = 0; i < PFS_MAX_ALU_INST; i++) {
r300UpdateStateParameters(fp->ctx, _NEW_PROGRAM);
- } else {
- fp->inst_offset = 0;
- fp->inst_end = fp->cs->nrslots - 1;
}
update_params(fp);