diff options
author | Rob Clark <[email protected]> | 2014-10-24 09:27:37 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2014-10-25 12:07:43 -0400 |
commit | 13862812dc910a4ef57cb72cb9fe777ce3c14515 (patch) | |
tree | ebbb71fa5a4460fd56958845fd53061c4eae467b /src/gallium/drivers/nouveau/nv50/nv50_context.h | |
parent | 4dff2a642913cb9b72eccc3c290b1e5a71560156 (diff) |
freedreno/ir3: consider instruction neighbors in cp
Fanin (merge) nodes require it's srcs to be "adjacent" in consecutive
scalar registers. Keep track of instruction neighbors in copy-
propagation step and avoid eliminating mov's which would cause an
instruction to need multiple distinct left and/or right neighbors.
This lets us not fall on our face when we encounter things like:
1: MOV TEMP[2], IN[0].xyzw
2: TEX OUT[0].xy, TEMP[2], SAMP[0], SHADOW2D
3: MOV TEMP[2].xy, IN[0].yxzz
4: TEX OUT[0].zw, TEMP[2], SAMP[0], SHADOW2D
5: END
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau/nv50/nv50_context.h')
0 files changed, 0 insertions, 0 deletions