diff options
author | Keith Whitwell <keithw@vmware.com> | 2010-10-07 15:01:07 +0100 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2010-10-09 11:44:45 +0100 |
commit | aa4cb5e2d8d48c7dcc9653c61a9e25494e3e7b2a (patch) | |
tree | 3989a7c0e78bbb8a96ec68de8b420c4b2f64d7a9 /src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | |
parent | 2ef6f75ab410bb188e028024e18891d7877febad (diff) |
llvmpipe: try to be sensible about whether to branch after mask updates
Don't branch more than once in quick succession. Don't branch at the
end of the shader.
Diffstat (limited to 'src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 441aebae29..03020a62f8 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -959,8 +959,13 @@ emit_kil( } } - if(mask) + if(mask) { lp_build_mask_update(bld->mask, mask); + + /* XXX: figure out if we are at the end of the shader and skip this: + */ + lp_build_mask_check(bld->mask); + } } @@ -987,6 +992,10 @@ emit_kilp(struct lp_build_tgsi_soa_context *bld, } lp_build_mask_update(bld->mask, mask); + + /* XXX: figure out if we are at the end of the shader and skip this: + */ + lp_build_mask_check(bld->mask); } static void |