diff options
author | Keith Whitwell <[email protected]> | 2009-09-13 11:59:24 -0700 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2009-09-13 11:59:24 -0700 |
commit | 66a7eedaa2f66e5e941cea0303c5ec348e9cc641 (patch) | |
tree | cc5f22903fea5f28f68f6f41eed17eaabe13c97a /progs | |
parent | 86226d5ea186d3fc6013bc40a341e0c0a891de39 (diff) |
tgsi: handle some src/dst aliasing in tgsi_sse2.c
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.
Diffstat (limited to 'progs')
-rw-r--r-- | progs/fp/mov-alias.txt | 6 | ||||
-rw-r--r-- | progs/fp/mul-alias.txt | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/progs/fp/mov-alias.txt b/progs/fp/mov-alias.txt new file mode 100644 index 00000000000..5f04e9c76e2 --- /dev/null +++ b/progs/fp/mov-alias.txt @@ -0,0 +1,6 @@ +!!ARBfp1.0 +TEMP R0; +MOV R0, fragment.color; +MOV R0, R0.zyxw; +MOV result.color, R0; +END diff --git a/progs/fp/mul-alias.txt b/progs/fp/mul-alias.txt new file mode 100644 index 00000000000..cf7d359e780 --- /dev/null +++ b/progs/fp/mul-alias.txt @@ -0,0 +1,6 @@ +!!ARBfp1.0 +TEMP R0; +MOV R0, fragment.color; +MUL R0, R0.zyxw, fragment.color; +MOV result.color, R0; +END |