tgsi/scan: add a new pass that analyzes tess factor writes (v2)
authorMarek Olšák <marek.olsak@amd.com>
Tue, 5 Sep 2017 01:52:48 +0000 (03:52 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 11 Sep 2017 17:02:02 +0000 (19:02 +0200)
commit386d165d8d09317fe073d00da38f8851a9c33ee6
treef149e349c226926b8ae73c11dc7b9de56179026d
parentb2dae9f8fd310c19e66b161a7ee9845af78f73e0
tgsi/scan: add a new pass that analyzes tess factor writes (v2)

The pass tries to deduce whether tess factors are always written by
all shader invocations.

The implication for radeonsi is that it doesn't have to use a barrier
near the end of TCS, and doesn't have to use LDS for passing the tess
factors to the epilog.

v2: Handle barriers and do the analysis pass for each code segment
    surrounded by barriers separately, and AND results from all
    such segments writing tess factors. The change is trivial in the main
    switch statement.

    Also, the result is renamed to "tessfactors_are_def_in_all_invocs"
    to make the name accurate.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/auxiliary/tgsi/tgsi_scan.c
src/gallium/auxiliary/tgsi/tgsi_scan.h