diff options
author | Chris Forbes <[email protected]> | 2013-05-20 22:10:29 +1200 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2013-06-07 20:50:33 +1200 |
commit | 06a503ca7163174e9763adcf64186d38997fee83 (patch) | |
tree | 717946f19435ade116c78c101ff56fe8bc5beea7 /src/mesa | |
parent | 361594999099d981824e314f2f629cb4ab4c61f6 (diff) |
i965/vs: add support for emitting gl_ClipVertex
Removes the special-case suppression of gl_ClipVertex in the VUE map.
Also calculate vertex outcodes for user clip planes based on
gl_ClipVertex if written; otherwise gl_Position.
Signed-off-by: Chris Forbes <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vs.c | 6 |
2 files changed, 3 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index b2f8f009db9..33c1b2483c4 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -2567,8 +2567,10 @@ vec4_visitor::emit_psiz_and_flags(struct brw_reg reg) current_annotation = "Clipping flags"; for (i = 0; i < key->nr_userclip_plane_consts; i++) { vec4_instruction *inst; + gl_varying_slot slot = (prog_data->vue_map.slots_valid & VARYING_BIT_CLIP_VERTEX) + ? VARYING_SLOT_CLIP_VERTEX : VARYING_SLOT_POS; - inst = emit(DP4(dst_null_f(), src_reg(output_reg[VARYING_SLOT_POS]), + inst = emit(DP4(dst_null_f(), src_reg(output_reg[slot]), src_reg(this->userplane[i]))); inst->conditional_mod = BRW_CONDITIONAL_L; diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index 6eb916ea4c6..720325dec5c 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -63,12 +63,6 @@ brw_compute_vue_map(struct brw_context *brw, struct brw_vue_map *vue_map, { const struct intel_context *intel = &brw->intel; - /* Prior to Gen6, don't assign a slot for VARYING_SLOT_CLIP_VERTEX, since - * it is unsupported. - */ - if (intel->gen < 6) - slots_valid &= ~VARYING_BIT_CLIP_VERTEX; - vue_map->slots_valid = slots_valid; int i; |