Displaying 4 results from an estimated 4 matches for "iv_p".
Did you mean:
io_p
2009 Jun 24
0
[PATCH] nv50: fix previous patches
...ttrib(pc, fcrd, r_usage[1],
&mid, &aid, &oid);
pc->p->cfg.fp.regs[1] |= (mask << 24);
pc->p->cfg.fp.map[0] += 0x04040404 * fcrd;
+ oid = 0;
}
/* should do MAD fcrd.xy, fcrd, SOME_CONST, fcrd */
if (perspect_loads) {
pc->iv_p = alloc_temp(pc, NULL);
-
- if (!(pc->p->cfg.fp.regs[1] & 0x08000000)) {
- pc->p->cfg.fp.regs[1] |= 0x08000000;
+ pc->iv_p->rhw = aid - 1;
+ if (!(pc->p->cfg.fp.regs[1] & (1 << 27)))
pc->iv_p->rhw = aid++;
- emit_interp(pc, pc->i...
2009 Sep 12
0
[PATCH 10/13] nv50: proper linkage between VP and FP
...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)
- continue;
- mask |...
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 Sep 12
0
[PATCH 09/13] nv50: move allocation of pc regs
...gs[0] += 0x00010000;
}
- for (i = 0; i < pc->attr_nr; i++)
- load_fp_attrib(pc, i, r_usage[1],
- &mid, &aid, &oid);
+ for (i = ((fcrd < 0x40) ? 1 : 0); i < pc->attr_nr; i++)
+ load_fp_attrib(pc, i, &mid, &aid, &oid);
if (pc->iv_p)
free_temp(pc, pc->iv_p);
@@ -2253,48 +2173,26 @@ nv50_program_tx_prep(struct nv50_pc *pc)
for (i = 0; i < pc->attr_nr * 4; i++) {
pc->p->cfg.vp.attr[aid / 32] |=
(1 << (aid % 32));
- ctor_reg(&pc->attr[i], P_ATTR, i / 4, aid++);
+ pc->attr[i...