diff options
author | Eric Anholt <[email protected]> | 2016-11-10 15:23:19 -0800 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2016-11-12 18:46:35 -0800 |
commit | 4f527f12604269f15704bbd14a4962766afdfb9a (patch) | |
tree | 4f41e1f564a7f2a7fc702239757e64c7b75db522 /src/gallium/drivers/vc4/vc4_qir.h | |
parent | 93cdae44defdcc0a758e2f5376226b9944e1c91e (diff) |
vc4: Add a thread switch QIR instruction.
This will eventually be generated at the QIR level, so that
vc4_qir_schedule.c can arrange the separation of tex_strb from tex_result
correctly. It will also be important so that register allocation set the
register classes appropriately for values that are live across the switch.
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_qir.h')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_qir.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/vc4/vc4_qir.h b/src/gallium/drivers/vc4/vc4_qir.h index c76aeb2bf4e..7f321c46868 100644 --- a/src/gallium/drivers/vc4/vc4_qir.h +++ b/src/gallium/drivers/vc4/vc4_qir.h @@ -156,6 +156,16 @@ enum qop { */ QOP_TEX_RESULT, + /** + * Insert the signal for switching threads in a threaded fragment + * shader. No value can be live in an accumulator across a thrsw. + * + * At the QPU level, this will have several delay slots before the + * switch happens. Those slots are the responsibility of the + * scheduler. + */ + QOP_THRSW, + /* 32-bit immediate loaded to each SIMD channel */ QOP_LOAD_IMM, |