mesa/st: Don't copy propagate from swizzles.
Do not propagate a copy if source and destination are identical. Otherwise code like MOV TEMP[0].xyzw, TEMP[0].wzyx MOV TEMP[1].xyzw, TEMP[0].xyzw is changed to MOV TEMP[0].xyzw, TEMP[0].wzyx MOV TEMP[1].xyzw, TEMP[0].wzyx This fixes Piglit test shaders/glsl-copy-propagation-self-2 for gallium drivers. NOTE: This is a candidate for the stable branches. Signed-off-by: Fabian Bieler <fabianbieler@fastmail.fm> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
5d06c9ea0f
commit
e1ff753d67
|
@ -3552,6 +3552,8 @@ glsl_to_tgsi_visitor::copy_propagate(void)
|
|||
/* If this is a copy, add it to the ACP. */
|
||||
if (inst->op == TGSI_OPCODE_MOV &&
|
||||
inst->dst.file == PROGRAM_TEMPORARY &&
|
||||
!(inst->dst.file == inst->src[0].file &&
|
||||
inst->dst.index == inst->src[0].index) &&
|
||||
!inst->dst.reladdr &&
|
||||
!inst->saturate &&
|
||||
!inst->src[0].reladdr &&
|
||||
|
|
Loading…
Reference in New Issue