Displaying 4 results from an estimated 4 matches for "iv_c".
Did you mean:
in_c
2009 Jun 24
0
[PATCH] nv50: fix previous patches
...= aid - 1;
- emit_flop(pc, 0, pc->iv_p,
- &pc->attr[fcrd * 4 + 3]);
- }
+ pc->p->cfg.fp.regs[1] |= (1 << 27);
+ emit_interp(pc, pc->iv_p, NULL, INTERP_LINEAR);
+ emit_flop(pc, 0, pc->iv_p, pc->iv_p);
}
if (centroid_loads) {
pc->iv_c = alloc_temp(pc, NULL);
- pc->iv_c->rhw = pc->iv_p ? aid - 1 : aid++;
+ pc->iv_c->rhw = aid - 1;
+ if (!(pc->p->cfg.fp.regs[1] & (1 << 27)))
+ pc->iv_c->rhw = aid++;
+ pc->p->cfg.fp.regs[1] |= (1 << 27);
emit_interp(pc, pc->iv...
2009 Sep 12
0
[PATCH 10/13] nv50: proper linkage between VP and FP
...;
}
-static unsigned
-load_fp_attrib(struct nv50_pc *pc, int i, int *mid, int *aid, int *p_oid)
+static void
+load_interpolant(struct nv50_pc *pc, struct nv50_reg *reg)
{
- struct nv50_reg *iv;
- int oid, c, n;
- unsigned mask = 0;
-
- iv = (pc->interp_mode[i] & INTERP_CENTROID) ? pc->iv_c : pc->iv_p;
+ struct nv50_reg *iv, **ppiv;
+ unsigned mode = pc->interp_mode[reg->index];
- for (c = 0, n = i * 4; c < 4; c++, n++) {
- oid = (*p_oid)++;
+ ppiv = (mode & INTERP_CENTROID) ? &pc->iv_c : &pc->iv_p;
+ iv = *ppiv;
- if (!pc->attr[n].acc)
- conti...
2009 May 06
2
nv50: shader generation patches
Hi ! I've been trying to improve NV50 shader generation a bit the last couple of weeks, so here is
what I've produced. I don't know if it's usable for you or just a pile of horrible hacks, but at
least it makes some mesa demos render more correcly, p.e. the teapot (aside from mip-mapping issues
of the floor texture), arbfplight, and I think the gears also didn't appear as they
2009 Jun 21
0
[PATCH] nv50: add support for two-sided lighting
...lt;< 16;
+ /* reset oid and load remaining attrs */
+ oid = (fcrd == 0xffff) ? 4 : 0;
for (i = 0; i < pc->attr_nr; i++)
load_fp_attrib(pc, i, r_usage[1],
&mid, &aid, &oid);
@@ -1985,8 +2000,7 @@ nv50_program_tx_prep(struct nv50_pc *pc)
if (pc->iv_c)
free_temp(pc, pc->iv_c);
- pc->p->cfg.fp.high_map = (mid / 4);
- pc->p->cfg.fp.high_map += ((mid % 4) ? 1 : 0);
+ pc->p->cfg.fp.high_map = mid;
} else {
/* vertex program */
for (i = 0; i < pc->attr_nr; i++) {
@@ -2011,6 +2025,10 @@ nv50_program_t...