History log of /external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
27544ea8d330309a7f1604bece6d2fcb4e9a8ae3 15-Nov-2016 Eric Anholt <eric@anholt.net> vc4: Split optimizing VPM writes from VPM reads.

The VPM write logic will be basically the same as the texture coordinate
write logic we need, and it's not really related to the VPM read logic
other than the reuse of the use_count array.
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
314f0c57e4c00b0a5cb544fa43e356c1069acd8f 15-Nov-2016 Eric Anholt <eric@anholt.net> vc4: Refactor qir_get_op_nsrc(enum qop) to qir_get_nsrc(struct qinst *).

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.
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
a0671d67def9e83ae511f758091b87d4ac34bea4 02-Aug-2016 Eric Anholt <eric@anholt.net> vc4: Fix a leak of the src[] array of VPM reads in optimization.

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
37ecc616628d3d5fb75e53135f2f31b11e0cce74 09-Jul-2016 Eric Anholt <eric@anholt.net> vc4: Disable vc4_opt_vpm in the presence of control flow.

It's a really valuable pass currently, but it will be a mess to rewrite
for control flow. For now, just disable it if we have multiple blocks
present.
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
d3cdbf6fd817ae5e7a8a72bcc3f43cc1b04a709b 09-Jul-2016 Eric Anholt <eric@anholt.net> vc4: Add a "qir_for_each_inst_inorder" macro and use it in many places.

We have the prior list_foreach() all over the code, but I need to move
where instructions live as part of adding support for control flow. Start
by just converting to a helper iterator macro. (The simpler
"qir_for_each_inst()" will be used for the for-each-inst-in-a-block
iterator macro later)
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
e46b48963a6f336049af3d10649bab48cd12fdee 21-Mar-2016 Eric Anholt <eric@anholt.net> vc4: Allow multi-instruction QIR nodes to get VPM optimization.

There used to be multi-instruction operations that would use src[] twice,
which is why we couldn't do some optimizations on them. This is no longer
the case.

total instructions in shared programs: 77973 -> 77969 (-0.01%)
instructions in affected programs: 84 -> 80 (-4.76%)
total estimated cycles in shared programs: 234165 -> 234157 (-0.00%)
estimated cycles in affected programs: 92 -> 84 (-8.70%)
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
e103b52aec773537d2821d8acc42ac9caa2a4b17 07-Mar-2016 Varad Gautam <varadgautam@gmail.com> vc4: Coalesce instructions using VPM reads into the VPM read.

This is done instead of copy propagating the VPM reads into the
instructions using them, because VPM reads have to stay in order.

shader-db results:
total instructions in shared programs: 78509 -> 78114 (-0.50%)
instructions in affected programs: 5203 -> 4808 (-7.59%)
total estimated cycles in shared programs: 234670 -> 234318 (-0.15%)
estimated cycles in affected programs: 5345 -> 4993 (-6.59%)

Signed-off-by: Varad Gautam <varadgautam@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Rhys Kidd <rhyskidd@gmail.com>
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c
00bdbb22a92a40472ef47d22b26926ac8f542826 07-Mar-2016 Varad Gautam <varadgautam@gmail.com> vc4: rename file to group vpm optimizations together

This file will contain optimization passes for both vpm reads
and writes.

Signed-off-by: Varad Gautam <varadgautam@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/gallium/drivers/vc4/vc4_opt_vpm.c