History log of /external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
51244859e368d9270a1f2f84aec6e97fbc1f5fac 30-Nov-2016 Eric Anholt <eric@anholt.net> vc4: Avoid false scheduling dependencies for LOAD_IMMs.

Noticed in shaders with branching, where we ended up scheduling delay
slots near the start of a block for the uniforms reset setup.

total instructions in shared programs: 93970 -> 93951 (-0.02%)
instructions in affected programs: 3117 -> 3098 (-0.61%)

3DMMES performance +0.423087% +/- 0.133521% (n=9,10)
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
93cdae44defdcc0a758e2f5376226b9944e1c91e 11-Nov-2016 Eric Anholt <eric@anholt.net> vc4: Add a bit of QPU validation for threaded shaders.

These are both bugs we've run into along the way writing multithreaded FS
support.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
b160708e0307ea0baa2c7891ad9760cdfd39b4bc 25-Aug-2016 Eric Anholt <eric@anholt.net> vc4: Add real validation for MUL rotation.

Caught problems in the upcoming DDX/DDY implementation.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
93794145dd5959d905b65234cf87de3bff801aeb 03-May-2016 Eric Anholt <eric@anholt.net> vc4: Validate QPU uniform pointer updates.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
c73aa0a09b996feff5aec42e0347b99b35b2f981 15-Mar-2016 Eric Anholt <eric@anholt.net> vc4: Add QPU support for generating BRANCH instructions.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
890dc19eeba10b4df9c658b524ce743cf4db6765 03-May-2016 Eric Anholt <eric@anholt.net> vc4: Make vc4_qpu_validate() produce more verbose failures.

Seeing the expansion of a QPU_GET_FIELD in an assert isn't very
informative, and it's hard find what's going wrong without getting a dump
of the instruction that failed.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
cd7dd45bfec9ad68719c5e4e04b66ea4bcc1a2c1 11-Jul-2015 Eric Anholt <eric@anholt.net> vc4: Fix compiler warnings on release builds.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
e473fbe4690b5cbe3769042a4917f22559e2ba8d 10-Dec-2014 Eric Anholt <eric@anholt.net> vc4: Add support for turning constant uniforms into small immediates.

Small immediates have the downside of taking over the raddr B field, so
you might have less chance to pack instructions together thanks to raddr B
conflicts. However, it also reduces some register pressure since it lets
you load 2 "uniform" values in one instruction (avoiding a previous load
of the constant value to a register), and increases some pairing for the
same reason.

total uniforms in shared programs: 16231 -> 13374 (-17.60%)
uniforms in affected programs: 10280 -> 7423 (-27.79%)
total instructions in shared programs: 40795 -> 41168 (0.91%)
instructions in affected programs: 25551 -> 25924 (1.46%)

In a previous version of this patch I had a reduction in instruction count
by forcing the other args alongside a SMALL_IMM to be in the A file or
accumulators, but that increases register pressure and had a bug in
handling FRAG_Z. In this patch is I just use raddr conflict resolution,
which is more expensive. I think I'd rather tweak allocation to have some
way to slightly prefer good choices for files in general, rather than risk
failing to register allocate by forcing things into register classes.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
bd4057a5d74fd12222801c55ee98346af9c1095d 03-Dec-2014 Eric Anholt <eric@anholt.net> vc4: Refuse to merge two ops that both access shared functions.

Avoids assertion failures in vc4_qpu_validate.c if we happen to find the
right set of operations available.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
a7b1a93137f4441822760f1cfe261065474163ab 30-Nov-2014 Eric Anholt <eric@anholt.net> vc4: Fix assertion about SFU versus texturing.

We're supposed to be checking that nothing else writes r4, which is done
by the TMU result collection signal, not the coordinate setup.

Avoids a regression when QPU instruction scheduling is introduced.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
2d5784c8254b4a0e3e04dd0f1e46ab1eb85612dd 27-Nov-2014 Eric Anholt <eric@anholt.net> vc4: Add another check for invalid TLB scoreboard handling.

This was caught by an assertion in the simulator.
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
2ab4e48f9457159087c851f2230c1e642ea65802 20-Aug-2014 Eric Anholt <eric@anholt.net> vc4: Fix totally broken assertions about inter-instruction reg conflicts.

The spec citation talked about A and B, and I proceeded to pay no
attention to whether the waddrs were for A or B. As a result, this pair
of instructions would claim to conflict:

mov ra4, ra4 ; nop nop, r0, r0
mov.ns ra4, rb4 ; nop nop, r0, r0
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c
1850d0a1cbf044dc4d29b7a9ede2c634f667d853 19-Jun-2014 Eric Anholt <eric@anholt.net> vc4: Initial skeleton driver import.

This mostly just takes every draw call and turns it into a sequence of
commands that clear the FBO and draw a single shaded triangle to it,
regardless of the actual input vertices or shaders. I copied the initial
driver skeleton mostly from freedreno, and I've preserved Rob Clark's
copyright for those. I also based my initial hardcoded shaders and
command lists on Scott Mansell (phire)'s "hackdriver" project, though the
bit patterns of the shaders emitted end up being different.

v2: Rebase on gallium megadrivers changes.
v3: Rebase on PIPE_SHADER_CAP_MAX_CONSTS change.
v4: Rely on simpenrose actually being installed when building for
simulation.
v5: Add more header duplicate-include guards.
v6: Apply Emil's review (protection against vc4 sim and ilo at the same
time, and dropping the dricommon drm bits) and fix a copyright header
(thanks, Roland)
/external/mesa3d/src/gallium/drivers/vc4/vc4_qpu_validate.c