freedreno/ir3: Add new synchronization opcodes
authorKristian H. Kristensen <hoegsberg@google.com>
Wed, 23 Oct 2019 01:19:50 +0000 (18:19 -0700)
committerKristian H. Kristensen <hoegsberg@google.com>
Fri, 8 Nov 2019 00:37:02 +0000 (16:37 -0800)
commit581cd596928bf6bc34ef806e4f015a86ab82f728
treedc50bd369c3b0cdbf1d01ed7b792518e3c99a51c
parent56ed835bffb0e9cd6770a788b6605b84bd54683c
freedreno/ir3: Add new synchronization opcodes

There are two new opcodes in use in tesselation control shaders:
category 0, opcodes 13 and 15.  unk13 is a kill type of instruction
that terminates threads where !p0.x and it used to narrow down a patch
wavefront to just thread 0.  Then, once thread 0 has written the tess
levels, it issues unk15, which might signal the TE that another patch
has been fully written.

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/disasm-a3xx.c
src/freedreno/ir3/instr-a3xx.h
src/freedreno/ir3/ir3.c
src/freedreno/ir3/ir3.h
src/freedreno/ir3/ir3_legalize.c