summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi/tgsi_scan.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-09-05 13:40:59 +0200
committerMarek Olšák <[email protected]>2017-09-11 19:02:02 +0200
commit6eade342eb223313242c1c2a7615b6bd75036087 (patch)
tree50238402786df6ac9c443a4870c6938db23a69de /src/gallium/auxiliary/tgsi/tgsi_scan.c
parent386d165d8d09317fe073d00da38f8851a9c33ee6 (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.c2
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);
}