summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_clip_line.c
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2007-08-31 13:42:20 +0800
committerZou Nan hai <nanhai.zou@intel.com>2007-08-31 13:42:20 +0800
commitb47c9f8c915ae4ca8c7fa5ee3b6b64f17c38b569 (patch)
treef6a281141e4e0841af8597b9f330c3bd6afd0fd3 /src/mesa/drivers/dri/i965/brw_clip_line.c
parent22bc3cdd49eb81d48ad4b8f06be0b9a9de624c91 (diff)
optimize 965 clip
1. increase clip thread number to 2 2. do cliptest for -rhw
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_clip_line.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_clip_line.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_clip_line.c b/src/mesa/drivers/dri/i965/brw_clip_line.c
index 0103be43458..9ad00676d4b 100644
--- a/src/mesa/drivers/dri/i965/brw_clip_line.c
+++ b/src/mesa/drivers/dri/i965/brw_clip_line.c
@@ -147,6 +147,13 @@ static void clip_and_emit_line( struct brw_clip_compile *c )
brw_clip_init_planes(c);
brw_clip_init_clipmask(c);
+ /* -ve rhw workaround */
+ brw_set_conditionalmod(p, BRW_CONDITIONAL_NZ);
+ brw_AND(p, brw_null_reg(), get_element_ud(c->reg.R0, 2),
+ brw_imm_ud(1<<20));
+ brw_OR(p, c->reg.planemask, c->reg.planemask, brw_imm_ud(0x3f));
+ brw_set_predicate_control(p, BRW_PREDICATE_NONE);
+
plane_loop = brw_DO(p, BRW_EXECUTE_1);
{
/* if (planemask & 1)