diff options
author | Keith Packard <keithp@keithp.com> | 2008-04-08 16:21:55 -0500 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-04-10 16:58:11 -0500 |
commit | 32ef98518394d29cb87405005c660278489396bb (patch) | |
tree | dff128b528813b318c55e3796ccdc5c051b26c5d /src/exa_wm_noca.g4a | |
parent | b68d9f4245d0ebe3371c179401ff145f1a4d101b (diff) |
Compute pixel values directly into data port
Instead of leaving pixel values in src_sample registers, compute the pixel
values directl to the data port to save 8 moves. This cannot work when no
computation is done as there is both no way to wait for the sampler to
finish and because the sampler returns data in a different order from that
required by the data port (sigh).
Diffstat (limited to 'src/exa_wm_noca.g4a')
-rw-r--r-- | src/exa_wm_noca.g4a | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/exa_wm_noca.g4a b/src/exa_wm_noca.g4a index d0d60faa..f43c6f43 100644 --- a/src/exa_wm_noca.g4a +++ b/src/exa_wm_noca.g4a @@ -32,7 +32,14 @@ include(`exa_wm.g4i') /* mul mask's alpha channel to src */ -mul (16) src_sample_r_01<1>F src_sample_r_01<8,8,1>F mask_sample_a_01<8,8,1>F { compr align1 }; -mul (16) src_sample_g_01<1>F src_sample_g_01<8,8,1>F mask_sample_a_01<8,8,1>F { compr align1 }; -mul (16) src_sample_b_01<1>F src_sample_b_01<8,8,1>F mask_sample_a_01<8,8,1>F { compr align1 }; -mul (16) src_sample_a_01<1>F src_sample_a_01<8,8,1>F mask_sample_a_01<8,8,1>F { compr align1 }; +mul (8) data_port_r_01<1>F src_sample_r_01<8,8,1>F mask_sample_a_01<8,8,1>F { align1 }; +mul (8) data_port_r_23<1>F src_sample_r_23<8,8,1>F mask_sample_a_23<8,8,1>F { align1 }; + +mul (8) data_port_g_01<1>F src_sample_g_01<8,8,1>F mask_sample_a_01<8,8,1>F { align1 }; +mul (8) data_port_g_23<1>F src_sample_g_23<8,8,1>F mask_sample_a_23<8,8,1>F { align1 }; + +mul (8) data_port_b_01<1>F src_sample_b_01<8,8,1>F mask_sample_a_01<8,8,1>F { align1 }; +mul (8) data_port_b_23<1>F src_sample_b_23<8,8,1>F mask_sample_a_23<8,8,1>F { align1 }; + +mul (8) data_port_a_01<1>F src_sample_a_01<8,8,1>F mask_sample_a_01<8,8,1>F { align1 }; +mul (8) data_port_a_23<1>F src_sample_a_23<8,8,1>F mask_sample_a_23<8,8,1>F { align1 }; |