diff options
Diffstat (limited to 'src/xvmc/shader')
38 files changed, 5818 insertions, 0 deletions
diff --git a/src/xvmc/shader/Makefile.am b/src/xvmc/shader/Makefile.am new file mode 100644 index 00000000..1a27c83b --- /dev/null +++ b/src/xvmc/shader/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = vld diff --git a/src/xvmc/shader/vld/Makefile.am b/src/xvmc/shader/vld/Makefile.am new file mode 100644 index 00000000..49e20432 --- /dev/null +++ b/src/xvmc/shader/vld/Makefile.am @@ -0,0 +1,31 @@ +INTEL_G4A = ipicture.g4a \ + lib.g4a \ + frame_forward.g4a \ + frame_backward.g4a \ + frame_f_b.g4a \ + field_forward.g4a \ + field_backward.g4a \ + field_f_b.g4a + +INTEL_G4B = ipicture.g4b \ + lib.g4b \ + frame_forward.g4b \ + frame_backward.g4b \ + frame_f_b.g4b \ + field_forward.g4b \ + field_backward.g4b \ + field_f_b.g4b + +if HAVE_GEN4ASM + +SUFFIXES = .g4a .g4b +.g4a.g4b: + m4 $*.g4a > $*.g4m && intel-gen4asm -o $@ $*.g4m && rm $*.g4m + +$(INTEL_G4B): $(INTEL_G4I) + +BUILT_SOURCES= $(INTEL_G4B) + +clean-local: + -rm -f $(INTEL_G4B) +endif diff --git a/src/xvmc/shader/vld/addidct.g4i b/src/xvmc/shader/vld/addidct.g4i new file mode 100644 index 00000000..b57548d1 --- /dev/null +++ b/src/xvmc/shader/vld/addidct.g4i @@ -0,0 +1,152 @@ +/* + * Copyright © 2008 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; //restore x and y + +and.nz (1) null g82.2<1,1,1>UW 0x20UW {align1}; //dct_type +(f0) jmpi field_dct; + +add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1}; +add (16) g59.0<1>W g84.0<16,16,1>W g59.0<16,16,2>UB {align1}; +add (16) g60.0<1>W g85.0<16,16,1>W g60.0<16,16,2>UB {align1}; +add (16) g61.0<1>W g86.0<16,16,1>W g61.0<16,16,2>UB {align1}; +add (16) g62.0<1>W g87.0<16,16,1>W g62.0<16,16,2>UB {align1}; +add (16) g63.0<1>W g88.0<16,16,1>W g63.0<16,16,2>UB {align1}; +add (16) g64.0<1>W g89.0<16,16,1>W g64.0<16,16,2>UB {align1}; +add (16) g65.0<1>W g90.0<16,16,1>W g65.0<16,16,2>UB {align1}; +add (16) g66.0<1>W g91.0<16,16,1>W g66.0<16,16,2>UB {align1}; +add (16) g67.0<1>W g92.0<16,16,1>W g67.0<16,16,2>UB {align1}; +add (16) g68.0<1>W g93.0<16,16,1>W g68.0<16,16,2>UB {align1}; +add (16) g69.0<1>W g94.0<16,16,1>W g69.0<16,16,2>UB {align1}; +add (16) g70.0<1>W g95.0<16,16,1>W g70.0<16,16,2>UB {align1}; +add (16) g71.0<1>W g96.0<16,16,1>W g71.0<16,16,2>UB {align1}; +add (16) g72.0<1>W g97.0<16,16,1>W g72.0<16,16,2>UB {align1}; +add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1}; +jmpi write_back; + +field_dct: +add (16) g58.0<1>W g83.0<16,16,1>W g58.0<16,16,2>UB {align1}; +add (16) g59.0<1>W g91.0<16,16,1>W g59.0<16,16,2>UB {align1}; +add (16) g60.0<1>W g84.0<16,16,1>W g60.0<16,16,2>UB {align1}; +add (16) g61.0<1>W g92.0<16,16,1>W g61.0<16,16,2>UB {align1}; +add (16) g62.0<1>W g85.0<16,16,1>W g62.0<16,16,2>UB {align1}; +add (16) g63.0<1>W g93.0<16,16,1>W g63.0<16,16,2>UB {align1}; +add (16) g64.0<1>W g86.0<16,16,1>W g64.0<16,16,2>UB {align1}; +add (16) g65.0<1>W g94.0<16,16,1>W g65.0<16,16,2>UB {align1}; +add (16) g66.0<1>W g87.0<16,16,1>W g66.0<16,16,2>UB {align1}; +add (16) g67.0<1>W g95.0<16,16,1>W g67.0<16,16,2>UB {align1}; +add (16) g68.0<1>W g88.0<16,16,1>W g68.0<16,16,2>UB {align1}; +add (16) g69.0<1>W g96.0<16,16,1>W g69.0<16,16,2>UB {align1}; +add (16) g70.0<1>W g89.0<16,16,1>W g70.0<16,16,2>UB {align1}; +add (16) g71.0<1>W g97.0<16,16,1>W g71.0<16,16,2>UB {align1}; +add (16) g72.0<1>W g90.0<16,16,1>W g72.0<16,16,2>UB {align1}; +add (16) g73.0<1>W g98.0<16,16,1>W g73.0<16,16,2>UB {align1}; + +write_back: +mov (1) g31.8<1>UD 0x00F000FUD {align1}; +mov.sat (16) g58.0<2>UB g58.0<16,16,1>W {align1}; +mov.sat (16) g59.0<2>UB g59.0<16,16,1>W {align1}; +mov.sat (16) g60.0<2>UB g60.0<16,16,1>W {align1}; +mov.sat (16) g61.0<2>UB g61.0<16,16,1>W {align1}; +mov.sat (16) g62.0<2>UB g62.0<16,16,1>W {align1}; +mov.sat (16) g63.0<2>UB g63.0<16,16,1>W {align1}; +mov.sat (16) g64.0<2>UB g64.0<16,16,1>W {align1}; +mov.sat (16) g65.0<2>UB g65.0<16,16,1>W {align1}; +mov.sat (16) g66.0<2>UB g66.0<16,16,1>W {align1}; +mov.sat (16) g67.0<2>UB g67.0<16,16,1>W {align1}; +mov.sat (16) g68.0<2>UB g68.0<16,16,1>W {align1}; +mov.sat (16) g69.0<2>UB g69.0<16,16,1>W {align1}; +mov.sat (16) g70.0<2>UB g70.0<16,16,1>W {align1}; +mov.sat (16) g71.0<2>UB g71.0<16,16,1>W {align1}; +mov.sat (16) g72.0<2>UB g72.0<16,16,1>W {align1}; +mov.sat (16) g73.0<2>UB g73.0<16,16,1>W {align1}; + +mov (16) m1.0<1>UB g58.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g59.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g60.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g61.0<16,16,2>UB {align1}; +mov (16) m3.0<1>UB g62.0<16,16,2>UB {align1}; +mov (16) m3.16<1>UB g63.0<16,16,2>UB {align1}; +mov (16) m4.0<1>UB g64.0<16,16,2>UB {align1}; +mov (16) m4.16<1>UB g65.0<16,16,2>UB {align1}; +mov (16) m5.0<1>UB g66.0<16,16,2>UB {align1}; +mov (16) m5.16<1>UB g67.0<16,16,2>UB {align1}; +mov (16) m6.0<1>UB g68.0<16,16,2>UB {align1}; +mov (16) m6.16<1>UB g69.0<16,16,2>UB {align1}; +mov (16) m7.0<1>UB g70.0<16,16,2>UB {align1}; +mov (16) m7.16<1>UB g71.0<16,16,2>UB {align1}; +mov (16) m8.0<1>UB g72.0<16,16,2>UB {align1}; +mov (16) m8.16<1>UB g73.0<16,16,2>UB {align1}; +send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1}; + +//U +mov (1) g31.8<1>UD 0x0070007UD { align1 }; +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1D {align1}; +add (16) g74.0<1>W g99.0<16,16,1>W g74.0<16,16,1>UW {align1}; +add (16) g75.0<1>W g100.0<16,16,1>W g75.0<16,16,1>UW {align1}; +add (16) g76.0<1>W g101.0<16,16,1>W g76.0<16,16,1>UW {align1}; +add (16) g77.0<1>W g102.0<16,16,1>W g77.0<16,16,1>UW {align1}; +mov.sat (16) g74.0<2>UB g74.0<16,16,1>W {align1}; +mov.sat (16) g75.0<2>UB g75.0<16,16,1>W {align1}; +mov.sat (16) g76.0<2>UB g76.0<16,16,1>W {align1}; +mov.sat (16) g77.0<2>UB g77.0<16,16,1>W {align1}; + +mov (16) m1.0<1>UB g74.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g75.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g76.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g77.0<16,16,2>UB {align1}; +send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 }; + +//V +add (16) g78.0<1>UW g103.0<16,16,1>W g78.0<16,16,1>UW {align1}; +add (16) g79.0<1>UW g104.0<16,16,1>W g79.0<16,16,1>UW {align1}; +add (16) g80.0<1>UW g105.0<16,16,1>W g80.0<16,16,1>UW {align1}; +add (16) g81.0<1>UW g106.0<16,16,1>W g81.0<16,16,1>UW {align1}; +mov.sat (16) g78.0<2>UB g78.0<16,16,1>W {align1}; +mov.sat (16) g79.0<2>UB g79.0<16,16,1>W {align1}; +mov.sat (16) g80.0<2>UB g80.0<16,16,1>W {align1}; +mov.sat (16) g81.0<2>UB g81.0<16,16,1>W {align1}; + +mov (16) m1.0<1>UB g78.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g79.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g80.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g81.0<16,16,2>UB {align1}; +send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 }; + +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; + diff --git a/src/xvmc/shader/vld/do_iq_intra.g4i b/src/xvmc/shader/vld/do_iq_intra.g4i new file mode 100644 index 00000000..29bd0208 --- /dev/null +++ b/src/xvmc/shader/vld/do_iq_intra.g4i @@ -0,0 +1,64 @@ +/* + * Copyright © 2008 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2 + g[a0.0]:DCT data of a block + g125: ip before jump + if(v==0 && u==0 && intra_mb) + F''[v][u] = QF[v][u] * intra_dc_mult + else + F''[v][u] = (QF[v][u]*W[w][v][u]*quantiser_scale*2)/32 +*/ +DO_IQ_INTRA: +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mov (1) g111.0<1>W g[a0.0]<1,1,1>W {align1}; +mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr}; +mul (16) g116.0<1>D g116.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g116.0<1>D g116.0<8,8,1>D 4UW {align1 compr}; +mul (1) g116.0<1>D g111<1,1,1>W g109.4<1,1,1>UW {align1}; //intra_dc_mult + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr}; +mul (16) g118.0<1>D g118.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g118.0<1>D g118.0<8,8,1>D 4UW {align1 compr}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr}; +mul (16) g120.0<1>D g120.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g120.0<1>D g120.0<8,8,1>D 4UW {align1 compr}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr}; +mul (16) g122.0<1>D g122.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g122.0<1>D g122.0<8,8,1>D 4UW {align1 compr}; + +add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back diff --git a/src/xvmc/shader/vld/do_iq_non_intra.g4i b/src/xvmc/shader/vld/do_iq_non_intra.g4i new file mode 100644 index 00000000..da85e845 --- /dev/null +++ b/src/xvmc/shader/vld/do_iq_non_intra.g4i @@ -0,0 +1,59 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2 + g[a0.0]:DCT data of a block + g125: ip before jump + F''[v][u]=(((QF[v][u]*2)+Sign(QF[v][u])) * W[w][v][u] * quantiser_scale)/32; +*/ +DO_IQ_NON_INTRA: +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g116.0<1>D g[a0.0]<8,8,1>W g112.0<8,8,1>UW {align1 compr}; +mul (16) g116.0<1>D g116.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g116.0<1>D g116.0<8,8,1>D 4UW {align1 compr}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g118.0<1>D g[a0.0]<8,8,1>W g113.0<8,8,1>UW {align1 compr}; +mul (16) g118.0<1>D g118.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g118.0<1>D g118.0<8,8,1>D 4UW {align1 compr}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g120.0<1>D g[a0.0]<8,8,1>W g114.0<8,8,1>UW {align1 compr}; +mul (16) g120.0<1>D g120.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g120.0<1>D g120.0<8,8,1>D 4UW {align1 compr}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +mul (16) g122.0<1>D g[a0.0]<8,8,1>W g115.0<8,8,1>UW {align1 compr}; +mul (16) g122.0<1>D g122.0<8,8,1>D g109.0<8,8,0>UW {align1 compr}; +asr (16) g122.0<1>D g122.0<8,8,1>D 4UW {align1 compr}; + +add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back diff --git a/src/xvmc/shader/vld/field_backward.g4a b/src/xvmc/shader/vld/field_backward.g4a new file mode 100644 index 00000000..9db50eda --- /dev/null +++ b/src/xvmc/shader/vld/field_backward.g4a @@ -0,0 +1,126 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +/*field 0 of Y*/ +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`7') +define(`mv1',`g82.20') +define(`mv2',`g82.22') +include(`motion_field_y.g4i') +mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 1 of Y*/ +asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`7') +define(`mv1',`g82.28') +define(`mv2',`g82.30') +include(`motion_field_y.g4i') +mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 0 of UV*/ +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface_u', `8') +define(`surface_v', `9') +define(`mv1',`g82.20') +define(`mv2',`g82.22') +include(`motion_field_uv.g4i') +mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1}; + +/*field 1 of UV*/ +asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`mv1',`g82.28') +define(`mv2',`g82.30') +include(`motion_field_uv.g4i') +mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1}; + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/field_backward.g4b b/src/xvmc/shader/vld/field_backward.g4b new file mode 100644 index 00000000..c1283e4a --- /dev/null +++ b/src/xvmc/shader/vld/field_backward.g4b @@ -0,0 +1,413 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/field_f_b.g4a b/src/xvmc/shader/vld/field_f_b.g4a new file mode 100644 index 00000000..fdc1e838 --- /dev/null +++ b/src/xvmc/shader/vld/field_f_b.g4a @@ -0,0 +1,213 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +/*field 0 forward prediction of Y*/ +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`4') +define(`mv1',`g82.16') +define(`mv2',`g82.18') +include(`motion_field_y.g4i') +mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 1 forward prediction of Y*/ +asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`4') +define(`mv1',`g82.24') +define(`mv2',`g82.26') +include(`motion_field_y.g4i') +mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 0 forward prediction of UV*/ +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface_u', `5') +define(`surface_v', `6') +define(`mv1',`g82.16') +define(`mv2',`g82.18') +include(`motion_field_uv.g4i') +mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1}; + +/*field 1 forward prediction of UV*/ +asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`mv1',`g82.24') +define(`mv2',`g82.26') +include(`motion_field_uv.g4i') +mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1}; + +/*field 0 backward prediction of Y*/ +mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1}; + +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`7') +define(`mv1',`g82.20') +define(`mv2',`g82.22') +include(`motion_field_y.g4i') +avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g32.0<16,16,1>UW {align1}; +avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g33.0<16,16,1>UW {align1}; +avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g34.0<16,16,1>UW {align1}; +avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g35.0<16,16,1>UW {align1}; +avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g36.0<16,16,1>UW {align1}; +avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g37.0<16,16,1>UW {align1}; +avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g38.0<16,16,1>UW {align1}; +avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g39.0<16,16,1>UW {align1}; + +/*field 1 backward prediction of Y*/ +asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`7') +define(`mv1',`g82.28') +define(`mv2',`g82.30') +include(`motion_field_y.g4i') +avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g32.0<16,16,1>UW {align1}; +avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g33.0<16,16,1>UW {align1}; +avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g34.0<16,16,1>UW {align1}; +avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g35.0<16,16,1>UW {align1}; +avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g36.0<16,16,1>UW {align1}; +avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g37.0<16,16,1>UW {align1}; +avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g38.0<16,16,1>UW {align1}; +avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g39.0<16,16,1>UW {align1}; + +/*field 0 backward prediction of UV*/ +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g82.20<1>W g82.20<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x2000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface_u', `8') +define(`surface_v', `9') +define(`mv1',`g82.20') +define(`mv2',`g82.22') +include(`motion_field_uv.g4i') +avg.sat (8) g74.0<1>UW g74.0<8,8,1>UW g32.0<8,8,1>UW {align1}; +avg.sat (8) g75.0<1>UW g75.0<8,8,1>UW g33.0<8,8,1>UW {align1}; +avg.sat (8) g76.0<1>UW g76.0<8,8,1>UW g34.0<8,8,1>UW {align1}; +avg.sat (8) g77.0<1>UW g77.0<8,8,1>UW g35.0<8,8,1>UW {align1}; +avg.sat (8) g78.0<1>UW g78.0<8,8,1>UW g36.0<8,8,1>UW {align1}; +avg.sat (8) g79.0<1>UW g79.0<8,8,1>UW g37.0<8,8,1>UW {align1}; +avg.sat (8) g80.0<1>UW g80.0<8,8,1>UW g38.0<8,8,1>UW {align1}; +avg.sat (8) g81.0<1>UW g81.0<8,8,1>UW g39.0<8,8,1>UW {align1}; + +/*field 1 backward prediction of UV*/ +asr (2) g82.28<1>W g82.28<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.28<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x8000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`mv1',`g82.28') +define(`mv2',`g82.30') +include(`motion_field_uv.g4i') +avg.sat (8) g74.16<1>UW g74.16<8,8,1>UW g32.0<8,8,1>UW {align1}; +avg.sat (8) g75.16<1>UW g75.16<8,8,1>UW g33.0<8,8,1>UW {align1}; +avg.sat (8) g76.16<1>UW g76.16<8,8,1>UW g34.0<8,8,1>UW {align1}; +avg.sat (8) g77.16<1>UW g77.16<8,8,1>UW g35.0<8,8,1>UW {align1}; +avg.sat (8) g78.16<1>UW g78.16<8,8,1>UW g36.0<8,8,1>UW {align1}; +avg.sat (8) g79.16<1>UW g79.16<8,8,1>UW g37.0<8,8,1>UW {align1}; +avg.sat (8) g80.16<1>UW g80.16<8,8,1>UW g38.0<8,8,1>UW {align1}; +avg.sat (8) g81.16<1>UW g81.16<8,8,1>UW g39.0<8,8,1>UW {align1}; + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/field_f_b.g4b b/src/xvmc/shader/vld/field_f_b.g4b new file mode 100644 index 00000000..437c664e --- /dev/null +++ b/src/xvmc/shader/vld/field_f_b.g4b @@ -0,0 +1,727 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x80800042, 0x27402529, 0x00b10740, 0x00b10400 }, + { 0x80800042, 0x27802529, 0x00b10780, 0x00b10420 }, + { 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10440 }, + { 0x80800042, 0x28002529, 0x00b10800, 0x00b10460 }, + { 0x80800042, 0x28402529, 0x00b10840, 0x00b10480 }, + { 0x80800042, 0x28802529, 0x00b10880, 0x00b104a0 }, + { 0x80800042, 0x28c02529, 0x00b108c0, 0x00b104c0 }, + { 0x80800042, 0x29002529, 0x00b10900, 0x00b104e0 }, + { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x80800042, 0x27602529, 0x00b10760, 0x00b10400 }, + { 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10420 }, + { 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10440 }, + { 0x80800042, 0x28202529, 0x00b10820, 0x00b10460 }, + { 0x80800042, 0x28602529, 0x00b10860, 0x00b10480 }, + { 0x80800042, 0x28a02529, 0x00b108a0, 0x00b104a0 }, + { 0x80800042, 0x28e02529, 0x00b108e0, 0x00b104c0 }, + { 0x80800042, 0x29202529, 0x00b10920, 0x00b104e0 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x80600042, 0x29402529, 0x008d0940, 0x008d0400 }, + { 0x80600042, 0x29602529, 0x008d0960, 0x008d0420 }, + { 0x80600042, 0x29802529, 0x008d0980, 0x008d0440 }, + { 0x80600042, 0x29a02529, 0x008d09a0, 0x008d0460 }, + { 0x80600042, 0x29c02529, 0x008d09c0, 0x008d0480 }, + { 0x80600042, 0x29e02529, 0x008d09e0, 0x008d04a0 }, + { 0x80600042, 0x2a002529, 0x008d0a00, 0x008d04c0 }, + { 0x80600042, 0x2a202529, 0x008d0a20, 0x008d04e0 }, + { 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x80600042, 0x29502529, 0x008d0950, 0x008d0400 }, + { 0x80600042, 0x29702529, 0x008d0970, 0x008d0420 }, + { 0x80600042, 0x29902529, 0x008d0990, 0x008d0440 }, + { 0x80600042, 0x29b02529, 0x008d09b0, 0x008d0460 }, + { 0x80600042, 0x29d02529, 0x008d09d0, 0x008d0480 }, + { 0x80600042, 0x29f02529, 0x008d09f0, 0x008d04a0 }, + { 0x80600042, 0x2a102529, 0x008d0a10, 0x008d04c0 }, + { 0x80600042, 0x2a302529, 0x008d0a30, 0x008d04e0 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/field_forward.g4a b/src/xvmc/shader/vld/field_forward.g4a new file mode 100644 index 00000000..4c79c5f4 --- /dev/null +++ b/src/xvmc/shader/vld/field_forward.g4a @@ -0,0 +1,130 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +/*field 0 of Y*/ +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1}; //motion vertical field select +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`4') +define(`mv1',`g82.16') +define(`mv2',`g82.18') +include(`motion_field_y.g4i') +mov (8) g58.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g60.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g62.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g64.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g66.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g68.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g70.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g72.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 1 of Y*/ +asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface',`4') +define(`mv1',`g82.24') +define(`mv2',`g82.26') +include(`motion_field_y.g4i') +mov (8) g59.0<1>UD g32.0<8,8,1>UD {align1}; +mov (8) g61.0<1>UD g33.0<8,8,1>UD {align1}; +mov (8) g63.0<1>UD g34.0<8,8,1>UD {align1}; +mov (8) g65.0<1>UD g35.0<8,8,1>UD {align1}; +mov (8) g67.0<1>UD g36.0<8,8,1>UD {align1}; +mov (8) g69.0<1>UD g37.0<8,8,1>UD {align1}; +mov (8) g71.0<1>UD g38.0<8,8,1>UD {align1}; +mov (8) g73.0<1>UD g39.0<8,8,1>UD {align1}; + +/*field 0 of UV*/ +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g82.16<1>W g82.16<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x1000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface_u', `5') +define(`surface_v', `6') +define(`mv1',`g82.16') +define(`mv2',`g82.18') +include(`motion_field_uv.g4i') +mov (8) g74.0<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.0<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.0<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.0<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.0<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.0<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.0<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.0<1>UW g39.0<8,8,1>UW {align1}; + +/*field 1 of UV*/ +asr (2) g82.24<1>W g82.24<2,2,1>W 1W {align1}; +asr (2) g31.14<1>W g82.24<2,2,1>W 1W {align1}; +shl (1) g31.16<1>W g31.16<1,1,1>W 1W {align1}; +add (2) g115.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +and (1) g115.4<1>UD g115.4<1,1,1>UD 0xFFFFFFFEUD {align1}; +and.nz (1) null g82.2<1,1,1>UW 0x4000UW {align1}; +(f0) add (1) g115.4<1>UD g115.4<1,1,1>UD 1UD {align1}; +define(`surface_u', `5') +define(`surface_v', `6') +define(`mv1',`g82.24') +define(`mv2',`g82.26') +include(`motion_field_uv.g4i') +mov (8) g74.16<1>UW g32.0<8,8,1>UW {align1}; +mov (8) g75.16<1>UW g33.0<8,8,1>UW {align1}; +mov (8) g76.16<1>UW g34.0<8,8,1>UW {align1}; +mov (8) g77.16<1>UW g35.0<8,8,1>UW {align1}; +mov (8) g78.16<1>UW g36.0<8,8,1>UW {align1}; +mov (8) g79.16<1>UW g37.0<8,8,1>UW {align1}; +mov (8) g80.16<1>UW g38.0<8,8,1>UW {align1}; +mov (8) g81.16<1>UW g39.0<8,8,1>UW {align1}; + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/field_forward.g4b b/src/xvmc/shader/vld/field_forward.g4b new file mode 100644 index 00000000..343643cc --- /dev/null +++ b/src/xvmc/shader/vld/field_forward.g4b @@ -0,0 +1,415 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, + { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, + { 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, + { 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, + { 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, + { 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, + { 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, + { 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, + { 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, + { 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, + { 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, + { 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, + { 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, + { 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, + { 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, + { 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, + { 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, + { 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, + { 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, + { 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, + { 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, + { 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, + { 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, + { 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, + { 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, + { 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, + { 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, + { 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, + { 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, + { 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, + { 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, + { 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, + { 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, + { 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, + { 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, + { 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, + { 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, + { 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, + { 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, + { 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, + { 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, + { 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, + { 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, + { 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, + { 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, + { 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, + { 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, + { 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, + { 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/frame_backward.g4a b/src/xvmc/shader/vld/frame_backward.g4a new file mode 100644 index 00000000..28fe910e --- /dev/null +++ b/src/xvmc/shader/vld/frame_backward.g4a @@ -0,0 +1,61 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov(2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface', `7') +define(`mv1', `g82.20') +define(`mv2', `g82.22') +include(`motion_frame_y.g4i') + +//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2) +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface1', `8') +define(`input_surface2', `9') +include(`motion_frame_uv.g4i') + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/frame_backward.g4b b/src/xvmc/shader/vld/frame_backward.g4b new file mode 100644 index 00000000..66d911fd --- /dev/null +++ b/src/xvmc/shader/vld/frame_backward.g4b @@ -0,0 +1,263 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, + { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, + { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, + { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, + { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, + { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, + { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, + { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, + { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, + { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, + { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, + { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, + { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, + { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, + { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, + { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, + { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, + { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, + { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, + { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, + { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, + { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, + { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, + { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, + { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, + { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, + { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, + { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 }, + { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 }, + { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, + { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, + { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, + { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, + { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/frame_f_b.g4a b/src/xvmc/shader/vld/frame_f_b.g4a new file mode 100644 index 00000000..cf7ef57c --- /dev/null +++ b/src/xvmc/shader/vld/frame_f_b.g4a @@ -0,0 +1,120 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +//Y, Forward +mov (1) g31.8<1>UD 0x0070007UD {align1}; +define(`input_surface', `4') +define(`mv1', `g82.16') +define(`mv2', `g82.18') +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +include(`motion_frame_y.g4i') +//Save Forward +mov (16) g108.0<1>UD g58.0<16,16,1>UD {align1 compr}; +mov (16) g110.0<1>UD g60.0<16,16,1>UD {align1 compr}; +mov (16) g112.0<1>UD g62.0<16,16,1>UD {align1 compr}; +mov (16) g114.0<1>UD g64.0<16,16,1>UD {align1 compr}; +mov (16) g116.0<1>UD g66.0<16,16,1>UD {align1 compr}; +mov (16) g118.0<1>UD g68.0<16,16,1>UD {align1 compr}; +mov (16) g120.0<1>UD g70.0<16,16,1>UD {align1 compr}; +mov (16) g122.0<1>UD g72.0<16,16,1>UD {align1 compr}; +//Y, Backward +define(`input_surface', `7') +define(`mv1', `g82.20') +define(`mv2', `g82.22') +asr (2) g31.14<1>W g82.20<2,2,1>W 1W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +include(`motion_frame_y.g4i') +//Average Forward and Backward +avg.sat (16) g58.0<1>UW g58.0<16,16,1>UW g108.0<16,16,1>UW {align1}; +avg.sat (16) g59.0<1>UW g59.0<16,16,1>UW g109.0<16,16,1>UW {align1}; +avg.sat (16) g60.0<1>UW g60.0<16,16,1>UW g110.0<16,16,1>UW {align1}; +avg.sat (16) g61.0<1>UW g61.0<16,16,1>UW g111.0<16,16,1>UW {align1}; +avg.sat (16) g62.0<1>UW g62.0<16,16,1>UW g112.0<16,16,1>UW {align1}; +avg.sat (16) g63.0<1>UW g63.0<16,16,1>UW g113.0<16,16,1>UW {align1}; +avg.sat (16) g64.0<1>UW g64.0<16,16,1>UW g114.0<16,16,1>UW {align1}; +avg.sat (16) g65.0<1>UW g65.0<16,16,1>UW g115.0<16,16,1>UW {align1}; +avg.sat (16) g66.0<1>UW g66.0<16,16,1>UW g116.0<16,16,1>UW {align1}; +avg.sat (16) g67.0<1>UW g67.0<16,16,1>UW g117.0<16,16,1>UW {align1}; +avg.sat (16) g68.0<1>UW g68.0<16,16,1>UW g118.0<16,16,1>UW {align1}; +avg.sat (16) g69.0<1>UW g69.0<16,16,1>UW g119.0<16,16,1>UW {align1}; +avg.sat (16) g70.0<1>UW g70.0<16,16,1>UW g120.0<16,16,1>UW {align1}; +avg.sat (16) g71.0<1>UW g71.0<16,16,1>UW g121.0<16,16,1>UW {align1}; +avg.sat (16) g72.0<1>UW g72.0<16,16,1>UW g122.0<16,16,1>UW {align1}; +avg.sat (16) g73.0<1>UW g73.0<16,16,1>UW g123.0<16,16,1>UW {align1}; + +//UV, Forward +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface1', `5') +define(`input_surface2', `6') +mov (1) g32.8<1>UD 0x007000fUD {align1}; +include(`motion_frame_uv.g4i') +//Save UV Forward +mov (16) g108.0<1>UB g74.0<16,16,2>UB {align1}; +mov (16) g108.16<1>UB g75.0<16,16,2>UB {align1}; +mov (16) g109.0<1>UB g76.0<16,16,2>UB {align1}; +mov (16) g109.16<1>UB g77.0<16,16,2>UB {align1}; +mov (16) g110.0<1>UB g78.0<16,16,2>UB {align1}; +mov (16) g110.16<1>UB g79.0<16,16,2>UB {align1}; +mov (16) g111.0<1>UB g80.0<16,16,2>UB {align1}; +mov (16) g111.16<1>UB g81.0<16,16,2>UB {align1}; +//UV, Backward +asr (2) g31.14<1>W g82.20<2,2,1>W 2W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface1', `8') +define(`input_surface2', `9') +include(`motion_frame_uv.g4i') +//Average Forward and Backward +avg.sat (16) g74.0<1>UW g74.0<16,16,1>UW g108.0<16,16,1>UB {align1}; +avg.sat (16) g75.0<1>UW g75.0<16,16,1>UW g108.16<16,16,1>UB {align1}; +avg.sat (16) g76.0<1>UW g76.0<16,16,1>UW g109.0<16,16,1>UB {align1}; +avg.sat (16) g77.0<1>UW g77.0<16,16,1>UW g109.16<16,16,1>UB {align1}; +avg.sat (16) g78.0<1>UW g78.0<16,16,1>UW g110.0<16,16,1>UB {align1}; +avg.sat (16) g79.0<1>UW g79.0<16,16,1>UW g110.16<16,16,1>UB {align1}; +avg.sat (16) g80.0<1>UW g80.0<16,16,1>UW g111.0<16,16,1>UB {align1}; +avg.sat (16) g81.0<1>UW g81.0<16,16,1>UW g111.16<16,16,1>UB {align1}; + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/frame_f_b.g4b b/src/xvmc/shader/vld/frame_f_b.g4b new file mode 100644 index 00000000..c0069682 --- /dev/null +++ b/src/xvmc/shader/vld/frame_f_b.g4b @@ -0,0 +1,463 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, + { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, + { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, + { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, + { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, + { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, + { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, + { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, + { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, + { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, + { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, + { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, + { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, + { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, + { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, + { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, + { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, + { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, + { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, + { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, + { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, + { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, + { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, + { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, + { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, + { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, + { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, + { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, + { 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 }, + { 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 }, + { 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 }, + { 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 }, + { 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 }, + { 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 }, + { 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 }, + { 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, + { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, + { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, + { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, + { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, + { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, + { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, + { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, + { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, + { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, + { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, + { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, + { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, + { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, + { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, + { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, + { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, + { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, + { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, + { 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, + { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, + { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, + { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, + { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, + { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, + { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, + { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, + { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, + { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, + { 0x80800042, 0x27402529, 0x00b10740, 0x00b10d80 }, + { 0x80800042, 0x27602529, 0x00b10760, 0x00b10da0 }, + { 0x80800042, 0x27802529, 0x00b10780, 0x00b10dc0 }, + { 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10de0 }, + { 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10e00 }, + { 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10e20 }, + { 0x80800042, 0x28002529, 0x00b10800, 0x00b10e40 }, + { 0x80800042, 0x28202529, 0x00b10820, 0x00b10e60 }, + { 0x80800042, 0x28402529, 0x00b10840, 0x00b10e80 }, + { 0x80800042, 0x28602529, 0x00b10860, 0x00b10ea0 }, + { 0x80800042, 0x28802529, 0x00b10880, 0x00b10ec0 }, + { 0x80800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 }, + { 0x80800042, 0x28c02529, 0x00b108c0, 0x00b10f00 }, + { 0x80800042, 0x28e02529, 0x00b108e0, 0x00b10f20 }, + { 0x80800042, 0x29002529, 0x00b10900, 0x00b10f40 }, + { 0x80800042, 0x29202529, 0x00b10920, 0x00b10f60 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 }, + { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 }, + { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, + { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, + { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, + { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, + { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, + { 0x00800001, 0x2d800231, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x2d900231, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x2da00231, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x2db00231, 0x00b209a0, 0x00000000 }, + { 0x00800001, 0x2dc00231, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x2dd00231, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x2de00231, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 }, + { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 }, + { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, + { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, + { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, + { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, + { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, + { 0x80800042, 0x29404529, 0x00b10940, 0x00b10d80 }, + { 0x80800042, 0x29604529, 0x00b10960, 0x00b10d90 }, + { 0x80800042, 0x29804529, 0x00b10980, 0x00b10da0 }, + { 0x80800042, 0x29a04529, 0x00b109a0, 0x00b10db0 }, + { 0x80800042, 0x29c04529, 0x00b109c0, 0x00b10dc0 }, + { 0x80800042, 0x29e04529, 0x00b109e0, 0x00b10dd0 }, + { 0x80800042, 0x2a004529, 0x00b10a00, 0x00b10de0 }, + { 0x80800042, 0x2a204529, 0x00b10a20, 0x00b10df0 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/frame_forward.g4a b/src/xvmc/shader/vld/frame_forward.g4a new file mode 100644 index 00000000..22f48041 --- /dev/null +++ b/src/xvmc/shader/vld/frame_forward.g4a @@ -0,0 +1,61 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; +mov (1) g126.8<1>UD ip {align1}; +mov (1) ip g21.0<1,1,1>UD {align1}; + +//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) +asr (2) g31.14<1>W g82.16<2,2,1>W 1W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface', `4') +define(`mv1', `g82.16') +define(`mv2', `g82.18') +include(`motion_frame_y.g4i') + +//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2) +shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1}; +asr (2) g31.14<1>W g82.16<2,2,1>W 2W {align1}; +add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1}; +define(`input_surface1', `5') +define(`input_surface2', `6') +include(`motion_frame_uv.g4i') + +include(`addidct.g4i') +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; diff --git a/src/xvmc/shader/vld/frame_forward.g4b b/src/xvmc/shader/vld/frame_forward.g4b new file mode 100644 index 00000000..fed4551a --- /dev/null +++ b/src/xvmc/shader/vld/frame_forward.g4b @@ -0,0 +1,263 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, + { 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, + { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, + { 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, + { 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, + { 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, + { 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, + { 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, + { 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, + { 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, + { 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, + { 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, + { 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, + { 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, + { 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, + { 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, + { 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, + { 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, + { 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, + { 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, + { 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, + { 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, + { 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, + { 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, + { 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, + { 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, + { 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, + { 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, + { 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, + { 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, + { 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, + { 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, + { 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, + { 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, + { 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, + { 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, + { 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, + { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, + { 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, + { 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, + { 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, + { 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, + { 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, + { 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, + { 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, + { 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, + { 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, + { 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, + { 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, + { 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, + { 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, + { 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, + { 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, + { 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, + { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, + { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, + { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, + { 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, + { 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, + { 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, + { 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, + { 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, + { 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, + { 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, + { 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, + { 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, + { 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, + { 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, + { 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, + { 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, + { 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, + { 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, + { 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, + { 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, + { 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, + { 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, + { 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, + { 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 }, + { 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 }, + { 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, + { 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, + { 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, + { 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, + { 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, + { 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, + { 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, + { 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, + { 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, + { 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, + { 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, + { 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, + { 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, + { 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, + { 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, + { 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, + { 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, + { 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, + { 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, + { 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, + { 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, + { 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, + { 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, + { 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, + { 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, + { 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, + { 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, + { 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, + { 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, + { 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, + { 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, + { 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, + { 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, + { 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, + { 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, + { 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, + { 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, + { 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, + { 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, + { 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, + { 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, + { 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, + { 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, + { 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, + { 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, + { 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, + { 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, + { 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, + { 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, + { 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, + { 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, + { 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, + { 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, diff --git a/src/xvmc/shader/vld/idct.g4i b/src/xvmc/shader/vld/idct.g4i new file mode 100644 index 00000000..c1747d18 --- /dev/null +++ b/src/xvmc/shader/vld/idct.g4i @@ -0,0 +1,147 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix in UB format + g3~g4:non intra IQ matrix in UB format + g5~g20:IDCT table + g56~g79:DCT data after IQ before idct + g83~g106: IDCT data after idct + g82: thread payload backup + g125: ip before idct +*/ +IDCT_START: +mov (1) g126.0<1>UD ip {align1}; +jmpi DO_IDCT; +add (16) g32<1>D g32<8,8,1>D ROW_ADD {compr}; +add (16) g34<1>D g34<8,8,1>D ROW_ADD {compr}; +add (16) g36<1>D g36<8,8,1>D ROW_ADD {compr}; +add (16) g38<1>D g38<8,8,1>D ROW_ADD {compr}; + +shr (16) g32<1>D g32<8,8,1>D ROW_SHIFT {compr}; +shr (16) g34<1>D g34<8,8,1>D ROW_SHIFT {compr}; +shr (16) g36<1>D g36<8,8,1>D ROW_SHIFT {compr}; +shr (16) g38<1>D g38<8,8,1>D ROW_SHIFT {compr}; + +mov (16) g110.0<1>W g32<16,8,2>W {align1}; +mov (16) g111.0<1>W g34<16,8,2>W {align1}; +mov (16) g112.0<1>W g36<16,8,2>W {align1}; +mov (16) g113.0<1>W g38<16,8,2>W {align1}; + +mov (1) g80.0<1>UD a0.0<1,1,1>UD {align1}; //save a0 +mov (1) a0.0<1>UD 0x0DB00DA0UD {align1}; //begin at g110.0, the output of idct_row.g4i +mov (1) g126.0<1>UD ip {align1}; +jmpi DO_IDCT; + +add (16) g32<1>D g32<8,8,1>D COL_ADD {compr}; +add (16) g34<1>D g34<8,8,1>D COL_ADD {compr}; +add (16) g36<1>D g36<8,8,1>D COL_ADD {compr}; +add (16) g38<1>D g38<8,8,1>D COL_ADD {compr}; + +shr (16) g32<1>D g32<8,8,1>D COL_SHIFT {compr}; +shr (16) g34<1>D g34<8,8,1>D COL_SHIFT {compr}; +shr (16) g36<1>D g36<8,8,1>D COL_SHIFT {compr}; +shr (16) g38<1>D g38<8,8,1>D COL_SHIFT {compr}; + +mov (1) a0.0<1>UD g80.0<1,1,1>UD {align1}; //restore a0 +add (1) ip g125.0<1,1,1>UD 0x20UD {align1}; //jump back + +DO_IDCT: +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; //increase the address +dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr}; +dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr}; +dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr}; +dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr}; +dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr}; +dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr}; +dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr}; +dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr}; +add (2) g32.0<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1}; +add (2) g33.0<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1}; +add (2) g34.0<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1}; +add (2) g35.0<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1}; +add (2) g36.0<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1}; +add (2) g37.0<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1}; +add (2) g38.0<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1}; +add (2) g39.0<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr}; +dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr}; +dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr}; +dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr}; +dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr}; +dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr}; +dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr}; +dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr}; +add (2) g32.8<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1}; +add (2) g33.8<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1}; +add (2) g34.8<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1}; +add (2) g35.8<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1}; +add (2) g36.8<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1}; +add (2) g37.8<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1}; +add (2) g38.8<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1}; +add (2) g39.8<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr}; +dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr}; +dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr}; +dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr}; +dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr}; +dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr}; +dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr}; +dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr}; +add (2) g32.16<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1}; +add (2) g33.16<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1}; +add (2) g34.16<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1}; +add (2) g35.16<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1}; +add (2) g36.16<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1}; +add (2) g37.16<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1}; +add (2) g38.16<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1}; +add (2) g39.16<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1}; + +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00200020UD {align1}; +dp4 (16) g40<1>D g[a0.0]<8,8,1>W g5<8,8,1>D {align1 compr}; +dp4 (16) g42<1>D g[a0.0]<8,8,1>W g7<8,8,1>D {align1 compr}; +dp4 (16) g44<1>D g[a0.0]<8,8,1>W g9<8,8,1>D {align1 compr}; +dp4 (16) g46<1>D g[a0.0]<8,8,1>W g11<8,8,1>D {align1 compr}; +dp4 (16) g48<1>D g[a0.0]<8,8,1>W g13<8,8,1>D {align1 compr}; +dp4 (16) g50<1>D g[a0.0]<8,8,1>W g15<8,8,1>D {align1 compr}; +dp4 (16) g52<1>D g[a0.0]<8,8,1>W g17<8,8,1>D {align1 compr}; +dp4 (16) g54<1>D g[a0.0]<8,8,1>W g19<8,8,1>D {align1 compr}; +add (2) g32.24<1>D g40.0<8,1,8>D g40.16<8,1,8>D {align1}; +add (2) g33.24<1>D g42.0<8,1,8>D g42.16<8,1,8>D {align1}; +add (2) g34.24<1>D g44.0<8,1,8>D g44.16<8,1,8>D {align1}; +add (2) g35.24<1>D g46.0<8,1,8>D g46.16<8,1,8>D {align1}; +add (2) g36.24<1>D g48.0<8,1,8>D g48.16<8,1,8>D {align1}; +add (2) g37.24<1>D g50.0<8,1,8>D g50.16<8,1,8>D {align1}; +add (2) g38.24<1>D g52.0<8,1,8>D g52.16<8,1,8>D {align1}; +add (2) g39.24<1>D g54.0<8,1,8>D g54.16<8,1,8>D {align1}; + +add (1) ip g126.0<1,1,1>UD 0x20UD {align1}; //jump back diff --git a/src/xvmc/shader/vld/ipicture.g4a b/src/xvmc/shader/vld/ipicture.g4a new file mode 100644 index 00000000..688cf940 --- /dev/null +++ b/src/xvmc/shader/vld/ipicture.g4a @@ -0,0 +1,209 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* + GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT tab + g31: read and write message descriptor + g32~g55:DCT data + g58~g81:reference data + g82: thread payload + g83~g106:IDCT data +*/ +mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1}; +mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1}; + +include(`iq_intra.g4i') + +//defined for idct +define(`ROW_SHIFT', `11UD') +define(`ROW_ADD', `0x400UD') +define(`COL_SHIFT', `20UD') +define(`COL_ADD', `0x80000UD') + +mov (1) a0.0<1>UD 0x06F006E0UD {align1}; //0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16) + +//Y0 +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (8) g83.0<1>W g32.0<16,8,2>W 128UW {align1}; +add (8) g84.0<1>W g33.0<16,8,2>W 128UW {align1}; +add (8) g85.0<1>W g34.0<16,8,2>W 128UW {align1}; +add (8) g86.0<1>W g35.0<16,8,2>W 128UW {align1}; +add (8) g87.0<1>W g36.0<16,8,2>W 128UW {align1}; +add (8) g88.0<1>W g37.0<16,8,2>W 128UW {align1}; +add (8) g89.0<1>W g38.0<16,8,2>W 128UW {align1}; +add (8) g90.0<1>W g39.0<16,8,2>W 128UW {align1}; + +//Y1 +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (8) g83.16<1>W g32.0<16,8,2>W 128UW {align1}; +add (8) g84.16<1>W g33.0<16,8,2>W 128UW {align1}; +add (8) g85.16<1>W g34.0<16,8,2>W 128UW {align1}; +add (8) g86.16<1>W g35.0<16,8,2>W 128UW {align1}; +add (8) g87.16<1>W g36.0<16,8,2>W 128UW {align1}; +add (8) g88.16<1>W g37.0<16,8,2>W 128UW {align1}; +add (8) g89.16<1>W g38.0<16,8,2>W 128UW {align1}; +add (8) g90.16<1>W g39.0<16,8,2>W 128UW {align1}; + +//Y2 +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (8) g91.0<1>W g32.0<16,8,2>W 128UW {align1}; +add (8) g92.0<1>W g33.0<16,8,2>W 128UW {align1}; +add (8) g93.0<1>W g34.0<16,8,2>W 128UW {align1}; +add (8) g94.0<1>W g35.0<16,8,2>W 128UW {align1}; +add (8) g95.0<1>W g36.0<16,8,2>W 128UW {align1}; +add (8) g96.0<1>W g37.0<16,8,2>W 128UW {align1}; +add (8) g97.0<1>W g38.0<16,8,2>W 128UW {align1}; +add (8) g98.0<1>W g39.0<16,8,2>W 128UW {align1}; + +//Y3 +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (8) g91.16<1>W g32.0<16,8,2>W 128UW {align1}; +add (8) g92.16<1>W g33.0<16,8,2>W 128UW {align1}; +add (8) g93.16<1>W g34.0<16,8,2>W 128UW {align1}; +add (8) g94.16<1>W g35.0<16,8,2>W 128UW {align1}; +add (8) g95.16<1>W g36.0<16,8,2>W 128UW {align1}; +add (8) g96.16<1>W g37.0<16,8,2>W 128UW {align1}; +add (8) g97.16<1>W g38.0<16,8,2>W 128UW {align1}; +add (8) g98.16<1>W g39.0<16,8,2>W 128UW {align1}; + +//U +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (16) g99.0<1>W g32.0<16,8,2>W 128UW {align1}; +add (16) g100.0<1>W g34.0<16,8,2>W 128UW {align1}; +add (16) g101.0<1>W g36.0<16,8,2>W 128UW {align1}; +add (16) g102.0<1>W g38.0<16,8,2>W 128UW {align1}; + +//V +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +add (16) g103.0<1>W g32.0<16,8,2>W 128UW {align1}; +add (16) g104.0<1>W g34.0<16,8,2>W 128UW {align1}; +add (16) g105.0<1>W g36.0<16,8,2>W 128UW {align1}; +add (16) g106.0<1>W g38.0<16,8,2>W 128UW {align1}; + +/******************* MC ************************/ +mov (1) g31.8<1>UD 0x00F000FUD {align1}; +mov.sat (16) g83.0<2>UB g83.0<16,16,1>W {align1}; +mov.sat (16) g84.0<2>UB g84.0<16,16,1>W {align1}; +mov.sat (16) g85.0<2>UB g85.0<16,16,1>W {align1}; +mov.sat (16) g86.0<2>UB g86.0<16,16,1>W {align1}; +mov.sat (16) g87.0<2>UB g87.0<16,16,1>W {align1}; +mov.sat (16) g88.0<2>UB g88.0<16,16,1>W {align1}; +mov.sat (16) g89.0<2>UB g89.0<16,16,1>W {align1}; +mov.sat (16) g90.0<2>UB g90.0<16,16,1>W {align1}; +mov.sat (16) g91.0<2>UB g91.0<16,16,1>W {align1}; +mov.sat (16) g92.0<2>UB g92.0<16,16,1>W {align1}; +mov.sat (16) g93.0<2>UB g93.0<16,16,1>W {align1}; +mov.sat (16) g94.0<2>UB g94.0<16,16,1>W {align1}; +mov.sat (16) g95.0<2>UB g95.0<16,16,1>W {align1}; +mov.sat (16) g96.0<2>UB g96.0<16,16,1>W {align1}; +mov.sat (16) g97.0<2>UB g97.0<16,16,1>W {align1}; +mov.sat (16) g98.0<2>UB g98.0<16,16,1>W {align1}; + +and.nz (1) null g82.2<1,1,1>UW 0x20UW{align1}; +(f0) jmpi field_dct; + +mov (16) m1.0<1>UB g83.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g84.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g85.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g86.0<16,16,2>UB {align1}; +mov (16) m3.0<1>UB g87.0<16,16,2>UB {align1}; +mov (16) m3.16<1>UB g88.0<16,16,2>UB {align1}; +mov (16) m4.0<1>UB g89.0<16,16,2>UB {align1}; +mov (16) m4.16<1>UB g90.0<16,16,2>UB {align1}; +mov (16) m5.0<1>UB g91.0<16,16,2>UB {align1}; +mov (16) m5.16<1>UB g92.0<16,16,2>UB {align1}; +mov (16) m6.0<1>UB g93.0<16,16,2>UB {align1}; +mov (16) m6.16<1>UB g94.0<16,16,2>UB {align1}; +mov (16) m7.0<1>UB g95.0<16,16,2>UB {align1}; +mov (16) m7.16<1>UB g96.0<16,16,2>UB {align1}; +mov (16) m8.0<1>UB g97.0<16,16,2>UB {align1}; +mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1}; +jmpi write_back; + +field_dct: +mov (16) m1.0<1>UB g83.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g91.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g84.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g92.0<16,16,2>UB {align1}; +mov (16) m3.0<1>UB g85.0<16,16,2>UB {align1}; +mov (16) m3.16<1>UB g93.0<16,16,2>UB {align1}; +mov (16) m4.0<1>UB g86.0<16,16,2>UB {align1}; +mov (16) m4.16<1>UB g94.0<16,16,2>UB {align1}; +mov (16) m5.0<1>UB g87.0<16,16,2>UB {align1}; +mov (16) m5.16<1>UB g95.0<16,16,2>UB {align1}; +mov (16) m6.0<1>UB g88.0<16,16,2>UB {align1}; +mov (16) m6.16<1>UB g96.0<16,16,2>UB {align1}; +mov (16) m7.0<1>UB g89.0<16,16,2>UB {align1}; +mov (16) m7.16<1>UB g97.0<16,16,2>UB {align1}; +mov (16) m8.0<1>UB g90.0<16,16,2>UB {align1}; +mov (16) m8.16<1>UB g98.0<16,16,2>UB {align1}; + +write_back: +send (16) 0 acc0<1>UW g31<8,8,1>UW write(0,0,2,0) mlen 9 rlen 0 {align1}; + +//U +mov (1) g31.8<1>UD 0x0070007UD { align1 }; +shr (2) g31.0<1>UD g82.12<2,2,1>UW 1D {align1}; +mov.sat (16) g99.0<2>UB g99.0<16,16,1>W {align1}; +mov.sat (16) g100.0<2>UB g100.0<16,16,1>W {align1}; +mov.sat (16) g101.0<2>UB g101.0<16,16,1>W {align1}; +mov.sat (16) g102.0<2>UB g102.0<16,16,1>W {align1}; + +mov (16) m1.0<1>UB g99.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g100.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g101.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g102.0<16,16,2>UB {align1}; +send (16) 0 acc0<1>UW g31<8,8,1>UW write(1, 0, 2, 0) mlen 3 rlen 0 { align1 }; + +//V +mov.sat (16) g103.0<2>UB g103.0<16,16,1>W {align1}; +mov.sat (16) g104.0<2>UB g104.0<16,16,1>W {align1}; +mov.sat (16) g105.0<2>UB g105.0<16,16,1>W {align1}; +mov.sat (16) g106.0<2>UB g106.0<16,16,1>W {align1}; + +mov (16) m1.0<1>UB g103.0<16,16,2>UB {align1}; +mov (16) m1.16<1>UB g104.0<16,16,2>UB {align1}; +mov (16) m2.0<1>UB g105.0<16,16,2>UB {align1}; +mov (16) m2.16<1>UB g106.0<16,16,2>UB {align1}; +send (16) 0 acc0<1>UW g31<8,8,1>UW write(2, 0, 2, 0) mlen 3 rlen 0 { align1 }; + +OUT: +send (16) 0 acc0<1>UW g0<8,8,1>UW + thread_spawner(0, 0, 0) mlen 1 rlen 0 { align1 EOT}; + +include(`do_iq_intra.g4i') +include(`idct.g4i') diff --git a/src/xvmc/shader/vld/ipicture.g4b b/src/xvmc/shader/vld/ipicture.g4b new file mode 100644 index 00000000..4c1c8c44 --- /dev/null +++ b/src/xvmc/shader/vld/ipicture.g4b @@ -0,0 +1,313 @@ + { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, + { 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, + { 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, + { 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 }, + { 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d }, + { 0x00000001, 0x2da60169, 0x00000000, 0x00080008 }, + { 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000012 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000005 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000001 }, + { 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, + { 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, + { 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 }, + { 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 }, + { 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 }, + { 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 }, + { 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000009b }, + { 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000095 }, + { 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, + { 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000089 }, + { 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000083 }, + { 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, + { 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 }, + { 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 }, + { 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 }, + { 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 }, + { 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 }, + { 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 }, + { 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 }, + { 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000085 }, + { 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 }, + { 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 }, + { 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 }, + { 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 }, + { 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 }, + { 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 }, + { 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 }, + { 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000007b }, + { 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 }, + { 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 }, + { 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 }, + { 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 }, + { 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 }, + { 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 }, + { 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 }, + { 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000071 }, + { 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 }, + { 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 }, + { 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 }, + { 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 }, + { 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 }, + { 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 }, + { 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 }, + { 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000067 }, + { 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 }, + { 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 }, + { 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 }, + { 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 }, + { 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 }, + { 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 }, + { 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 }, + { 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, + { 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 }, + { 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 }, + { 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 }, + { 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 }, + { 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 }, + { 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 }, + { 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 }, + { 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 }, + { 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 }, + { 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 }, + { 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 }, + { 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 }, + { 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 }, + { 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 }, + { 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 }, + { 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, + { 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 }, + { 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 }, + { 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 }, + { 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 }, + { 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 }, + { 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 }, + { 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 }, + { 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 }, + { 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 }, + { 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 }, + { 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 }, + { 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 }, + { 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, + { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, + { 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 }, + { 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 }, + { 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 }, + { 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 }, + { 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, + { 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 }, + { 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 }, + { 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 }, + { 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 }, + { 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 }, + { 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 }, + { 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 }, + { 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 }, + { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, + { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 }, + { 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, + { 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, + { 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, + { 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, + { 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, + { 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, + { 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, + { 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, + { 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, + { 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, + { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, + { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a }, + { 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, + { 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, + { 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, + { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, + { 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, + { 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, + { 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, + { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, + { 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, + { 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, + { 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, + { 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, + { 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, + { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, + { 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, + { 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, + { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, + { 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, + { 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, + { 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, + { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, + { 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, + { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, diff --git a/src/xvmc/shader/vld/iq_intra.g4i b/src/xvmc/shader/vld/iq_intra.g4i new file mode 100644 index 00000000..b0143613 --- /dev/null +++ b/src/xvmc/shader/vld/iq_intra.g4i @@ -0,0 +1,131 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix in UB format + g3~g4:non intra IQ matrix in UB format + g5~g20:IDCT table + g32~g55:DCT data before IQ + g56~g79:DCT data after IQ + g82: thread payload backup + g109: g109.0:q_scale_code, g109.4:intra_dc_mult, + g110: q_scale_code + g111: intra DC coefficient + g112~g115: intra IQ matrix in UW format (in order to use instruction compress), copys from g1~g2 + g125: ip before jump +*/ +and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1}; //q_scale_code + +and (1) g109.4<1>UW g82.8<1,1,1>UW 0x6000UW {align1}; //intra_dc_presion +shr (1) g109.4<1>UW g109.4<1,1,1>UW 13UW {align1}; +mov (1) g109.6<1>UW 0x8UW {align1}; +shr (1) g109.4<1>UW g109.6<1,1,1>UW g109.4<1,1,1>UW {align1}; //intra_dc_mult + +and.z (1) null g82.8<1,1,1>UW 0x20UW {align1}; //if(q_scale_type==0) q_scale=q_scale_code*2; +(f0) jmpi Q_SCALE_TYPE_0; + +cmp.l (1) null g109.0<1,1,1>UW 9UW {align1}; //if(q_scale_type!=0) calculate q_scale +(f0) jmpi DO_IQ; +cmp.l (1) null g109.0<1,1,1>UW 17UW {align1}; +(f0) jmpi RANG_9_16; +cmp.l (1) null g109.0<1,1,1>UW 25UW {align1}; +(f0) jmpi RANG_17_24; + +RANG_25_31: +add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1}; +jmpi DO_IQ; + +RANG_9_16: +add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1}; +jmpi DO_IQ; + +RANG_17_24: +add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1}; +jmpi DO_IQ; + +Q_SCALE_TYPE_0: +shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1}; + +DO_IQ: +mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1}; + +mov (16) g112.0<1>UW g1.0<16,16,1>UB {align1}; +mov (16) g113.0<1>UW g1.16<16,16,1>UB {align1}; +mov (16) g114.0<1>UW g2.0<16,16,1>UB {align1}; +mov (16) g115.0<1>UW g2.16<16,16,1>UB {align1}; + +mov (1) a0.0<1>UD 0x03F003E0UD {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g56.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g57.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g58.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g59.0<1>W g122.0<16,8,2>W {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g60.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g61.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g62.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g63.0<1>W g122.0<16,8,2>W {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g64.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g65.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g66.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g67.0<1>W g122.0<16,8,2>W {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g68.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g69.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g70.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g71.0<1>W g122.0<16,8,2>W {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g72.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g73.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g74.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g75.0<1>W g122.0<16,8,2>W {align1}; + +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_INTRA; +mov (16) g76.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g77.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g78.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g79.0<1>W g122.0<16,8,2>W {align1}; + diff --git a/src/xvmc/shader/vld/iq_non_intra.g4i b/src/xvmc/shader/vld/iq_non_intra.g4i new file mode 100644 index 00000000..03c09aa0 --- /dev/null +++ b/src/xvmc/shader/vld/iq_non_intra.g4i @@ -0,0 +1,150 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix in UB format + g3~g4:non intra IQ matrix in UB format + g5~g20:IDCT table + g32~g55:DCT data before IQ + g56~g79:DCT data after IQ + g82: thread payload backup + g109: q_scale_code + g110: q_scale_code + g112~g115: non intra IQ matrix in UW format (in order to use instruction compress), copys from g3~g4 + g125: ip before jump +*/ +and (1) g109.0<1>UW g82.8<1,1,1>UW 0x1fUW {align1}; //q_scale_code + +and.z (1) null g82.8<1,1,1>UW 0x20UW {align1}; //if(q_scale_type==0) q_scale=q_scale_code*2; +(f0) jmpi Q_SCALE_TYPE_0; + +cmp.l (1) null g109.0<1,1,1>UW 9UW {align1}; //if(q_scale_type!=0) calculate q_scale +(f0) jmpi DO_IQ; +cmp.l (1) null g109.0<1,1,1>UW 17UW {align1}; +(f0) jmpi RANG_9_16; +cmp.l (1) null g109.0<1,1,1>UW 25UW {align1}; +(f0) jmpi RANG_17_24; + +RANG_25_31: +add (1) g109.0<1>UW g109.0<1,1,1>UW -25W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 3UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 64UW {align1}; +jmpi DO_IQ; + +RANG_9_16: +add (1) g109.0<1>UW g109.0<1,1,1>UW -9W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 10UW {align1}; +jmpi DO_IQ; + +RANG_17_24: +add (1) g109.0<1>UW g109.0<1,1,1>UW -17W {align1}; +shl (1) g109.0<1>UW g109.0<1,1,1>UW 2UW {align1}; +add (1) g109.0<1>UW g109.0<1,1,1>UW 28UW {align1}; +jmpi DO_IQ; + +Q_SCALE_TYPE_0: +shl (1) g109.0<1>UW g109.0<1,1,1>UW 1UD {align1}; + +DO_IQ: +mov (1) g110.0<1>UW g109.0<1,1,1>UW {align1}; + +mov (16) g112.0<1>UW g3.0<16,16,1>UB {align1}; +mov (16) g113.0<1>UW g3.16<16,16,1>UB {align1}; +mov (16) g114.0<1>UW g4.0<16,16,1>UB {align1}; +mov (16) g115.0<1>UW g4.16<16,16,1>UB {align1}; + +mov (1) a0.0<1>UD 0x03F003E0UD {align1}; + +//Y0 +iq_non_intra_y0: +and.z (1) null g82.8<1,1,1>UW 0x800UW {align1}; +(f0) jmpi iq_non_intra_y1; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g56.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g57.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g58.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g59.0<1>W g122.0<16,8,2>W {align1}; + +//Y1 +iq_non_intra_y1: +and.z (1) null g82.8<1,1,1>UW 0x400UW {align1}; +(f0) jmpi iq_non_intra_y2; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g60.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g61.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g62.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g63.0<1>W g122.0<16,8,2>W {align1}; + +//Y2 +iq_non_intra_y2: +and.z (1) null g82.8<1,1,1>UW 0x200UW {align1}; +(f0) jmpi iq_non_intra_y3; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g64.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g65.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g66.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g67.0<1>W g122.0<16,8,2>W {align1}; + +//Y3 +iq_non_intra_y3: +and.z (1) null g82.8<1,1,1>UW 0x100UW {align1}; +(f0) jmpi iq_non_intra_u; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g68.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g69.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g70.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g71.0<1>W g122.0<16,8,2>W {align1}; + +//U +iq_non_intra_u: +and.z (1) null g82.8<1,1,1>UW 0x80UW {align1}; +(f0) jmpi iq_non_intra_v; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g72.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g73.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g74.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g75.0<1>W g122.0<16,8,2>W {align1}; + +//V +iq_non_intra_v: +and.z (1) null g82.8<1,1,1>UW 0x40UW {align1}; +(f0) jmpi iq_non_intra_end; +mov (1) g125.0<1>UD ip {align1}; +jmpi DO_IQ_NON_INTRA; +mov (16) g76.0<1>W g116.0<16,8,2>W {align1}; +mov (16) g77.0<1>W g118.0<16,8,2>W {align1}; +mov (16) g78.0<1>W g120.0<16,8,2>W {align1}; +mov (16) g79.0<1>W g122.0<16,8,2>W {align1}; + +iq_non_intra_end: diff --git a/src/xvmc/shader/vld/lib.g4a b/src/xvmc/shader/vld/lib.g4a new file mode 100644 index 00000000..567caafe --- /dev/null +++ b/src/xvmc/shader/vld/lib.g4a @@ -0,0 +1,190 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix in UB format + g3~g4:non intra IQ matrix in UB format + g5~g20:IDCT table + g32~g55:DCT data before IQ + g56~g79:DCT data after IQ + g83~g106: IDCT data after idct + g82: thread payload backup + g125: ip before jump +*/ +include(`iq_non_intra.g4i') + +define(`ROW_SHIFT', `11UD') //define for idct +define(`ROW_ADD', `0x400UD') +define(`COL_SHIFT', `20UD') +define(`COL_ADD', `0x80000UD') + +mov (1) a0.0<1>UD 0x06F006E0UD {align1};//0x06F006E0UD+0x00200020UD=0x07100700UD (g56.0 and g56.16,the start of DCT data) + +//Y0 +and.nz (1) null g82.8<1,1,1>UW 0x800UW {align1}; +(f0) jmpi do_idct_y0; + +mov (8) g83.0<1>UW 0UW {align1}; +mov (8) g84.0<1>UW 0UW {align1}; +mov (8) g85.0<1>UW 0UW {align1}; +mov (8) g86.0<1>UW 0UW {align1}; +mov (8) g87.0<1>UW 0UW {align1}; +mov (8) g88.0<1>UW 0UW {align1}; +mov (8) g89.0<1>UW 0UW {align1}; +mov (8) g90.0<1>UW 0UW {align1}; +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1}; +jmpi block_y1; +do_idct_y0: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (8) g83.0<1>W g32.0<16,8,2>W {align1}; +mov (8) g84.0<1>W g33.0<16,8,2>W {align1}; +mov (8) g85.0<1>W g34.0<16,8,2>W {align1}; +mov (8) g86.0<1>W g35.0<16,8,2>W {align1}; +mov (8) g87.0<1>W g36.0<16,8,2>W {align1}; +mov (8) g88.0<1>W g37.0<16,8,2>W {align1}; +mov (8) g89.0<1>W g38.0<16,8,2>W {align1}; +mov (8) g90.0<1>W g39.0<16,8,2>W {align1}; + +//Y1 +block_y1: +and.nz (1) null g82.8<1,1,1>UW 0x400UW {align1}; +(f0) jmpi do_idct_y1; +mov (8) g83.16<1>UW 0UW {align1}; +mov (8) g84.16<1>UW 0UW {align1}; +mov (8) g85.16<1>UW 0UW {align1}; +mov (8) g86.16<1>UW 0UW {align1}; +mov (8) g87.16<1>UW 0UW {align1}; +mov (8) g88.16<1>UW 0UW {align1}; +mov (8) g89.16<1>UW 0UW {align1}; +mov (8) g90.16<1>UW 0UW {align1}; +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1}; +jmpi block_y2; +do_idct_y1: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (8) g83.16<1>W g32.0<16,8,2>W {align1}; +mov (8) g84.16<1>W g33.0<16,8,2>W {align1}; +mov (8) g85.16<1>W g34.0<16,8,2>W {align1}; +mov (8) g86.16<1>W g35.0<16,8,2>W {align1}; +mov (8) g87.16<1>W g36.0<16,8,2>W {align1}; +mov (8) g88.16<1>W g37.0<16,8,2>W {align1}; +mov (8) g89.16<1>W g38.0<16,8,2>W {align1}; +mov (8) g90.16<1>W g39.0<16,8,2>W {align1}; + +//Y2 +block_y2: +and.nz (1) null g82.8<1,1,1>UW 0x200UW {align1}; +(f0) jmpi do_idct_y2; +mov (8) g91.0<1>UW 0UW {align1}; +mov (8) g92.0<1>UW 0UW {align1}; +mov (8) g93.0<1>UW 0UW {align1}; +mov (8) g94.0<1>UW 0UW {align1}; +mov (8) g95.0<1>UW 0UW {align1}; +mov (8) g96.0<1>UW 0UW {align1}; +mov (8) g97.0<1>UW 0UW {align1}; +mov (8) g98.0<1>UW 0UW {align1}; +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1}; +jmpi block_y3; +do_idct_y2: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (8) g91.0<1>W g32.0<16,8,2>W {align1}; +mov (8) g92.0<1>W g33.0<16,8,2>W {align1}; +mov (8) g93.0<1>W g34.0<16,8,2>W {align1}; +mov (8) g94.0<1>W g35.0<16,8,2>W {align1}; +mov (8) g95.0<1>W g36.0<16,8,2>W {align1}; +mov (8) g96.0<1>W g37.0<16,8,2>W {align1}; +mov (8) g97.0<1>W g38.0<16,8,2>W {align1}; +mov (8) g98.0<1>W g39.0<16,8,2>W {align1}; + +//Y3 +block_y3: +and.nz (1) null g82.8<1,1,1>UW 0x100UW {align1}; +(f0) jmpi do_idct_y3; +mov (8) g91.16<1>UW 0UW {align1}; +mov (8) g92.16<1>UW 0UW {align1}; +mov (8) g93.16<1>UW 0UW {align1}; +mov (8) g94.16<1>UW 0UW {align1}; +mov (8) g95.16<1>UW 0UW {align1}; +mov (8) g96.16<1>UW 0UW {align1}; +mov (8) g97.16<1>UW 0UW {align1}; +mov (8) g98.16<1>UW 0UW {align1}; +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1}; +jmpi block_u; +do_idct_y3: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (8) g91.16<1>W g32.0<16,8,2>W {align1}; +mov (8) g92.16<1>W g33.0<16,8,2>W {align1}; +mov (8) g93.16<1>W g34.0<16,8,2>W {align1}; +mov (8) g94.16<1>W g35.0<16,8,2>W {align1}; +mov (8) g95.16<1>W g36.0<16,8,2>W {align1}; +mov (8) g96.16<1>W g37.0<16,8,2>W {align1}; +mov (8) g97.16<1>W g38.0<16,8,2>W {align1}; +mov (8) g98.16<1>W g39.0<16,8,2>W {align1}; + +//U +block_u: +and.nz (1) null g82.8<1,1,1>UW 0x80UW {align1}; +(f0) jmpi do_idct_u; +mov (16) g99.0<1>UW 0UW {align1}; +mov (16) g100.0<1>UW 0UW {align1}; +mov (16) g101.0<1>UW 0UW {align1}; +mov (16) g102.0<1>UW 0UW {align1}; +add (1) a0.0<1>UD a0.0<1,1,1>UD 0x00800080UD {align1}; +jmpi block_v; +do_idct_u: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (16) g99.0<1>W g32.0<16,8,2>W {align1}; +mov (16) g100.0<1>W g34.0<16,8,2>W {align1}; +mov (16) g101.0<1>W g36.0<16,8,2>W {align1}; +mov (16) g102.0<1>W g38.0<16,8,2>W {align1}; + +//V +block_v: +and.nz (1) null g82.8<1,1,1>UW 0x40UW {align1}; +(f0) jmpi do_idct_v; +mov (16) g103.0<1>UW 0UW {align1}; +mov (16) g104.0<1>UW 0UW {align1}; +mov (16) g105.0<1>UW 0UW {align1}; +mov (16) g106.0<1>UW 0UW {align1}; +jmpi block_end; +do_idct_v: +mov (1) g125.0<1>UD ip {align1}; +jmpi IDCT_START; +mov (16) g103.0<1>W g32.0<16,8,2>W {align1}; +mov (16) g104.0<1>W g34.0<16,8,2>W {align1}; +mov (16) g105.0<1>W g36.0<16,8,2>W {align1}; +mov (16) g106.0<1>W g38.0<16,8,2>W {align1}; +block_end: + +add (1) ip g126.8<1,1,1>UD 0x20UD {align1}; //jump back +include(`do_iq_non_intra.g4i') +include(`idct.g4i') diff --git a/src/xvmc/shader/vld/lib.g4b b/src/xvmc/shader/vld/lib.g4b new file mode 100644 index 00000000..262bff90 --- /dev/null +++ b/src/xvmc/shader/vld/lib.g4b @@ -0,0 +1,307 @@ + { 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000012 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000009 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000005 }, + { 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, + { 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, + { 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000001 }, + { 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, + { 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, + { 0x00800001, 0x2e000229, 0x00b10060, 0x00000000 }, + { 0x00800001, 0x2e200229, 0x00b10070, 0x00000000 }, + { 0x00800001, 0x2e400229, 0x00b10080, 0x00000000 }, + { 0x00800001, 0x2e600229, 0x00b10090, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x08000800 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 }, + { 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x04000400 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000099 }, + { 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x02000200 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000091 }, + { 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x01000100 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000089 }, + { 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x00800080 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000081 }, + { 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, + { 0x01000005, 0x20002d3c, 0x00210a48, 0x00400040 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000079 }, + { 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, + { 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, + { 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, + { 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x08000800 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00600001, 0x2a600169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2a800169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2aa00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2ac00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2ae00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b000169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b200169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b400169, 0x00000000, 0x00000000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000077 }, + { 0x00600001, 0x2a6001ad, 0x00ae0400, 0x00000000 }, + { 0x00600001, 0x2a8001ad, 0x00ae0420, 0x00000000 }, + { 0x00600001, 0x2aa001ad, 0x00ae0440, 0x00000000 }, + { 0x00600001, 0x2ac001ad, 0x00ae0460, 0x00000000 }, + { 0x00600001, 0x2ae001ad, 0x00ae0480, 0x00000000 }, + { 0x00600001, 0x2b0001ad, 0x00ae04a0, 0x00000000 }, + { 0x00600001, 0x2b2001ad, 0x00ae04c0, 0x00000000 }, + { 0x00600001, 0x2b4001ad, 0x00ae04e0, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x04000400 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00600001, 0x2a700169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2a900169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2ab00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2ad00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2af00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b100169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b300169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b500169, 0x00000000, 0x00000000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000061 }, + { 0x00600001, 0x2a7001ad, 0x00ae0400, 0x00000000 }, + { 0x00600001, 0x2a9001ad, 0x00ae0420, 0x00000000 }, + { 0x00600001, 0x2ab001ad, 0x00ae0440, 0x00000000 }, + { 0x00600001, 0x2ad001ad, 0x00ae0460, 0x00000000 }, + { 0x00600001, 0x2af001ad, 0x00ae0480, 0x00000000 }, + { 0x00600001, 0x2b1001ad, 0x00ae04a0, 0x00000000 }, + { 0x00600001, 0x2b3001ad, 0x00ae04c0, 0x00000000 }, + { 0x00600001, 0x2b5001ad, 0x00ae04e0, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x02000200 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00600001, 0x2b600169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b800169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2ba00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2bc00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2be00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c000169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c200169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c400169, 0x00000000, 0x00000000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000004b }, + { 0x00600001, 0x2b6001ad, 0x00ae0400, 0x00000000 }, + { 0x00600001, 0x2b8001ad, 0x00ae0420, 0x00000000 }, + { 0x00600001, 0x2ba001ad, 0x00ae0440, 0x00000000 }, + { 0x00600001, 0x2bc001ad, 0x00ae0460, 0x00000000 }, + { 0x00600001, 0x2be001ad, 0x00ae0480, 0x00000000 }, + { 0x00600001, 0x2c0001ad, 0x00ae04a0, 0x00000000 }, + { 0x00600001, 0x2c2001ad, 0x00ae04c0, 0x00000000 }, + { 0x00600001, 0x2c4001ad, 0x00ae04e0, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x01000100 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00600001, 0x2b700169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2b900169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2bb00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2bd00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2bf00169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c100169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c300169, 0x00000000, 0x00000000 }, + { 0x00600001, 0x2c500169, 0x00000000, 0x00000000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000035 }, + { 0x00600001, 0x2b7001ad, 0x00ae0400, 0x00000000 }, + { 0x00600001, 0x2b9001ad, 0x00ae0420, 0x00000000 }, + { 0x00600001, 0x2bb001ad, 0x00ae0440, 0x00000000 }, + { 0x00600001, 0x2bd001ad, 0x00ae0460, 0x00000000 }, + { 0x00600001, 0x2bf001ad, 0x00ae0480, 0x00000000 }, + { 0x00600001, 0x2c1001ad, 0x00ae04a0, 0x00000000 }, + { 0x00600001, 0x2c3001ad, 0x00ae04c0, 0x00000000 }, + { 0x00600001, 0x2c5001ad, 0x00ae04e0, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x00800080 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00800001, 0x2c600169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2c800169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2ca00169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2cc00169, 0x00000000, 0x00000000 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000023 }, + { 0x00800001, 0x2c6001ad, 0x00ae0400, 0x00000000 }, + { 0x00800001, 0x2c8001ad, 0x00ae0440, 0x00000000 }, + { 0x00800001, 0x2ca001ad, 0x00ae0480, 0x00000000 }, + { 0x00800001, 0x2cc001ad, 0x00ae04c0, 0x00000000 }, + { 0x02000005, 0x20002d3c, 0x00210a48, 0x00400040 }, + { 0x00010020, 0x34001c00, 0x00001400, 0x00000005 }, + { 0x00800001, 0x2ce00169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2d000169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2d200169, 0x00000000, 0x00000000 }, + { 0x00800001, 0x2d400169, 0x00000000, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, + { 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, + { 0x00800001, 0x2ce001ad, 0x00ae0400, 0x00000000 }, + { 0x00800001, 0x2d0001ad, 0x00ae0440, 0x00000000 }, + { 0x00800001, 0x2d2001ad, 0x00ae0480, 0x00000000 }, + { 0x00800001, 0x2d4001ad, 0x00ae04c0, 0x00000000 }, + { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, + { 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, + { 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, + { 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, + { 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, + { 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, + { 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, + { 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, + { 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, + { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, + { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000001a }, + { 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, + { 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, + { 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, + { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, + { 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, + { 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, + { 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, + { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, + { 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, + { 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, + { 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, + { 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, + { 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, + { 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, + { 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, + { 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, + { 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, + { 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, + { 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, + { 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, + { 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, + { 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, + { 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, + { 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, + { 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, + { 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, + { 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, + { 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, + { 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, + { 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, + { 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, + { 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, + { 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, + { 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, + { 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, + { 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, + { 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, + { 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, + { 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, + { 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, + { 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, + { 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, + { 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, diff --git a/src/xvmc/shader/vld/motion_field_uv.g4i b/src/xvmc/shader/vld/motion_field_uv.g4i new file mode 100644 index 00000000..3329569b --- /dev/null +++ b/src/xvmc/shader/vld/motion_field_uv.g4i @@ -0,0 +1,29 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Zhang Hua jun <huajun.zhang@intel.com> + * Xing Dong sheng <dongsheng.xing@intel.com> + * + */ +include(`read_field_x0y0_uv.g4i') diff --git a/src/xvmc/shader/vld/motion_field_y.g4i b/src/xvmc/shader/vld/motion_field_y.g4i new file mode 100644 index 00000000..47d2ec40 --- /dev/null +++ b/src/xvmc/shader/vld/motion_field_y.g4i @@ -0,0 +1,45 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Zhang Hua jun <huajun.zhang@intel.com> + * Xing Dong sheng <dongsheng.xing@intel.com> + * + */ + and.z (1) null mv1<1,1,1>W 1UW {align1}; + (f0) jmpi L1; + and.z (1) null mv2<1,1,1>W 1UW {align1}; + (f0) jmpi L2; + include(`read_field_x1y1_y.g4i') + jmpi L5; +L2: + include(`read_field_x1y0_y.g4i') + jmpi L5; +L1: + and.z (1) null mv2<1,1,1>W 1UW {align1}; + (f0) jmpi L4; + include(`read_field_x0y1_y.g4i') + jmpi L5; +L4: + include(`read_field_x0y0_y.g4i') +L5: diff --git a/src/xvmc/shader/vld/motion_frame_uv.g4i b/src/xvmc/shader/vld/motion_frame_uv.g4i new file mode 100644 index 00000000..3d393132 --- /dev/null +++ b/src/xvmc/shader/vld/motion_frame_uv.g4i @@ -0,0 +1,29 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Zhang Hua jun <huajun.zhang@intel.com> + * Xing Dong sheng <dongsheng.xing@intel.com> + */ + + include(`read_frame_x0y0_uv.g4i') diff --git a/src/xvmc/shader/vld/motion_frame_y.g4i b/src/xvmc/shader/vld/motion_frame_y.g4i new file mode 100644 index 00000000..88c80851 --- /dev/null +++ b/src/xvmc/shader/vld/motion_frame_y.g4i @@ -0,0 +1,57 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + */ + +/* if (motion_vect.x & 1) { + * if (motion_vect.y & 1) + * half_pixel in x and y; + * else + * half_pixel in x; + * } else { + * if (motion_vect.y & 1) + * half_pixel y; + * else + * full_pixel_read; + * } + */ + + and.z (1) null mv1<1,1,1>UW 1UD {align1}; + (f0) jmpi LL1; + and.z (1) null mv2<1,1,1>UW 1UD {align1}; + (f0) jmpi LL2; + include(`read_frame_x1y1_y.g4i') + jmpi LL5; +LL2: + include(`read_frame_x1y0_y.g4i') + jmpi LL5; +LL1: + and.z (1) null mv2<1,1,1>UW 1UD {align1}; + (f0) jmpi LL4; + include(`read_frame_x0y1_y.g4i') + jmpi LL5; +LL4: + include(`read_frame_x0y0_y.g4i') +LL5: + diff --git a/src/xvmc/shader/vld/read_field_x0y0_uv.g4i b/src/xvmc/shader/vld/read_field_x0y0_uv.g4i new file mode 100644 index 00000000..36e589a1 --- /dev/null +++ b/src/xvmc/shader/vld/read_field_x0y0_uv.g4i @@ -0,0 +1,50 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ + +mov (1) g115.8<1>UD 0x7000FUD {align1}; // 8*16/32=4 +send (16) 0 g40.0<1>UW g115<16,8,1>UW read(surface_u, 2, 0, 2) mlen 1 rlen 4 {align1};//U +send (16) 0 g45.0<1>UW g115<16,8,1>UW read(surface_v, 2, 0, 2) mlen 1 rlen 4 {align1};//V + +mov (16) g32.0<1>UW g40.0<16,8,1>UB {align1}; +mov (16) g33.0<1>UW g41.0<16,8,1>UB {align1}; +mov (16) g34.0<1>UW g42.0<16,8,1>UB {align1}; +mov (16) g35.0<1>UW g43.0<16,8,1>UB {align1}; +mov (16) g36.0<1>UW g45.0<16,8,1>UB {align1}; +mov (16) g37.0<1>UW g46.0<16,8,1>UB {align1}; +mov (16) g38.0<1>UW g47.0<16,8,1>UB {align1}; +mov (16) g39.0<1>UW g48.0<16,8,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_field_x0y0_y.g4i b/src/xvmc/shader/vld/read_field_x0y0_y.g4i new file mode 100644 index 00000000..e5495981 --- /dev/null +++ b/src/xvmc/shader/vld/read_field_x0y0_y.g4i @@ -0,0 +1,57 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (1) g115.8<1>UD 0x01FUD {align1}; +send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +mov (1) g115.8<1>UD 0x07001FUD {align1}; +send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1}; + +mov (16) g32.0<1>UW g40.0<16,16,1>UB {align1}; +mov (16) g33.0<1>UW g42.0<16,16,1>UB {align1}; +mov (16) g34.0<1>UW g44.0<16,16,1>UB {align1}; +mov (16) g35.0<1>UW g46.0<16,16,1>UB {align1}; +mov (16) g36.0<1>UW g48.0<16,16,1>UB {align1}; +mov (16) g37.0<1>UW g50.0<16,16,1>UB {align1}; +mov (16) g38.0<1>UW g52.0<16,16,1>UB {align1}; +mov (16) g39.0<1>UW g54.0<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_field_x0y1_y.g4i b/src/xvmc/shader/vld/read_field_x0y1_y.g4i new file mode 100644 index 00000000..7a7909fe --- /dev/null +++ b/src/xvmc/shader/vld/read_field_x0y1_y.g4i @@ -0,0 +1,60 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (1) g115.8<1>UD 0x01FUD {align1}; +send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +mov (1) g115.8<1>UD 0x07001FUD {align1}; +send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1}; +mov (1) g115.8<1>UD 0x1FUD {align1}; +send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; + +avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1}; +avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1}; +avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1}; +avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1}; +avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1}; +avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1}; +avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1}; +avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_field_x1y0_y.g4i b/src/xvmc/shader/vld/read_field_x1y0_y.g4i new file mode 100644 index 00000000..c8ff505d --- /dev/null +++ b/src/xvmc/shader/vld/read_field_x1y0_y.g4i @@ -0,0 +1,57 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (1) g115.8<1>UD 0x01FUD {align1}; +send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +mov (1) g115.8<1>UD 0x07001FUD {align1}; +send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1}; + +avg.sat (16) g32.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1}; +avg.sat (16) g33.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1}; +avg.sat (16) g34.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1}; +avg.sat (16) g35.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1}; +avg.sat (16) g36.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1}; +avg.sat (16) g37.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1}; +avg.sat (16) g38.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1}; +avg.sat (16) g39.0<1>UW g54.0<16,16,1>UB g54.1<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_field_x1y1_y.g4i b/src/xvmc/shader/vld/read_field_x1y1_y.g4i new file mode 100644 index 00000000..dcc9ebf0 --- /dev/null +++ b/src/xvmc/shader/vld/read_field_x1y1_y.g4i @@ -0,0 +1,87 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data + g115: message descriptor for reading reference data */ +mov (1) g115.8<1>UD 0x01FUD {align1}; +send (16) 0 g40.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g42.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g44.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +send (16) 0 g46.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 2UD {align1}; +mov (1) g115.8<1>UD 0x07001FUD {align1}; +send (16) 0 g48.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 8 {align1}; +add (1) g115.4<1>UD g115.4<1,1,1>UD 8UD {align1}; +mov (1) g115.8<1>UD 0x1FUD {align1}; +send (16) 0 g56.0<1>UW g115<8,8,1>UW read(surface,2,0,2) mlen 1 rlen 1 {align1}; + +add (16) g32.0<1>UW g40.0<16,16,1>UB g42.0<16,16,1>UB {align1}; +add (16) g33.0<1>UW g42.0<16,16,1>UB g44.0<16,16,1>UB {align1}; +add (16) g34.0<1>UW g44.0<16,16,1>UB g46.0<16,16,1>UB {align1}; +add (16) g35.0<1>UW g46.0<16,16,1>UB g48.0<16,16,1>UB {align1}; +add (16) g36.0<1>UW g48.0<16,16,1>UB g50.0<16,16,1>UB {align1}; +add (16) g37.0<1>UW g50.0<16,16,1>UB g52.0<16,16,1>UB {align1}; +add (16) g38.0<1>UW g52.0<16,16,1>UB g54.0<16,16,1>UB {align1}; +add (16) g39.0<1>UW g54.0<16,16,1>UB g56.0<16,16,1>UB {align1}; + +add (16) g32.0<1>UW g32.0<16,16,1>UW g40.1<16,16,1>UB {align1}; +add (16) g33.0<1>UW g33.0<16,16,1>UW g42.1<16,16,1>UB {align1}; +add (16) g34.0<1>UW g34.0<16,16,1>UW g44.1<16,16,1>UB {align1}; +add (16) g35.0<1>UW g35.0<16,16,1>UW g46.1<16,16,1>UB {align1}; +add (16) g36.0<1>UW g36.0<16,16,1>UW g48.1<16,16,1>UB {align1}; +add (16) g37.0<1>UW g37.0<16,16,1>UW g50.1<16,16,1>UB {align1}; +add (16) g38.0<1>UW g38.0<16,16,1>UW g52.1<16,16,1>UB {align1}; +add (16) g39.0<1>UW g39.0<16,16,1>UW g54.1<16,16,1>UB {align1}; + +add (16) g32.0<1>UW g32.0<16,16,1>UW g42.1<16,16,1>UB {align1}; +add (16) g33.0<1>UW g33.0<16,16,1>UW g44.1<16,16,1>UB {align1}; +add (16) g34.0<1>UW g34.0<16,16,1>UW g46.1<16,16,1>UB {align1}; +add (16) g35.0<1>UW g35.0<16,16,1>UW g48.1<16,16,1>UB {align1}; +add (16) g36.0<1>UW g36.0<16,16,1>UW g50.1<16,16,1>UB {align1}; +add (16) g37.0<1>UW g37.0<16,16,1>UW g52.1<16,16,1>UB {align1}; +add (16) g38.0<1>UW g38.0<16,16,1>UW g54.1<16,16,1>UB {align1}; +add (16) g39.0<1>UW g39.0<16,16,1>UW g56.1<16,16,1>UB {align1}; + +shr (16) g32.0<1>UW g32.0<16,16,1>UW 2UW {align1}; +shr (16) g33.0<1>UW g33.0<16,16,1>UW 2UW {align1}; +shr (16) g34.0<1>UW g34.0<16,16,1>UW 2UW {align1}; +shr (16) g35.0<1>UW g35.0<16,16,1>UW 2UW {align1}; +shr (16) g36.0<1>UW g36.0<16,16,1>UW 2UW {align1}; +shr (16) g37.0<1>UW g37.0<16,16,1>UW 2UW {align1}; +shr (16) g38.0<1>UW g38.0<16,16,1>UW 2UW {align1}; +shr (16) g39.0<1>UW g39.0<16,16,1>UW 2UW {align1}; diff --git a/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i b/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i new file mode 100644 index 00000000..63f898f1 --- /dev/null +++ b/src/xvmc/shader/vld/read_frame_x0y0_uv.g4i @@ -0,0 +1,49 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (1) g32.8<1>UD 0x007000fUD {align1}; +send (16) 0 g36.0<1>UW g32<8,8,1>UW read(input_surface1, 2, 0, 2) mlen 1 rlen 4 {align1}; +send (16) 0 g40.0<1>UW g32<8,8,1>UW read(input_surface2, 2, 0, 2) mlen 1 rlen 4 {align1}; + +mov (16) g74.0<1>UW g36.0<16,8,1>UB {align1}; +mov (16) g75.0<1>UW g37.0<16,8,1>UB {align1}; +mov (16) g76.0<1>UW g38.0<16,8,1>UB {align1}; +mov (16) g77.0<1>UW g39.0<16,8,1>UB {align1}; +mov (16) g78.0<1>UW g40.0<16,8,1>UB {align1}; +mov (16) g79.0<1>UW g41.0<16,8,1>UB {align1}; +mov (16) g80.0<1>UW g42.0<16,8,1>UB {align1}; +mov (16) g81.0<1>UW g43.0<16,8,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_frame_x0y0_y.g4i b/src/xvmc/shader/vld/read_frame_x0y0_y.g4i new file mode 100644 index 00000000..3ab5ccd5 --- /dev/null +++ b/src/xvmc/shader/vld/read_frame_x0y0_y.g4i @@ -0,0 +1,58 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (1) g32.8<1>UD 0x007001FUD {align1}; +send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; + +mov (16) g58.0<1>UW g38.0<16,16,1>UB {align1}; +mov (16) g59.0<1>UW g39.0<16,16,1>UB {align1}; +mov (16) g60.0<1>UW g40.0<16,16,1>UB {align1}; +mov (16) g61.0<1>UW g41.0<16,16,1>UB {align1}; +mov (16) g62.0<1>UW g42.0<16,16,1>UB {align1}; +mov (16) g63.0<1>UW g43.0<16,16,1>UB {align1}; +mov (16) g64.0<1>UW g44.0<16,16,1>UB {align1}; +mov (16) g65.0<1>UW g45.0<16,16,1>UB {align1}; +mov (16) g66.0<1>UW g46.0<16,16,1>UB {align1}; +mov (16) g67.0<1>UW g47.0<16,16,1>UB {align1}; +mov (16) g68.0<1>UW g48.0<16,16,1>UB {align1}; +mov (16) g69.0<1>UW g49.0<16,16,1>UB {align1}; +mov (16) g70.0<1>UW g50.0<16,16,1>UB {align1}; +mov (16) g71.0<1>UW g51.0<16,16,1>UB {align1}; +mov (16) g72.0<1>UW g52.0<16,16,1>UB {align1}; +mov (16) g73.0<1>UW g53.0<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_frame_x0y1_y.g4i b/src/xvmc/shader/vld/read_frame_x0y1_y.g4i new file mode 100644 index 00000000..db3dcc55 --- /dev/null +++ b/src/xvmc/shader/vld/read_frame_x0y1_y.g4i @@ -0,0 +1,61 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (1) g32.8<1>UD 0x007001FUD {align1}; +send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +mov (1) g32.8<1>UD 0x1FUD {align1}; +send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1}; + +avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g39.0<16,16,1>UB {align1}; +avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g40.0<16,16,1>UB {align1}; +avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g41.0<16,16,1>UB {align1}; +avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g42.0<16,16,1>UB {align1}; +avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g43.0<16,16,1>UB {align1}; +avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g44.0<16,16,1>UB {align1}; +avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g45.0<16,16,1>UB {align1}; +avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g46.0<16,16,1>UB {align1}; +avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g47.0<16,16,1>UB {align1}; +avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g48.0<16,16,1>UB {align1}; +avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g49.0<16,16,1>UB {align1}; +avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g50.0<16,16,1>UB {align1}; +avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g51.0<16,16,1>UB {align1}; +avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g52.0<16,16,1>UB {align1}; +avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g53.0<16,16,1>UB {align1}; +avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g54.0<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_frame_x1y0_y.g4i b/src/xvmc/shader/vld/read_frame_x1y0_y.g4i new file mode 100644 index 00000000..c236d117 --- /dev/null +++ b/src/xvmc/shader/vld/read_frame_x1y0_y.g4i @@ -0,0 +1,58 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (1) g32.8<1>UD 0x007001FUD {align1}; +send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; + +avg.sat (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1}; +avg.sat (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1}; +avg.sat (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1}; +avg.sat (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1}; +avg.sat (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1}; +avg.sat (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1}; +avg.sat (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1}; +avg.sat (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1}; +avg.sat (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1}; +avg.sat (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1}; +avg.sat (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1}; +avg.sat (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1}; +avg.sat (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1}; +avg.sat (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1}; +avg.sat (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1}; +avg.sat (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1}; diff --git a/src/xvmc/shader/vld/read_frame_x1y1_y.g4i b/src/xvmc/shader/vld/read_frame_x1y1_y.g4i new file mode 100644 index 00000000..990927dc --- /dev/null +++ b/src/xvmc/shader/vld/read_frame_x1y1_y.g4i @@ -0,0 +1,112 @@ +/* + * Copyright © 2009 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: + * Zou Nan hai <nanhai.zou@intel.com> + * Yan Li <li.l.yan@intel.com> + * Liu Xi bin<xibin.liu@intel.com> + */ +/* GRF allocation: + g1~g30: constant buffer + g1~g2:intra IQ matrix + g3~g4:non intra IQ matrix + g5~g20:IDCT table + g31: thread payload + g32: message descriptor for reading reference data + g58~g81:reference data + g82: thread payload backup + g83~g106:IDCT data */ +mov (1) g32.8<1>UD 0x007001FUD {align1}; +send (16) 0 g38.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +send (16) 0 g46.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 8 {align1}; +add (1) g32.4<1>UD g32.4<1,1,1>UD 8UD {align1}; +mov (1) g32.8<1>UD 0x1FUD {align1}; +send (16) 0 g54.0<1>UW g32<8,8,1>UW read(input_surface, 2, 0, 2) mlen 1 rlen 1 {align1}; + +add (16) g58.0<1>UW g38.0<16,16,1>UB g38.1<16,16,1>UB {align1}; +add (16) g59.0<1>UW g39.0<16,16,1>UB g39.1<16,16,1>UB {align1}; +add (16) g60.0<1>UW g40.0<16,16,1>UB g40.1<16,16,1>UB {align1}; +add (16) g61.0<1>UW g41.0<16,16,1>UB g41.1<16,16,1>UB {align1}; +add (16) g62.0<1>UW g42.0<16,16,1>UB g42.1<16,16,1>UB {align1}; +add (16) g63.0<1>UW g43.0<16,16,1>UB g43.1<16,16,1>UB {align1}; +add (16) g64.0<1>UW g44.0<16,16,1>UB g44.1<16,16,1>UB {align1}; +add (16) g65.0<1>UW g45.0<16,16,1>UB g45.1<16,16,1>UB {align1}; +add (16) g66.0<1>UW g46.0<16,16,1>UB g46.1<16,16,1>UB {align1}; +add (16) g67.0<1>UW g47.0<16,16,1>UB g47.1<16,16,1>UB {align1}; +add (16) g68.0<1>UW g48.0<16,16,1>UB g48.1<16,16,1>UB {align1}; +add (16) g69.0<1>UW g49.0<16,16,1>UB g49.1<16,16,1>UB {align1}; +add (16) g70.0<1>UW g50.0<16,16,1>UB g50.1<16,16,1>UB {align1}; +add (16) g71.0<1>UW g51.0<16,16,1>UB g51.1<16,16,1>UB {align1}; +add (16) g72.0<1>UW g52.0<16,16,1>UB g52.1<16,16,1>UB {align1}; +add (16) g73.0<1>UW g53.0<16,16,1>UB g53.1<16,16,1>UB {align1}; + +add (16) g58.0<1>UW g58.0<16,16,1>UW g39.0<16,16,1>UB {align1}; +add (16) g59.0<1>UW g59.0<16,16,1>UW g40.0<16,16,1>UB {align1}; +add (16) g60.0<1>UW g60.0<16,16,1>UW g41.0<16,16,1>UB {align1}; +add (16) g61.0<1>UW g61.0<16,16,1>UW g42.0<16,16,1>UB {align1}; +add (16) g62.0<1>UW g62.0<16,16,1>UW g43.0<16,16,1>UB {align1}; +add (16) g63.0<1>UW g63.0<16,16,1>UW g44.0<16,16,1>UB {align1}; +add (16) g64.0<1>UW g64.0<16,16,1>UW g45.0<16,16,1>UB {align1}; +add (16) g65.0<1>UW g65.0<16,16,1>UW g46.0<16,16,1>UB {align1}; +add (16) g66.0<1>UW g66.0<16,16,1>UW g47.0<16,16,1>UB {align1}; +add (16) g67.0<1>UW g67.0<16,16,1>UW g48.0<16,16,1>UB {align1}; +add (16) g68.0<1>UW g68.0<16,16,1>UW g49.0<16,16,1>UB {align1}; +add (16) g69.0<1>UW g69.0<16,16,1>UW g50.0<16,16,1>UB {align1}; +add (16) g70.0<1>UW g70.0<16,16,1>UW g51.0<16,16,1>UB {align1}; +add (16) g71.0<1>UW g71.0<16,16,1>UW g52.0<16,16,1>UB {align1}; +add (16) g72.0<1>UW g72.0<16,16,1>UW g53.0<16,16,1>UB {align1}; +add (16) g73.0<1>UW g73.0<16,16,1>UW g54.0<16,16,1>UB {align1}; + +add (16) g58.0<1>UW g58.0<16,16,1>UW g39.1<16,16,1>UB {align1}; +add (16) g59.0<1>UW g59.0<16,16,1>UW g40.1<16,16,1>UB {align1}; +add (16) g60.0<1>UW g60.0<16,16,1>UW g41.1<16,16,1>UB {align1}; +add (16) g61.0<1>UW g61.0<16,16,1>UW g42.1<16,16,1>UB {align1}; +add (16) g62.0<1>UW g62.0<16,16,1>UW g43.1<16,16,1>UB {align1}; +add (16) g63.0<1>UW g63.0<16,16,1>UW g44.1<16,16,1>UB {align1}; +add (16) g64.0<1>UW g64.0<16,16,1>UW g45.1<16,16,1>UB {align1}; +add (16) g65.0<1>UW g65.0<16,16,1>UW g46.1<16,16,1>UB {align1}; +add (16) g66.0<1>UW g66.0<16,16,1>UW g47.1<16,16,1>UB {align1}; +add (16) g67.0<1>UW g67.0<16,16,1>UW g48.1<16,16,1>UB {align1}; +add (16) g68.0<1>UW g68.0<16,16,1>UW g49.1<16,16,1>UB {align1}; +add (16) g69.0<1>UW g69.0<16,16,1>UW g50.1<16,16,1>UB {align1}; +add (16) g70.0<1>UW g70.0<16,16,1>UW g51.1<16,16,1>UB {align1}; +add (16) g71.0<1>UW g71.0<16,16,1>UW g52.1<16,16,1>UB {align1}; +add (16) g72.0<1>UW g72.0<16,16,1>UW g53.1<16,16,1>UB {align1}; +add (16) g73.0<1>UW g73.0<16,16,1>UW g54.1<16,16,1>UB {align1}; + +shr.sat (16) g58.0<1>UW g58.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g59.0<1>UW g59.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g60.0<1>UW g60.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g61.0<1>UW g61.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g62.0<1>UW g62.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g63.0<1>UW g63.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g64.0<1>UW g64.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g65.0<1>UW g65.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g66.0<1>UW g66.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g67.0<1>UW g67.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g68.0<1>UW g68.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g69.0<1>UW g69.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g70.0<1>UW g70.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g71.0<1>UW g71.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g72.0<1>UW g72.0<16,16,1>UW 2UW {align1}; +shr.sat (16) g73.0<1>UW g73.0<16,16,1>UW 2UW {align1}; |