diff options
author | Wang Zhenyu <zhenyu.z.wang@intel.com> | 2006-11-29 17:05:32 +0800 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2007-01-06 14:37:30 -0800 |
commit | 79018bb47c43510d59c592592f06204189bd12dc (patch) | |
tree | db8ce16d2a5181f6646ac1056a77f701caa40055 /src/exa_sf_mask.g4a | |
parent | a5b9b438469f171b002fa0b99d8cab83e51ec968 (diff) |
[PATCH] Add in sf/wm program for mask picture without CA
Signed-off-by: Keith Packard <keithp@neko.keithp.com>
Diffstat (limited to 'src/exa_sf_mask.g4a')
-rw-r--r-- | src/exa_sf_mask.g4a | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/exa_sf_mask.g4a b/src/exa_sf_mask.g4a new file mode 100644 index 00000000..ab519cee --- /dev/null +++ b/src/exa_sf_mask.g4a @@ -0,0 +1,53 @@ + +/* FIXME how to setup second coeffient for mask tex coord */ + +/* + g3 (v0) { u0, v0, 1.0, 1.0 } ==> {u0, v0, 1.0, 1.0, mu0, mv0, 1.0, 1.0} Co[0](u0) Co[1](v0) Co[2](mu0) Co[3](mv0) + g4 (v1) { u1, v1, 1.0, 1.0 } ==> {u1, v1, 1.0, 1.0, mu1, mv1, 1.0, 1.0} + g5 (v2) { u2, v2 } ==> (u2, v2, mu2, mv2} + g6 { 1/(x1-x0), 1/(y1-y0) } + g7 { u1-u0, v1-v0, 0, 0} ==>{u1-u0, v1-v0,0, 0, mu1-mu0, mv1-mv0, 0, 0} + -> { (u1-u0)/(x1-x0), (v1-v0)/(y1-y0) } ==>{(u1-u0)/(x1-x0), (v1-v0)/(y1-y0),(mu1-mu0)/(x1-x0), (mv1-mv0)/(y1-y0) + Cx, Cy Cx[0], Cy[0], Cx[1], Cy[1] + */ + +/* assign Cx[0], Cx[1] to src, same to Cy, Co + Cx[2], Cx[3] to mask, same to Cy, Co */ + +send (1) 0 g6<1>F g1.12<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 }; +send (1) 0 g6.4<1>F g1.20<0,1,0>F math inv scalar mlen 1 rlen 1 { align1 }; +add (8) g7<1>F g4<8,8,1>F -g3<8,8,1>F { align1 }; +/* Cx[0] */ +mul (1) g7<1>F g7<0,1,0>F g6<0,1,0>F { align1 }; +/* Cy[0] */ +mul (1) g7.4<1>F g7.4<0,1,0>F g6.4<0,1,0>F { align1 }; +/* Cx[2] */ +mul (1) g7.16<1>F g7.16<0,1,0>F g6<0,1,0>F { align1 }; +/* Cy[2] */ +mul (1) g7.20<1>F g7.20<0,1,0>F g6.4<0,1,0>F { align1 }; + +/* src Cx[0], Cx[1] */ +mov (8) m1<1>F g7<0,1,0>F { align1 }; +/* mask Cx[2], Cx[3] */ +mov (1) m1.8<1>F g7.16<0,1,0>F { align1 }; +mov (1) m1.12<1>F g7.16<0,1,0>F { align1 }; +/* src Cy[0], Cy[1] */ +mov (8) m2<1>F g7.4<0,1,0>F { align1 }; +/* mask Cy[2], Cy[3] */ +mov (1) m2.8<1>F g7.20<0,1,0>F { align1 }; +mov (1) m2.12<1>F g7.20<0,1,0>F { align1 }; +/* src Co[0], Co[1] */ +mov (8) m3<1>F g3<8,8,1>F { align1 }; +/* mask Co[2], Co[3] */ +mov (1) m3.8<1>F g3.16<0,1,0>F { align1 }; +mov (1) m3.12<1>F g3.20<0,1,0>F { align1 }; + +send (8) 0 null g0<8,8,1>F urb 0 transpose used complete mlen 4 rlen 0 { align1 EOT }; +nop; +nop; +nop; +nop; +nop; +nop; +nop; +nop; |