i965: SF: Change the flags that refer to "attr" to be based on gl_vert_result.
authorPaul Berry <stereotype441@gmail.com>
Wed, 24 Aug 2011 22:32:17 +0000 (15:32 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 6 Sep 2011 18:04:41 +0000 (11:04 -0700)
Previously, some of the code in SF erroneously used bitfields based on
the gl_frag_attrib enum when actually referring to vertex results.
This worked, because coincidentally the particular enum values being
used happened to match between gl_frag_attrib and gl_vert_result.  But
it was fragile, because a future change to either gl_vert_result or
gl_frag_attrib would have made the enum values stop matching up.  This
patch switches the SF code to use the correct enum.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_sf_emit.c

index f362e204bca708e98797d06781756278d3b3ea4e..28448fb4c0546fdbe883f4253d55365c4a4d382c 100644 (file)
@@ -334,14 +334,15 @@ static GLboolean calculate_masks( struct brw_sf_compile *c,
    GLbitfield64 linear_mask;
 
    if (c->key.do_flat_shading)
-      persp_mask = c->key.attrs & ~(FRAG_BIT_WPOS |
-                                    FRAG_BIT_COL0 |
-                                    FRAG_BIT_COL1);
+      persp_mask = c->key.attrs & ~(BITFIELD64_BIT(VERT_RESULT_HPOS) |
+                                    BITFIELD64_BIT(VERT_RESULT_COL0) |
+                                    BITFIELD64_BIT(VERT_RESULT_COL1));
    else
-      persp_mask = c->key.attrs & ~(FRAG_BIT_WPOS);
+      persp_mask = c->key.attrs & ~(BITFIELD64_BIT(VERT_RESULT_HPOS));
 
    if (c->key.do_flat_shading)
-      linear_mask = c->key.attrs & ~(FRAG_BIT_COL0|FRAG_BIT_COL1);
+      linear_mask = c->key.attrs & ~(BITFIELD64_BIT(VERT_RESULT_COL0) |
+                                     BITFIELD64_BIT(VERT_RESULT_COL1));
    else
       linear_mask = c->key.attrs;