freedreno/ir3: Extend geometry lowering pass to handle tessellation
authorKristian H. Kristensen <hoegsberg@google.com>
Wed, 23 Oct 2019 00:30:48 +0000 (17:30 -0700)
committerKristian H. Kristensen <hoegsberg@google.com>
Fri, 8 Nov 2019 00:36:59 +0000 (16:36 -0800)
commit56ed835bffb0e9cd6770a788b6605b84bd54683c
treee3427f87acdb8881b99cca6121ae9710fd869ffb
parent8621fbc37b205b142639a582cf6a2a76d68b25cb
freedreno/ir3: Extend geometry lowering pass to handle tessellation

VS and TCS pass varyings the same way as VS and GS does. TCS then
writes entire patch to a system memory BO and TES eventually reads
back from the BO once the TE starts generating vertices.  TES outputs
vertices the same way as VS and GS, except when there's a GS as well,
in which case TES passes varyings to GS same way the VS would.

In addition, the TCS needs a little bit of control flow massaging so
that it only runs for valid invocations needs a couple of unknown
instructions to synchronize with the TE.

Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Rob Clark <robdclark@gmail.com>
src/freedreno/ir3/ir3_nir.c
src/freedreno/ir3/ir3_nir.h
src/freedreno/ir3/ir3_nir_lower_tess.c