summaryrefslogtreecommitdiff
path: root/src/exa_wm_noca.g4a
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-04-08 16:21:55 -0500
committerKeith Packard <keithp@keithp.com>2008-04-10 16:58:11 -0500
commit32ef98518394d29cb87405005c660278489396bb (patch)
treedff128b528813b318c55e3796ccdc5c051b26c5d /src/exa_wm_noca.g4a
parentb68d9f4245d0ebe3371c179401ff145f1a4d101b (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.g4a15
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 };