i965/fp: Emit discard jumps.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 24 Feb 2015 20:48:56 +0000 (12:48 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 19 Mar 2015 23:14:51 +0000 (16:14 -0700)
This should improve the performance of any shaders using the KIL
instruction.  I'm a bit surprised we missed this.

Unfortunately, I have not been able to measure any performance
improvements from this patch.  It does make ARB_fragment_program
behave similarly to GLSL code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs_fp.cpp

index 6d08bf7b539726a694af3ff3279cc2b795cecf37..c4064da88a0e94771f5f4b44f8d1705079500751 100644 (file)
@@ -250,6 +250,9 @@ fs_visitor::emit_fragment_program_code()
                                     fs_reg(0.0f), BRW_CONDITIONAL_GE));
             cmp->predicate = BRW_PREDICATE_NORMAL;
             cmp->flag_subreg = 1;
+
+            if (brw->gen >= 6)
+               emit_discard_jump();
          }
          break;
       }