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...