vc4: Emit resets of the uniform stream at the starts of blocks.
authorEric Anholt <eric@anholt.net>
Fri, 6 May 2016 01:11:04 +0000 (18:11 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 14 Jul 2016 06:54:15 +0000 (23:54 -0700)
commit9194473dd260fe72042807a97be0072c6f0537da
tree73bee220f5de595738a4f831b353c2444b0e642a
parent44df061aaad96fc5db630ae69fb2fe2a03bb5659
vc4: Emit resets of the uniform stream at the starts of blocks.

If a block might be entered from multiple locations, then the uniform
stream will (probably) be at different points, and we need to make sure
that it's pointing where we expect it to be.  The kernel also enforces
that any block reading a uniform resets uniforms, to prevent reading
outside of the uniform stream by using looping.
src/gallium/drivers/vc4/Makefile.sources
src/gallium/drivers/vc4/vc4_program.c
src/gallium/drivers/vc4/vc4_qir.c
src/gallium/drivers/vc4/vc4_qir.h
src/gallium/drivers/vc4/vc4_qir_emit_uniform_stream_resets.c [new file with mode: 0644]
src/gallium/drivers/vc4/vc4_qir_schedule.c
src/gallium/drivers/vc4/vc4_qpu_emit.c
src/gallium/drivers/vc4/vc4_qpu_schedule.c
src/gallium/drivers/vc4/vc4_uniforms.c