summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/vc4/vc4_qir_emit_uniform_stream_resets.c
AgeCommit message (Collapse)AuthorFilesLines
2016-11-29vc4: Add support for coalescing ALU ops into tex_[srtb] MOVs.Eric Anholt1-16/+2
This isn't as complete as I would like (can't merge interpolation because of the implicit r5 dependency, doesn't work with control flow), but this was cheap and easy. Improves 3DMMES Taiji performance by 1.15353% +/- 0.299896% (n=29, 16) total instructions in shared programs: 99810 -> 99059 (-0.75%) instructions in affected programs: 10705 -> 9954 (-7.02%)
2016-11-29vc4: Refactor qir_get_op_nsrc(enum qop) to qir_get_nsrc(struct qinst *).Eric Anholt1-1/+1
Every caller was dereffing the qinst, and this will let us make the number of sources vary depending on the destination of the qinst so that we can have general ALU ops that store to tex_[strb] and get an implicit uniform.
2016-07-13vc4: Emit resets of the uniform stream at the starts of blocks.Eric Anholt1-0/+101
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.