summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2011-08-24 19:51:54 -0700
committerPaul Berry <[email protected]>2011-09-06 11:05:05 -0700
commit514eeca32c37c8b4267edbd3c3657946536c639c (patch)
treeb501925ba3dd9318870cd8863d833f7df953bd20 /src
parent9660e3b788227de4aa15c42c5bbd48b85ad46d24 (diff)
i965: clip: Add VUE map computation to clip stage for Gen4-5.
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip.c3
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip.h5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_clip.c b/src/mesa/drivers/dri/i965/brw_clip.c
index b49c9f412ad..b9ec55a841e 100644
--- a/src/mesa/drivers/dri/i965/brw_clip.c
+++ b/src/mesa/drivers/dri/i965/brw_clip.c
@@ -71,6 +71,8 @@ static void compile_clip_prog( struct brw_context *brw,
c.func.single_program_flow = 1;
c.key = *key;
+ brw_compute_vue_map(&c.vue_map, intel, c.key.nr_userclip,
+ c.key.do_twoside_color, c.key.attrs);
/* Need to locate the two positions present in vertex + header.
* These are currently hardcoded:
@@ -174,6 +176,7 @@ static void upload_clip_prog(struct brw_context *brw)
/* _NEW_LIGHT */
key.do_flat_shading = (ctx->Light.ShadeModel == GL_FLAT);
key.pv_first = (ctx->Light.ProvokingVertex == GL_FIRST_VERTEX_CONVENTION);
+ key.do_twoside_color = (ctx->Light.Enabled && ctx->Light.Model.TwoSide);
/* _NEW_TRANSFORM */
key.nr_userclip = brw_count_bits(ctx->Transform.ClipPlanesEnabled);
diff --git a/src/mesa/drivers/dri/i965/brw_clip.h b/src/mesa/drivers/dri/i965/brw_clip.h
index 3a8cd7bf390..ca2362c0627 100644
--- a/src/mesa/drivers/dri/i965/brw_clip.h
+++ b/src/mesa/drivers/dri/i965/brw_clip.h
@@ -55,7 +55,8 @@ struct brw_clip_prog_key {
GLuint copy_bfc_cw:1;
GLuint copy_bfc_ccw:1;
GLuint clip_mode:3;
- GLuint pad0:11;
+ GLuint do_twoside_color:1;
+ GLuint pad0:10;
GLfloat offset_factor;
GLfloat offset_units;
@@ -119,6 +120,8 @@ struct brw_clip_compile {
GLuint offset[VERT_RESULT_MAX];
/** Mapping from attribute index to VERT_RESULT_* */
GLuint idx_to_attr[VERT_RESULT_MAX];
+
+ struct brw_vue_map vue_map;
};
#define ATTR_SIZE (4*4)