i965: Remove two_side_color from brw_compute_vue_map().
[mesa.git] / src / mesa / drivers / dri / i965 / brw_clip.h
index 957df441ab03e94ad92a8983928dd03028cb86bd..8647847c2a1ce91537e9b13067744373afacfcff 100644 (file)
  * up polygon offset and flatshading at this point:
  */
 struct brw_clip_prog_key {
-   GLuint attrs:32;            
+   GLbitfield64 attrs;
    GLuint primitive:4;
    GLuint nr_userclip:3;
    GLuint do_flat_shading:1;
+   GLuint pv_first:1;
    GLuint do_unfilled:1;
    GLuint fill_cw:2;           /* includes cull information */
    GLuint fill_ccw:2;          /* includes cull information */
    GLuint offset_cw:1;
    GLuint offset_ccw:1;
-   GLuint pad0:17;
-
    GLuint copy_bfc_cw:1;
    GLuint copy_bfc_ccw:1;
    GLuint clip_mode:3;
-   GLuint pad1:27;
-   
+   GLuint pad0:11;
+
    GLfloat offset_factor;
    GLfloat offset_units;
 };
@@ -104,26 +103,28 @@ struct brw_clip_compile {
       struct brw_reg ff_sync;
    } reg;
 
-   /* 3 different ways of expressing vertex size:
-    */
-   GLuint nr_attrs;
+   /* Number of registers storing VUE data */
    GLuint nr_regs;
-   GLuint nr_bytes;
 
    GLuint first_tmp;
    GLuint last_tmp;
 
    GLboolean need_direction;
 
-   GLuint last_mrf;
-
-   GLuint header_position_offset;
-   GLuint offset[VERT_ATTRIB_MAX];
-   GLboolean need_ff_sync;
+   struct brw_vue_map vue_map;
 };
 
 #define ATTR_SIZE  (4*4)
 
+/**
+ * True if the given vert_result is one of the outputs of the vertex shader.
+ */
+static inline bool brw_clip_have_vert_result(struct brw_clip_compile *c,
+                                             GLuint vert_result)
+{
+   return (c->key.attrs & BITFIELD64_BIT(vert_result)) ? 1 : 0;
+}
+
 /* Points are only culled, so no need for a clip routine, however it
  * works out easier to have a dummy one.
  */