History log of /external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a6ad30202cacc933290f478d8f518a7b066268b6 03-May-2016 Rob Clark <robclark@freedesktop.org> freedreno/ir3: remove a couple redundant is_flow()s

Now that the opc's encode the instruction category (making them unique)
we no longer need to check the category in addition to the opc.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
dd70945e09a348c3aa54675c65c40a284e78c362 11-Apr-2016 Rob Clark <robclark@freedesktop.org> freedreno/ir3: use (ss) instead of (sy) for ldlv

Fixes a bunch of flat-varying fail on a4xx (where we need to use ldlv to
read the un-interpolated varying).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
38ae05a340bdf526d5da62159223ad9938fea36a 04-Apr-2016 Rob Clark <robclark@freedesktop.org> freedreno/ir3: drop unused instr category arg

No longer used, so drop the extra arg to ir3_instr_create()

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
19739e4fb9024f42a8fc332e6fa94c292bb6bc16 27-Mar-2016 Rob Clark <robclark@freedesktop.org> freedreno/ir3: remove ir3_instruction::category

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
020301baccc77e5753ead1e890c0cf24a9675517 25-Jul-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: add support for store instructions

For store instructions, the "dst" register is a read register, not a
written register. (Ie. it is the address to store to.) Lets not
confuse register allocation, scheduling, etc, with these details.
Instead just leave a dummy instr->regs[0], and take "dst" from
instr->regs[1] and srcs following.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
457f7c2a2a93b45396ac66e0d4b3896d2db8fdf3 09-Jun-2015 Rob Clark <robdclark@gmail.com> freedreno/ir3: block reshuffling and loops!

This shuffles things around to allow the shader to have multiple basic
blocks. We drop the entire CFG structure from nir and just preserve the
blocks. At scheduling we know whether to schedule conditional branches
or unconditional jumps at the end of the block based on the # of block
successors. (Dropping jumps to the following instruction, etc.)

One slight complication is that variables (load_var/store_var, ie.
arrays) are not in SSA form, so we have to figure out where to put the
phi's ourself. For this, we use the predecessor set information from
nir_block. (We could perhaps use NIR's dominance frontier information
to help with this?)

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
c8fb5f8a011e1db78af3ceaf91c5cb3b1acaee14 25-May-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: move inputs/outputs to shader

These belong in the shader, rather than the block. Mostly a lot of
churn and nothing too interesting. But splitting this out from the
rest of ir3_block reshuffling to cut down the noise in the later
patch.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
adf1659ff5f07d907eca552be3b566e408c8601e 30-Apr-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: use standard list implementation

Use standard list_head double-linked list and related iterators,
helpers, etc, rather than weird combo of instruction array and next
pointers depending on stage. Now block has an instrs_list. In
certain stages where we want to remove and re-add to the blocks list
we just use list_replace() to copy the list to a new list_head.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
5c8c2e2f97394436effbdd3e0f61eec4590accb2 25-Apr-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: more builder helpers

Use ir3_MOV() builder in a couple of spots, rather than open-coding the
instruction construction. Also add ir3_NOP() builder and use that
instead of open coding.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
1de72dfc8a2014069edd1b3d3d46dad478d0680a 31-Mar-2015 Ilia Mirkin <imirkin@alum.mit.edu> freedreno/a3xx: add UBO support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
f8f7548f466509bf881db1826ef6dd23ffe2acdf 02-Feb-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: helpful iterator macros

I remembered that we are using c99.. which makes some sugary iterator
macros easier. So introduce iterator macros to iterate all src
registers and all SSA src instructions. The _n variants also return
the src #, since there are a handful of places that need this.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
e9f2abe349886ae5423c7c31d201e7d587a3695a 25-Feb-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: handle flat bypass for a4xx

We may not need this for later a4xx patchlevels, but we do at least need
this for patchlevel 0. Bypass bary.f for fetching varyings when flat
shading is needed (rather than configure via cmdstream). This requires
a special dummy bary.f w/ (ei) flag to signal to scheduler when all
varyings are consumed. And requires shader variants based on rasterizer
flatshade state to handle TGSI_INTERPOLATE_COLOR.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
9d732d3125e1b39788a642a5723aeb54cb1983f3 26-Feb-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: add support for memory (cat6) instructions

Scheduled basically the same as texture (cat5) instructions, using (sy)
flag for synchronization.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
56370b9feb269f185858422ee8fdf74a3dc99a33 06-Jan-2015 Rob Clark <robclark@freedesktop.org> freedreno/ir3: legalize vs unused sam dst components

We probably could be more clever elsewhere and mask out components that
are not used. But either way, legalize should realize that there is
also a write-after-write hazard with texture sample instructions.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c
f332cf92b69e52de3cb7c3088ad1efd2e291bb88 25-Oct-2014 Rob Clark <robclark@freedesktop.org> freedreno/ir3: split out legalize pass

Signed-off-by: Rob Clark <robclark@freedesktop.org>
/external/mesa3d/src/gallium/drivers/freedreno/ir3/ir3_legalize.c