diff options
author | Marek Olšák <[email protected]> | 2017-09-05 13:40:59 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-09-11 19:02:02 +0200 |
commit | 6eade342eb223313242c1c2a7615b6bd75036087 (patch) | |
tree | 50238402786df6ac9c443a4870c6938db23a69de /src/gallium/auxiliary/tgsi/tgsi_scan.c | |
parent | 386d165d8d09317fe073d00da38f8851a9c33ee6 (diff) |
radeonsi: optimize TCS epilog when invocation 0 writes tess factors
This removes the barrier and LDS stores and loads for tess factors
when it's possible. The removal of the barrier seems more important
to me though.
In one shader, it removes 17 * 4 bytes from the shader binary.
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_scan.c')
-rw-r--r-- | src/gallium/auxiliary/tgsi/tgsi_scan.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c index b8932891e4c..212d1bb95a8 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c @@ -1139,7 +1139,6 @@ tgsi_scan_tess_ctrl(const struct tgsi_token *tokens, if (main_block_tf_writemask || cond_block_tf_writemask) { /* Accumulate the result: */ out->tessfactors_are_def_in_all_invocs &= - main_block_tf_writemask && !(cond_block_tf_writemask & ~main_block_tf_writemask); /* Analyze the next code segment from scratch. */ @@ -1155,7 +1154,6 @@ tgsi_scan_tess_ctrl(const struct tgsi_token *tokens, /* Accumulate the result for the last code segment separated by a barrier. */ if (main_block_tf_writemask || cond_block_tf_writemask) { out->tessfactors_are_def_in_all_invocs &= - main_block_tf_writemask && !(cond_block_tf_writemask & ~main_block_tf_writemask); } |