summaryrefslogtreecommitdiff
path: root/src/exa_wm_write.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_write.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_write.g4a')
-rw-r--r--src/exa_wm_write.g4a18
1 files changed, 0 insertions, 18 deletions
diff --git a/src/exa_wm_write.g4a b/src/exa_wm_write.g4a
index b16e6497..c46023e8 100644
--- a/src/exa_wm_write.g4a
+++ b/src/exa_wm_write.g4a
@@ -27,24 +27,6 @@
include(`exa_wm.g4i')
-/*
- * Prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2),
- *
- * Note that the SIMD16 write message takes data for the first
- * two sub-spans followed by the data for the second two sub-spans
- * instead of having the two sub-spans interleaved by channel. Weird.
- */
-
-mov (8) data_port_r_01<1>F src_sample_r_01<8,8,1>F { align1 };
-mov (8) data_port_g_01<1>F src_sample_g_01<8,8,1>F { align1 };
-mov (8) data_port_b_01<1>F src_sample_b_01<8,8,1>F { align1 };
-mov (8) data_port_a_01<1>F src_sample_a_01<8,8,1>F { align1 };
-
-mov (8) data_port_r_23<1>F src_sample_r_23<8,8,1>F { align1 };
-mov (8) data_port_g_23<1>F src_sample_g_23<8,8,1>F { align1 };
-mov (8) data_port_b_23<1>F src_sample_b_23<8,8,1>F { align1 };
-mov (8) data_port_a_23<1>F src_sample_a_23<8,8,1>F { align1 };
-
/* m0, m1 are all direct passed by PS thread payload */
mov (8) data_port_msg_1<1>UD g1<8,8,1>UD { align1 };