1fa225cbcSrjs/* 2fa225cbcSrjs * Copyright © 2006 Intel Corporation 3fa225cbcSrjs * 4fa225cbcSrjs * Permission is hereby granted, free of charge, to any person obtaining a 5fa225cbcSrjs * copy of this software and associated documentation files (the "Software"), 6fa225cbcSrjs * to deal in the Software without restriction, including without limitation 7fa225cbcSrjs * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8fa225cbcSrjs * and/or sell copies of the Software, and to permit persons to whom the 9fa225cbcSrjs * Software is furnished to do so, subject to the following conditions: 10fa225cbcSrjs * 11fa225cbcSrjs * The above copyright notice and this permission notice (including the next 12fa225cbcSrjs * paragraph) shall be included in all copies or substantial portions of the 13fa225cbcSrjs * Software. 14fa225cbcSrjs * 15fa225cbcSrjs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16fa225cbcSrjs * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17fa225cbcSrjs * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18fa225cbcSrjs * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19fa225cbcSrjs * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20fa225cbcSrjs * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21fa225cbcSrjs * IN THE SOFTWARE. 22fa225cbcSrjs * 23fa225cbcSrjs * Authors: 24fa225cbcSrjs * Wang Zhenyu <zhenyu.z.wang@intel.com> 25fa225cbcSrjs * Keith Packard <keithp@keithp.com> 26fa225cbcSrjs */ 27fa225cbcSrjs 28fa225cbcSrjsinclude(`exa_wm.g4i') 29fa225cbcSrjs 30fa225cbcSrjs/* 31fa225cbcSrjs * Prepare data in m2-m5 for subspan(1,0), m6-m9 for subspan(3,2), 32fa225cbcSrjs * 33fa225cbcSrjs * Note that the SIMD16 write message takes data for the first 34fa225cbcSrjs * two sub-spans followed by the data for the second two sub-spans 35fa225cbcSrjs * instead of having the two sub-spans interleaved by channel. Weird. 36fa225cbcSrjs */ 37fa225cbcSrjs 38fa225cbcSrjsmov (8) data_port_r_01<1>F src_sample_r_01<8,8,1>F { align1 }; 39fa225cbcSrjsmov (8) data_port_g_01<1>F src_sample_g_01<8,8,1>F { align1 }; 40fa225cbcSrjsmov (8) data_port_b_01<1>F src_sample_b_01<8,8,1>F { align1 }; 41fa225cbcSrjsmov (8) data_port_a_01<1>F src_sample_a_01<8,8,1>F { align1 }; 42fa225cbcSrjs 43fa225cbcSrjsmov (8) data_port_r_23<1>F src_sample_r_23<8,8,1>F { sechalf align1 }; 44fa225cbcSrjsmov (8) data_port_g_23<1>F src_sample_g_23<8,8,1>F { sechalf align1 }; 45fa225cbcSrjsmov (8) data_port_b_23<1>F src_sample_b_23<8,8,1>F { sechalf align1 }; 46fa225cbcSrjsmov (8) data_port_a_23<1>F src_sample_a_23<8,8,1>F { sechalf align1 }; 47fa225cbcSrjs 48fa225cbcSrjs/* m0, m1 are all direct passed by PS thread payload */ 49fa225cbcSrjsmov (8) data_port_msg_1<1>UD g1<8,8,1>UD { mask_disable align1 }; 50fa225cbcSrjs 51fa225cbcSrjs/* write */ 52fa225cbcSrjssend (16) 53fa225cbcSrjs data_port_msg_0_ind 54fa225cbcSrjs acc0<1>UW 55fa225cbcSrjs g0<8,8,1>UW 56fa225cbcSrjs write ( 57fa225cbcSrjs 0, /* binding_table */ 58fa225cbcSrjs 8, /* pixel scordboard clear, msg type simd16 single source */ 59fa225cbcSrjs 4, /* render target write */ 60fa225cbcSrjs 0 /* no write commit message */ 61fa225cbcSrjs ) 62fa225cbcSrjs mlen 10 63fa225cbcSrjs rlen 0 64fa225cbcSrjs { align1 EOT }; 65fa225cbcSrjs 66fa225cbcSrjsnop; 67fa225cbcSrjsnop; 68fa225cbcSrjsnop; 69fa225cbcSrjsnop; 70fa225cbcSrjsnop; 71fa225cbcSrjsnop; 72fa225cbcSrjsnop; 73fa225cbcSrjsnop; 74fa225cbcSrjs 75