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
|