From: Zhenyu Wang Date: Fri, 17 Sep 2010 04:57:35 +0000 (+0800) Subject: i965: Fix color interpolation on sandybridge X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=41c31c2ebd5ed2ca021ff9d89f79270562e6c368;p=mesa.git i965: Fix color interpolation on sandybridge Don't double store position in vertex attribute. This makes color interpolation right by using barycentric coordinates. --- diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c index ad0d00b87c4..ed2625e16f6 100644 --- a/src/mesa/drivers/dri/i965/brw_vs_emit.c +++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c @@ -254,7 +254,7 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c ) c->first_overflow_output = 0; if (intel->gen >= 6) - mrf = 4; + mrf = 3; /* no more pos store in attribute */ else if (intel->gen == 5) mrf = 8; else @@ -1451,8 +1451,7 @@ static void emit_vertex_write( struct brw_vs_compile *c) * position. */ brw_MOV(p, brw_message_reg(2), pos); - brw_MOV(p, brw_message_reg(3), pos); - len_vertex_header = 2; + len_vertex_header = 1; } else if (intel->gen == 5) { /* There are 20 DWs (D0-D19) in VUE header on Ironlake: * dword 0-3 (m1) of the header is indices, point width, clip flags.