diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2014-10-22 20:48:21 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2015-02-24 15:24:53 -0800 |
commit | 30f51f1a1a70bc838d5bed449daff0dd9f2e8ef2 (patch) | |
tree | f3a5cc8ca132aa63e1c5d112f2bfb500cd8e7f77 /src/glsl/glsl_parser_extras.cpp | |
parent | 8eb6c109994de2827b0a1340a2dc8d933edaf5e0 (diff) | |
download | external_mesa3d-30f51f1a1a70bc838d5bed449daff0dd9f2e8ef2.zip external_mesa3d-30f51f1a1a70bc838d5bed449daff0dd9f2e8ef2.tar.gz external_mesa3d-30f51f1a1a70bc838d5bed449daff0dd9f2e8ef2.tar.bz2 |
glsl: Optimize "if (cond) discard;" to a conditional discard.
st_glsl_to_tgsi and ir_to_mesa have handled conditional discards for a
long time; the previous patch added that capability to i965.
i965 (Haswell) shader-db stats:
Without NIR:
total instructions in shared programs: 5792133 -> 5776360 (-0.27%)
instructions in affected programs: 737585 -> 721812 (-2.14%)
helped: 6300
HURT: 68
GAINED: 2
With NIR:
total instructions in shared programs: 5787538 -> 5769569 (-0.31%)
instructions in affected programs: 767843 -> 749874 (-2.34%)
helped: 6522
HURT: 35
GAINED: 6
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/glsl/glsl_parser_extras.cpp')
-rw-r--r-- | src/glsl/glsl_parser_extras.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index 9f79313..f19804b 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -1627,6 +1627,7 @@ do_common_optimization(exec_list *ir, bool linked, } progress = do_if_simplification(ir) || progress; progress = opt_flatten_nested_if_blocks(ir) || progress; + progress = opt_conditional_discard(ir) || progress; progress = do_copy_propagation(ir) || progress; progress = do_copy_propagation_elements(ir) || progress; |