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_write.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_write.g4a')
-rw-r--r-- | src/exa_wm_write.g4a | 18 |
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 }; |