summaryrefslogtreecommitdiff
path: root/src/xvmc/shader
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2009-03-25 16:11:33 +0800
committerZou Nan hai <nanhai.zou@intel.com>2009-03-25 16:11:33 +0800
commitebcb64fdc8a45105f529d5e15c335514ecaf1a05 (patch)
tree525859e69f1206cbd4658f8616a74fb4df6cfdb6 /src/xvmc/shader
parente6af995b24767815ab30364385768867e80605c2 (diff)
XvMC VLD extension support for G4X
Diffstat (limited to 'src/xvmc/shader')
-rw-r--r--src/xvmc/shader/Makefile.am1
-rw-r--r--src/xvmc/shader/vld/Makefile.am31
-rw-r--r--src/xvmc/shader/vld/addidct.g4i152
-rw-r--r--src/xvmc/shader/vld/do_iq_intra.g4i64
-rw-r--r--src/xvmc/shader/vld/do_iq_non_intra.g4i59
-rw-r--r--src/xvmc/shader/vld/field_backward.g4a126
-rw-r--r--src/xvmc/shader/vld/field_backward.g4b413
-rw-r--r--src/xvmc/shader/vld/field_f_b.g4a213
-rw-r--r--src/xvmc/shader/vld/field_f_b.g4b727
-rw-r--r--src/xvmc/shader/vld/field_forward.g4a130
-rw-r--r--src/xvmc/shader/vld/field_forward.g4b415
-rw-r--r--src/xvmc/shader/vld/frame_backward.g4a61
-rw-r--r--src/xvmc/shader/vld/frame_backward.g4b263
-rw-r--r--src/xvmc/shader/vld/frame_f_b.g4a120
-rw-r--r--src/xvmc/shader/vld/frame_f_b.g4b463
-rw-r--r--src/xvmc/shader/vld/frame_forward.g4a61
-rw-r--r--src/xvmc/shader/vld/frame_forward.g4b263
-rw-r--r--src/xvmc/shader/vld/idct.g4i147
-rw-r--r--src/xvmc/shader/vld/ipicture.g4a209
-rw-r--r--src/xvmc/shader/vld/ipicture.g4b313
-rw-r--r--src/xvmc/shader/vld/iq_intra.g4i131
-rw-r--r--src/xvmc/shader/vld/iq_non_intra.g4i150
-rw-r--r--src/xvmc/shader/vld/lib.g4a190
-rw-r--r--src/xvmc/shader/vld/lib.g4b307
-rw-r--r--src/xvmc/shader/vld/motion_field_uv.g4i29
-rw-r--r--src/xvmc/shader/vld/motion_field_y.g4i45
-rw-r--r--src/xvmc/shader/vld/motion_frame_uv.g4i29
-rw-r--r--src/xvmc/shader/vld/motion_frame_y.g4i57
-rw-r--r--src/xvmc/shader/vld/read_field_x0y0_uv.g4i50
-rw-r--r--src/xvmc/shader/vld/read_field_x0y0_y.g4i57
-rw-r--r--src/xvmc/shader/vld/read_field_x0y1_y.g4i60
-rw-r--r--src/xvmc/shader/vld/read_field_x1y0_y.g4i57
-rw-r--r--src/xvmc/shader/vld/read_field_x1y1_y.g4i87
-rw-r--r--src/xvmc/shader/vld/read_frame_x0y0_uv.g4i49
-rw-r--r--src/xvmc/shader/vld/read_frame_x0y0_y.g4i58
-rw-r--r--src/xvmc/shader/vld/read_frame_x0y1_y.g4i61
-rw-r--r--src/xvmc/shader/vld/read_frame_x1y0_y.g4i58
-rw-r--r--src/xvmc/shader/vld/read_frame_x1y1_y.g4i112
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};