diff options
author | Paul Berry <stereotype441@gmail.com> | 2011-08-24 20:03:35 -0700 |
---|---|---|
committer | Paul Berry <stereotype441@gmail.com> | 2011-09-06 11:05:11 -0700 |
commit | 62b0c8561e2d259e4dc1f27346bf2f36c3b098c8 (patch) | |
tree | a082d1eabf98676434cdcb427e605b88bd3394af /src/mesa/drivers/dri/i965/brw_clip_line.c | |
parent | eae5b5c44e58ad2937600991a5569518d3023f68 (diff) | |
download | external_mesa3d-62b0c8561e2d259e4dc1f27346bf2f36c3b098c8.zip external_mesa3d-62b0c8561e2d259e4dc1f27346bf2f36c3b098c8.tar.gz external_mesa3d-62b0c8561e2d259e4dc1f27346bf2f36c3b098c8.tar.bz2 |
i965: clip: Move hpos_offest and ndc_offset into local functions.
The offsets within the VUE of HPOS and NDC are needed only in a few
auxiliary clipping functions. This patch moves computation of those
offsets into the functions that need them, and does the computation
using the VUE map.
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_clip_line.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_clip_line.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_clip_line.c b/src/mesa/drivers/dri/i965/brw_clip_line.c index d771853..9e019c8 100644 --- a/src/mesa/drivers/dri/i965/brw_clip_line.c +++ b/src/mesa/drivers/dri/i965/brw_clip_line.c @@ -134,6 +134,8 @@ static void clip_and_emit_line( struct brw_clip_compile *c ) struct brw_indirect plane_ptr = brw_indirect(4, 0); struct brw_instruction *plane_loop; struct brw_reg v1_null_ud = retype(vec1(brw_null_reg()), BRW_REGISTER_TYPE_UD); + GLuint hpos_offset = brw_vert_result_to_offset(&c->vue_map, + VERT_RESULT_HPOS); brw_MOV(p, get_addr_reg(vtx0), brw_address(c->reg.vertex[0])); brw_MOV(p, get_addr_reg(vtx1), brw_address(c->reg.vertex[1])); @@ -174,12 +176,12 @@ static void clip_and_emit_line( struct brw_clip_compile *c ) /* dp = DP4(vtx->position, plane) */ - brw_DP4(p, vec4(c->reg.dp0), deref_4f(vtx0, c->offset[VERT_RESULT_HPOS]), c->reg.plane_equation); + brw_DP4(p, vec4(c->reg.dp0), deref_4f(vtx0, hpos_offset), c->reg.plane_equation); /* if (IS_NEGATIVE(dp1)) */ brw_set_conditionalmod(p, BRW_CONDITIONAL_L); - brw_DP4(p, vec4(c->reg.dp1), deref_4f(vtx1, c->offset[VERT_RESULT_HPOS]), c->reg.plane_equation); + brw_DP4(p, vec4(c->reg.dp1), deref_4f(vtx1, hpos_offset), c->reg.plane_equation); brw_IF(p, BRW_EXECUTE_1); { /* |