
Src/Dst aliasing (aka SOA dependencies) requires some care to ensure intermediate results do not overwrite yet-to-be read source registers. This change ensures that MOV/SWZ handle this correctly, which is poor but no worse than the current tgsi_exec.c path. Remove the fallback as there is nothing to be gained correctness-wise between the two implementations now. Fixing this properly looks like a bit of work in this code, but might be easily achieved by sending destination writes to temporary storage.
7 lines
103 B
Plaintext
7 lines
103 B
Plaintext
!!ARBfp1.0
|
|
TEMP R0;
|
|
MOV R0, fragment.color;
|
|
MUL R0, R0.zyxw, fragment.color;
|
|
MOV result.color, R0;
|
|
END
|