[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'upstream-experimental'



 NEWS                                          |   25 
 configure.ac                                  |   19 
 src/Makefile.am                               |    2 
 src/common.h                                  |   38 
 src/i810.h                                    |    2 
 src/i810_driver.c                             |  172 -
 src/i810_reg.h                                |  493 ++++
 src/i830.h                                    |   26 
 src/i830_bios.c                               |   89 
 src/i830_bios.h                               |   17 
 src/i830_crt.c                                |    7 
 src/i830_debug.c                              |  615 +++++
 src/i830_dri.c                                |   67 
 src/i830_driver.c                             |   36 
 src/i830_dvo.c                                |   29 
 src/i830_exa.c                                |  740 ------
 src/i830_hwmc.c                               |   34 
 src/i830_hwmc.h                               |    5 
 src/i830_sdvo.c                               |   60 
 src/i830_uxa.c                                |  751 ++++++
 src/i830_video.c                              |   12 
 src/i915_hwmc.c                               |    6 
 src/i915_hwmc.h                               |    1 
 src/i915_video.c                              |   23 
 src/i965_hwmc.c                               |  195 -
 src/i965_hwmc.h                               |    6 
 src/reg_dumper/gtt.c                          |    2 
 src/xvmc/I810XvMC.h                           |  103 
 src/xvmc/Makefile.am                          |  106 
 src/xvmc/addidct.g4i                          |  152 -
 src/xvmc/backward.g4b                         | 1472 -------------
 src/xvmc/block_clear.g4i                      |  140 -
 src/xvmc/dri2.c                               |  301 ++
 src/xvmc/dri2.h                               |   70 
 src/xvmc/dual_prime.g4a                       |  223 --
 src/xvmc/dual_prime.g4b                       | 2486 ----------------------
 src/xvmc/dual_prime_igd.g4a                   |  223 --
 src/xvmc/dual_prime_igd.g4b                   | 1142 ----------
 src/xvmc/f_b.g4b                              | 2886 --------------------------
 src/xvmc/field_backward.g4a                   |  124 -
 src/xvmc/field_backward.g4b                   | 1341 ------------
 src/xvmc/field_backward_igd.g4a               |  124 -
 src/xvmc/field_backward_igd.g4b               |  669 ------
 src/xvmc/field_f_b.g4a                        |  223 --
 src/xvmc/field_f_b.g4b                        | 2486 ----------------------
 src/xvmc/field_f_b_igd.g4a                    |  223 --
 src/xvmc/field_f_b_igd.g4b                    | 1142 ----------
 src/xvmc/field_forward.g4a                    |  121 -
 src/xvmc/field_forward.g4b                    | 1340 ------------
 src/xvmc/field_forward_igd.g4a                |  121 -
 src/xvmc/field_forward_igd.g4b                |  668 ------
 src/xvmc/forward.g4b                          | 1471 -------------
 src/xvmc/frame_backward.g4a                   |   69 
 src/xvmc/frame_backward.g4b                   |  716 ------
 src/xvmc/frame_backward_igd.g4a               |   69 
 src/xvmc/frame_backward_igd.g4b               |  374 ---
 src/xvmc/frame_f_b.g4a                        |  131 -
 src/xvmc/frame_f_b.g4b                        | 1257 -----------
 src/xvmc/frame_f_b_igd.g4a                    |  131 -
 src/xvmc/frame_f_b_igd.g4b                    |  573 -----
 src/xvmc/frame_forward.g4a                    |   65 
 src/xvmc/frame_forward.g4b                    |  715 ------
 src/xvmc/frame_forward_igd.g4a                |   65 
 src/xvmc/frame_forward_igd.g4b                |  373 ---
 src/xvmc/i915_xvmc.c                          |   17 
 src/xvmc/i915_xvmc.h                          |    2 
 src/xvmc/i965_xvmc.c                          |  673 +++---
 src/xvmc/intel_batchbuffer.c                  |  233 --
 src/xvmc/intel_batchbuffer.h                  |   10 
 src/xvmc/intel_xvmc.c                         |  206 +
 src/xvmc/intel_xvmc.h                         |   39 
 src/xvmc/ipicture.g4a                         |  166 -
 src/xvmc/ipicture.g4b                         |  125 -
 src/xvmc/motion_field_uv.g4i                  |   46 
 src/xvmc/motion_field_uv_igd.g4i              |   46 
 src/xvmc/motion_field_y.g4i                   |   45 
 src/xvmc/motion_field_y_igd.g4i               |   45 
 src/xvmc/motion_frame_uv.g4i                  |   29 
 src/xvmc/motion_frame_uv_igd.g4i              |   29 
 src/xvmc/motion_frame_y.g4i                   |   57 
 src/xvmc/motion_frame_y_igd.g4i               |   57 
 src/xvmc/null.g4a                             |   57 
 src/xvmc/null.g4b                             |   17 
 src/xvmc/read_field_x0y0_uv.g4i               |   74 
 src/xvmc/read_field_x0y0_uv_igd.g4i           |   40 
 src/xvmc/read_field_x0y0_y.g4i                |   83 
 src/xvmc/read_field_x0y0_y_igd.g4i            |   48 
 src/xvmc/read_field_x0y1_uv.g4i               |   78 
 src/xvmc/read_field_x0y1_uv_igd.g4i           |   43 
 src/xvmc/read_field_x0y1_y.g4i                |   86 
 src/xvmc/read_field_x0y1_y_igd.g4i            |   51 
 src/xvmc/read_field_x1y0_uv.g4i               |   75 
 src/xvmc/read_field_x1y0_uv_igd.g4i           |   40 
 src/xvmc/read_field_x1y0_y.g4i                |   83 
 src/xvmc/read_field_x1y0_y_igd.g4i            |   48 
 src/xvmc/read_field_x1y1_uv.g4i               |  172 -
 src/xvmc/read_field_x1y1_uv_igd.g4i           |   75 
 src/xvmc/read_field_x1y1_y.g4i                |  166 -
 src/xvmc/read_field_x1y1_y_igd.g4i            |   78 
 src/xvmc/read_frame_x0y0_uv.g4i               |   73 
 src/xvmc/read_frame_x0y0_uv_igd.g4i           |   39 
 src/xvmc/read_frame_x0y0_y.g4i                |  109 
 src/xvmc/read_frame_x0y0_y_igd.g4i            |   50 
 src/xvmc/read_frame_x0y1_uv.g4i               |   79 
 src/xvmc/read_frame_x0y1_uv_igd.g4i           |   44 
 src/xvmc/read_frame_x0y1_y.g4i                |  113 -
 src/xvmc/read_frame_x0y1_y_igd.g4i            |   54 
 src/xvmc/read_frame_x1y0_uv.g4i               |   75 
 src/xvmc/read_frame_x1y0_uv_igd.g4i           |   41 
 src/xvmc/read_frame_x1y0_y.g4i                |  110 
 src/xvmc/read_frame_x1y0_y_igd.g4i            |   51 
 src/xvmc/read_frame_x1y1_uv.g4i               |  159 -
 src/xvmc/read_frame_x1y1_uv_igd.g4i           |   71 
 src/xvmc/read_frame_x1y1_y.g4i                |  264 --
 src/xvmc/read_frame_x1y1_y_igd.g4i            |  105 
 src/xvmc/shader/Makefile.am                   |    1 
 src/xvmc/shader/mc/Makefile.am                |   99 
 src/xvmc/shader/mc/addidct.g4i                |  152 +
 src/xvmc/shader/mc/addidct_igd.g4i            |  117 +
 src/xvmc/shader/mc/block_clear.g4i            |  140 +
 src/xvmc/shader/mc/dual_prime.g4a             |  223 ++
 src/xvmc/shader/mc/dual_prime.g4b             | 2486 ++++++++++++++++++++++
 src/xvmc/shader/mc/dual_prime_igd.g4a         |  223 ++
 src/xvmc/shader/mc/dual_prime_igd.g4b         | 1234 +++++++++++
 src/xvmc/shader/mc/field_backward.g4a         |  124 +
 src/xvmc/shader/mc/field_backward.g4b         | 1341 ++++++++++++
 src/xvmc/shader/mc/field_backward_igd.g4a     |   86 
 src/xvmc/shader/mc/field_backward_igd.g4b     |   62 
 src/xvmc/shader/mc/field_f_b.g4a              |  223 ++
 src/xvmc/shader/mc/field_f_b.g4b              | 2486 ++++++++++++++++++++++
 src/xvmc/shader/mc/field_f_b_igd.g4a          |  159 +
 src/xvmc/shader/mc/field_f_b_igd.g4b          |  121 +
 src/xvmc/shader/mc/field_forward.g4a          |  121 +
 src/xvmc/shader/mc/field_forward.g4b          | 1340 ++++++++++++
 src/xvmc/shader/mc/field_forward_igd.g4a      |   86 
 src/xvmc/shader/mc/field_forward_igd.g4b      |   62 
 src/xvmc/shader/mc/frame_backward.g4a         |   69 
 src/xvmc/shader/mc/frame_backward.g4b         |  716 ++++++
 src/xvmc/shader/mc/frame_backward_igd.g4a     |   50 
 src/xvmc/shader/mc/frame_backward_igd.g4b     |   15 
 src/xvmc/shader/mc/frame_f_b.g4a              |  131 +
 src/xvmc/shader/mc/frame_f_b.g4b              | 1257 +++++++++++
 src/xvmc/shader/mc/frame_f_b_igd.g4a          |   96 
 src/xvmc/shader/mc/frame_f_b_igd.g4b          |   51 
 src/xvmc/shader/mc/frame_forward.g4a          |   65 
 src/xvmc/shader/mc/frame_forward.g4b          |  715 ++++++
 src/xvmc/shader/mc/frame_forward_igd.g4a      |   30 
 src/xvmc/shader/mc/frame_forward_igd.g4b      |   15 
 src/xvmc/shader/mc/ipicture.g4a               |  166 +
 src/xvmc/shader/mc/ipicture.g4b               |  125 +
 src/xvmc/shader/mc/ipicture_igd.g4a           |  105 
 src/xvmc/shader/mc/ipicture_igd.g4b           |   75 
 src/xvmc/shader/mc/lib_igd.g4a                |  133 +
 src/xvmc/shader/mc/lib_igd.g4b                |  558 +++++
 src/xvmc/shader/mc/motion_field_uv.g4i        |   46 
 src/xvmc/shader/mc/motion_field_uv_igd.g4i    |   46 
 src/xvmc/shader/mc/motion_field_y.g4i         |   45 
 src/xvmc/shader/mc/motion_field_y_igd.g4i     |   45 
 src/xvmc/shader/mc/motion_frame_uv.g4i        |   29 
 src/xvmc/shader/mc/motion_frame_uv_igd.g4i    |   30 
 src/xvmc/shader/mc/motion_frame_y.g4i         |   57 
 src/xvmc/shader/mc/motion_frame_y_igd.g4i     |   58 
 src/xvmc/shader/mc/null.g4a                   |   57 
 src/xvmc/shader/mc/null.g4b                   |   17 
 src/xvmc/shader/mc/read_field_x0y0_uv.g4i     |   74 
 src/xvmc/shader/mc/read_field_x0y0_uv_igd.g4i |   30 
 src/xvmc/shader/mc/read_field_x0y0_y.g4i      |   83 
 src/xvmc/shader/mc/read_field_x0y0_y_igd.g4i  |   35 
 src/xvmc/shader/mc/read_field_x0y1_uv.g4i     |   78 
 src/xvmc/shader/mc/read_field_x0y1_uv_igd.g4i |   42 
 src/xvmc/shader/mc/read_field_x0y1_y.g4i      |   86 
 src/xvmc/shader/mc/read_field_x0y1_y_igd.g4i  |   42 
 src/xvmc/shader/mc/read_field_x1y0_uv.g4i     |   75 
 src/xvmc/shader/mc/read_field_x1y0_uv_igd.g4i |   33 
 src/xvmc/shader/mc/read_field_x1y0_y.g4i      |   83 
 src/xvmc/shader/mc/read_field_x1y0_y_igd.g4i  |   35 
 src/xvmc/shader/mc/read_field_x1y1_uv.g4i     |  172 +
 src/xvmc/shader/mc/read_field_x1y1_uv_igd.g4i |   66 
 src/xvmc/shader/mc/read_field_x1y1_y.g4i      |  166 +
 src/xvmc/shader/mc/read_field_x1y1_y_igd.g4i  |   64 
 src/xvmc/shader/mc/read_frame_x0y0_uv.g4i     |   73 
 src/xvmc/shader/mc/read_frame_x0y0_uv_igd.g4i |   28 
 src/xvmc/shader/mc/read_frame_x0y0_y.g4i      |  109 
 src/xvmc/shader/mc/read_frame_x0y0_y_igd.g4i  |   35 
 src/xvmc/shader/mc/read_frame_x0y1_uv.g4i     |   79 
 src/xvmc/shader/mc/read_frame_x0y1_uv_igd.g4i |   44 
 src/xvmc/shader/mc/read_frame_x0y1_y.g4i      |  113 +
 src/xvmc/shader/mc/read_frame_x0y1_y_igd.g4i  |   49 
 src/xvmc/shader/mc/read_frame_x1y0_uv.g4i     |   75 
 src/xvmc/shader/mc/read_frame_x1y0_uv_igd.g4i |   41 
 src/xvmc/shader/mc/read_frame_x1y0_y.g4i      |  110 
 src/xvmc/shader/mc/read_frame_x1y0_y_igd.g4i  |   43 
 src/xvmc/shader/mc/read_frame_x1y1_uv.g4i     |  159 +
 src/xvmc/shader/mc/read_frame_x1y1_uv_igd.g4i |   71 
 src/xvmc/shader/mc/read_frame_x1y1_y.g4i      |  264 ++
 src/xvmc/shader/mc/read_frame_x1y1_y_igd.g4i  |   92 
 src/xvmc/shader/vld/Makefile.am               |   57 
 src/xvmc/shader/vld/addidct.g4i               |  152 +
 src/xvmc/shader/vld/do_iq_intra.g4i           |   64 
 src/xvmc/shader/vld/do_iq_non_intra.g4i       |   59 
 src/xvmc/shader/vld/field_backward.g4a        |  126 +
 src/xvmc/shader/vld/field_backward.g4b        |  553 ++++
 src/xvmc/shader/vld/field_f_b.g4a             |  213 +
 src/xvmc/shader/vld/field_f_b.g4b             | 1007 +++++++++
 src/xvmc/shader/vld/field_forward.g4a         |  130 +
 src/xvmc/shader/vld/field_forward.g4b         |  555 +++++
 src/xvmc/shader/vld/frame_backward.g4a        |   61 
 src/xvmc/shader/vld/frame_backward.g4b        |  369 +++
 src/xvmc/shader/vld/frame_f_b.g4a             |  120 +
 src/xvmc/shader/vld/frame_f_b.g4b             |  675 ++++++
 src/xvmc/shader/vld/frame_forward.g4a         |   61 
 src/xvmc/shader/vld/frame_forward.g4b         |  369 +++
 src/xvmc/shader/vld/idct.g4i                  |  147 +
 src/xvmc/shader/vld/ipicture.g4a              |  209 +
 src/xvmc/shader/vld/ipicture.g4b              |  313 ++
 src/xvmc/shader/vld/iq_intra.g4i              |  131 +
 src/xvmc/shader/vld/iq_non_intra.g4i          |  150 +
 src/xvmc/shader/vld/lib.g4a                   |  190 +
 src/xvmc/shader/vld/lib.g4b                   |  307 ++
 src/xvmc/shader/vld/motion_field_uv.g4i       |   46 
 src/xvmc/shader/vld/motion_field_y.g4i        |   45 
 src/xvmc/shader/vld/motion_frame_uv.g4i       |   45 
 src/xvmc/shader/vld/motion_frame_y.g4i        |   57 
 src/xvmc/shader/vld/read_field_x0y0_uv.g4i    |   50 
 src/xvmc/shader/vld/read_field_x0y0_y.g4i     |   57 
 src/xvmc/shader/vld/read_field_x0y1_uv.g4i    |   28 
 src/xvmc/shader/vld/read_field_x0y1_y.g4i     |   60 
 src/xvmc/shader/vld/read_field_x1y0_uv.g4i    |   24 
 src/xvmc/shader/vld/read_field_x1y0_y.g4i     |   57 
 src/xvmc/shader/vld/read_field_x1y1_uv.g4i    |   53 
 src/xvmc/shader/vld/read_field_x1y1_y.g4i     |   87 
 src/xvmc/shader/vld/read_frame_x0y0_uv.g4i    |   49 
 src/xvmc/shader/vld/read_frame_x0y0_y.g4i     |   58 
 src/xvmc/shader/vld/read_frame_x0y1_uv.g4i    |   56 
 src/xvmc/shader/vld/read_frame_x0y1_y.g4i     |   61 
 src/xvmc/shader/vld/read_frame_x1y0_uv.g4i    |   42 
 src/xvmc/shader/vld/read_frame_x1y0_y.g4i     |   58 
 src/xvmc/shader/vld/read_frame_x1y1_uv.g4i    |   74 
 src/xvmc/shader/vld/read_frame_x1y1_y.g4i     |  112 +
 src/xvmc/xf86dri.c                            |  565 -----
 src/xvmc/xf86dri.h                            |  117 -
 src/xvmc/xf86dristr.h                         |  389 ---
 src/xvmc/xvmc_vld.c                           | 1044 +++++++++
 src/xvmc/xvmc_vld.h                           |    1 
 uxa/uxa-render.c                              |   53 
 245 files changed, 29725 insertions(+), 29761 deletions(-)

New commits:
commit 9d3c3b056c1d4da6ef7afd3f71a5994fad810632
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Jun 10 15:30:45 2009 -0700

    Increment version to 2.7.99.901
    
    This is the first release candidate for 2.8.0

diff --git a/configure.ac b/configure.ac
index d1629d1..c40818f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-intel],
-        2.7.99.1,
+        2.7.99.901,
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-intel)
 

commit e2622045155f5aa79bacbec8f81c1231194f3033
Author: Carl Worth <cworth@cworth.org>
Date:   Wed Jun 10 15:30:09 2009 -0700

    NEWS: Summarize new developments for 2.7.99.901

diff --git a/NEWS b/NEWS
index 5787be3..294a78c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,28 @@
+Snapshot 2.7.99.901 (2009-06-10)
+--------------------------------
+This is the first release candidate in preparation for the upcoming
+2.8.0 release. Most critical bugs should be fixed, but some major
+bugs may still be present. We will appreciate any feedback we can
+get from testing of this snapshot to improve the 2.8.0 release.
+
+Some of the major fixes in this snapshot include:
+
+	* Several fixes for intermittent GPU hangs/crashes, (some of
+	  which already appeared in the 2.7.1 release)
+
+	* Fix to avoid X crash when viewing large images in browser
+
+	* Fix X server failure when running old (non-GEM) kernel
+
+	* Fixes for SDVO LVDS mode detection
+
+	* Fix major performance regression of trapezoid rendering
+          compared to XAA/EXA
+
+	* New support for tear-free video when using KMS
+
+	* New support for tear-free DRI2 CopyRegion
+
 Snapshot 2.7.99.1 (2009-04-28)
 ------------------------------
 This is a development snapshot very early in the process toward

commit e5bfa2702a31566fa94fa75f7289d7cbe9825420
Author: Lukasz Kurylo <Lukasz.Kurylo@gmail.com>
Date:   Wed Jun 10 07:55:31 2009 -0700

    DRI2 copyregion: don't wait for scanlines that won't happen
    
    In some configurations, it's possible to wait for a scanline outside of
    a given CRTC range.  Make sure that can't happen to fix multihead cases
    with dead space.
    
    Fixes fdo bug #22203.
    
    Signed-off-by: Lukasz Kurylo <Lukasz.Kurylo@gmail.com>

diff --git a/src/i830_dri.c b/src/i830_dri.c
index 9da1d40..c28f3ab 100644
--- a/src/i830_dri.c
+++ b/src/i830_dri.c
@@ -325,8 +325,10 @@ I830DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion,
 		load_scan_lines_pipe = MI_LOAD_SCAN_LINES_DISPLAY_PIPEB;
 	    }
 
-	    y1 = box->y1 - crtc->y;
-	    y2 = box->y2 - crtc->y;
+	    /* Make sure we don't wait for a scanline that will never occur */
+	    y1 = (crtcbox.y1 <= box->y1) ? box->y1 - crtcbox.y1 : 0;
+	    y2 = (box->y2 <= crtcbox.y2) ?
+		box->y2 - crtcbox.y1 : crtcbox.y2 - crtcbox.y1;
 
 	    BEGIN_BATCH(5);
 	    /* The documentation says that the LOAD_SCAN_LINES command

commit cda5561716891484aa6f1c4a234be8d88f17f659
Author: Zou Nan hai <nanhai.zou@intel.com>
Date:   Wed Jun 10 16:43:30 2009 +0800

      add missing files for previous commit

diff --git a/src/xvmc/shader/mc/addidct_igd.g4i b/src/xvmc/shader/mc/addidct_igd.g4i
new file mode 100644
index 0000000..56fa2af
--- /dev/null
+++ b/src/xvmc/shader/mc/addidct_igd.g4i
@@ -0,0 +1,117 @@
+/* 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
+   g84~g107:IDCT data                           */
+//mov (2) g31.0<1>UD g82.12<2,2,1>UW {align1};          //restore x and y
+mov (2) g31.0<1>UD g82.0<2,2,1>UD {align1};          //restore x and y
+
+and.nz (1) null g82.30<1,1,1>UB 0x1UW {align1};       //dct_type
+(f0) jmpi field_dct;
+
+add.sat (32) g58.0<2>UB g84.0<16,16,1>W g58.0<16,16,2>UB {align1 compr};
+add.sat (32) g60.0<2>UB g86.0<16,16,1>W g60.0<16,16,2>UB {align1 compr};
+add.sat (32) g62.0<2>UB g88.0<16,16,1>W g62.0<16,16,2>UB {align1 compr};
+add.sat (32) g64.0<2>UB g90.0<16,16,1>W g64.0<16,16,2>UB {align1 compr};
+add.sat (32) g66.0<2>UB g92.0<16,16,1>W g66.0<16,16,2>UB {align1 compr};
+add.sat (32) g68.0<2>UB g94.0<16,16,1>W g68.0<16,16,2>UB {align1 compr};
+add.sat (32) g70.0<2>UB g96.0<16,16,1>W g70.0<16,16,2>UB {align1 compr};
+add.sat (32) g72.0<2>UB g98.0<16,16,1>W g72.0<16,16,2>UB {align1 compr};
+
+add.sat (32) g74.0<2>UB g100.0<16,16,1>W g74.0<16,16,2>UB {align1 compr};
+add.sat (32) g76.0<2>UB g102.0<16,16,1>W g76.0<16,16,2>UB {align1 compr};
+add.sat (32) g78.0<2>UB g104.0<16,16,1>W g78.0<16,16,2>UB {align1 compr};
+add.sat (32) g80.0<2>UB g106.0<16,16,1>W g80.0<16,16,2>UB {align1 compr};
+jmpi write_back;
+
+field_dct:
+add.sat (16) g58.0<2>UB g84.0<16,16,1>W g58.0<16,16,2>UB {align1};
+add.sat (16) g59.0<2>UB g92.0<16,16,1>W g59.0<16,16,2>UB {align1};
+add.sat (16) g60.0<2>UB g85.0<16,16,1>W g60.0<16,16,2>UB {align1};
+add.sat (16) g61.0<2>UB g93.0<16,16,1>W g61.0<16,16,2>UB {align1};
+add.sat (16) g62.0<2>UB g86.0<16,16,1>W g62.0<16,16,2>UB {align1};
+add.sat (16) g63.0<2>UB g94.0<16,16,1>W g63.0<16,16,2>UB {align1};
+add.sat (16) g64.0<2>UB g87.0<16,16,1>W g64.0<16,16,2>UB {align1};
+add.sat (16) g65.0<2>UB g95.0<16,16,1>W g65.0<16,16,2>UB {align1};
+add.sat (16) g66.0<2>UB g88.0<16,16,1>W g66.0<16,16,2>UB {align1};
+add.sat (16) g67.0<2>UB g96.0<16,16,1>W g67.0<16,16,2>UB {align1};
+add.sat (16) g68.0<2>UB g89.0<16,16,1>W g68.0<16,16,2>UB {align1};
+add.sat (16) g69.0<2>UB g97.0<16,16,1>W g69.0<16,16,2>UB {align1};
+add.sat (16) g70.0<2>UB g90.0<16,16,1>W g70.0<16,16,2>UB {align1};
+add.sat (16) g71.0<2>UB g98.0<16,16,1>W g71.0<16,16,2>UB {align1};
+add.sat (16) g72.0<2>UB g91.0<16,16,1>W g72.0<16,16,2>UB {align1};
+add.sat (16) g73.0<2>UB g99.0<16,16,1>W g73.0<16,16,2>UB {align1};
+/*
+add.sat (16) g74.0<2>UB g100.0<16,16,1>W g74.0<16,16,2>UB {align1};
+add.sat (16) g75.0<2>UB g101.0<16,16,1>W g75.0<16,16,2>UB {align1};
+add.sat (16) g76.0<2>UB g102.0<16,16,1>W g76.0<16,16,2>UB {align1};
+add.sat (16) g77.0<2>UB g103.0<16,16,1>W g77.0<16,16,2>UB {align1};
+add.sat (16) g78.0<2>UB g104.0<16,16,1>W g78.0<16,16,2>UB {align1};
+add.sat (16) g79.0<2>UB g105.0<16,16,1>W g79.0<16,16,2>UB {align1};
+add.sat (16) g80.0<2>UB g106.0<16,16,1>W g80.0<16,16,2>UB {align1};
+add.sat (16) g81.0<2>UB g107.0<16,16,1>W g81.0<16,16,2>UB {align1};
+*/
+add (16) g100.0<1>W g100.0<16,16,1>W g74.0<16,16,2>UB {align1};
+add (16) g101.0<1>W g101.0<16,16,1>W g75.0<16,16,2>UB {align1};
+add (16) g102.0<1>W g102.0<16,16,1>W g76.0<16,16,2>UB {align1};
+add (16) g103.0<1>W g103.0<16,16,1>W g77.0<16,16,2>UB {align1};
+add (16) g104.0<1>W g104.0<16,16,1>W g78.0<16,16,2>UB {align1};
+add (16) g105.0<1>W g105.0<16,16,1>W g79.0<16,16,2>UB {align1};
+add (16) g106.0<1>W g106.0<16,16,1>W g80.0<16,16,2>UB {align1};
+add (16) g107.0<1>W g107.0<16,16,1>W g81.0<16,16,2>UB {align1};
+
+mov.sat (16) g74.0<2>UB g100.0<16,16,1>W {align1};
+mov.sat (16) g75.0<2>UB g101.0<16,16,1>W {align1};
+mov.sat (16) g76.0<2>UB g102.0<16,16,1>W {align1};
+mov.sat (16) g77.0<2>UB g103.0<16,16,1>W {align1};
+mov.sat (16) g78.0<2>UB g104.0<16,16,1>W {align1};
+mov.sat (16) g79.0<2>UB g105.0<16,16,1>W {align1};
+mov.sat (16) g80.0<2>UB g106.0<16,16,1>W {align1};
+mov.sat (16) g81.0<2>UB g107.0<16,16,1>W {align1};
+
+
+write_back:
+mov (1) g31.8<1>UD 0x00F000FUD {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};
+
+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
+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/mc/ipicture_igd.g4a b/src/xvmc/shader/mc/ipicture_igd.g4a
new file mode 100644
index 0000000..20c3d8e
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture_igd.g4a
@@ -0,0 +1,105 @@
+/*
+   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.sat (16) g33.0<2>UB g33.0<16,16,1>W {align1};
+mov.sat (16) g34.0<2>UB g34.0<16,16,1>W {align1};
+mov.sat (16) g35.0<2>UB g35.0<16,16,1>W {align1};
+mov.sat (16) g36.0<2>UB g36.0<16,16,1>W {align1};
+mov.sat (16) g37.0<2>UB g37.0<16,16,1>W {align1};
+mov.sat (16) g38.0<2>UB g38.0<16,16,1>W {align1};
+mov.sat (16) g39.0<2>UB g39.0<16,16,1>W {align1};
+mov.sat (16) g40.0<2>UB g40.0<16,16,1>W {align1};
+mov.sat (16) g41.0<2>UB g41.0<16,16,1>W {align1};
+mov.sat (16) g42.0<2>UB g42.0<16,16,1>W {align1};
+mov.sat (16) g43.0<2>UB g43.0<16,16,1>W {align1};
+mov.sat (16) g44.0<2>UB g44.0<16,16,1>W {align1};
+mov.sat (16) g45.0<2>UB g45.0<16,16,1>W {align1};
+mov.sat (16) g46.0<2>UB g46.0<16,16,1>W {align1};
+mov.sat (16) g47.0<2>UB g47.0<16,16,1>W {align1};
+mov.sat (16) g48.0<2>UB g48.0<16,16,1>W {align1};
+
+mov.sat (16) g49.0<2>UB g49.0<16,16,1>W {align1};
+mov.sat (16) g50.0<2>UB g50.0<16,16,1>W {align1};
+mov.sat (16) g51.0<2>UB g51.0<16,16,1>W {align1};
+mov.sat (16) g52.0<2>UB g52.0<16,16,1>W {align1};
+mov.sat (16) g53.0<2>UB g53.0<16,16,1>W {align1};
+mov.sat (16) g54.0<2>UB g54.0<16,16,1>W {align1};
+mov.sat (16) g55.0<2>UB g55.0<16,16,1>W {align1};
+mov.sat (16) g56.0<2>UB g56.0<16,16,1>W {align1};
+
+mov (1) g31.8<1>UD 0x00F000FUD {align1};
+
+and.nz (1) null g82.30<1,1,1>UB 0x1UW{align1};
+(f0) jmpi field_dct_y;
+
+mov (16) m1.0<1>UB  g33.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g34.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g35.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g36.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g37.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g38.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g39.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g40.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g41.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g42.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g43.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g44.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g45.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g46.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g47.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g48.0<16,16,2>UB {align1};
+jmpi write_back_y;
+
+field_dct_y:
+mov (16) m1.0<1>UB  g33.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g41.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g34.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g42.0<16,16,2>UB {align1};
+mov (16) m3.0<1>UB  g35.0<16,16,2>UB {align1};
+mov (16) m3.16<1>UB g43.0<16,16,2>UB {align1};
+mov (16) m4.0<1>UB  g36.0<16,16,2>UB {align1};
+mov (16) m4.16<1>UB g44.0<16,16,2>UB {align1};
+mov (16) m5.0<1>UB  g37.0<16,16,2>UB {align1};
+mov (16) m5.16<1>UB g45.0<16,16,2>UB {align1};
+mov (16) m6.0<1>UB  g38.0<16,16,2>UB {align1};
+mov (16) m6.16<1>UB g46.0<16,16,2>UB {align1};
+mov (16) m7.0<1>UB  g39.0<16,16,2>UB {align1};
+mov (16) m7.16<1>UB g47.0<16,16,2>UB {align1};
+mov (16) m8.0<1>UB  g40.0<16,16,2>UB {align1};
+mov (16) m8.16<1>UB g48.0<16,16,2>UB {align1};
+
+write_back_y:
+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.0<2,2,1>UD 1D {align1};
+
+mov (16) m1.0<1>UB  g49.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g50.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g51.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g52.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 (16) m1.0<1>UB  g53.0<16,16,2>UB {align1};
+mov (16) m1.16<1>UB g54.0<16,16,2>UB {align1};
+mov (16) m2.0<1>UB  g55.0<16,16,2>UB {align1};
+mov (16) m2.16<1>UB g56.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};
+
diff --git a/src/xvmc/shader/mc/ipicture_igd.g4b b/src/xvmc/shader/mc/ipicture_igd.g4b
new file mode 100644
index 0000000..c0947f7
--- /dev/null
+++ b/src/xvmc/shader/mc/ipicture_igd.g4b
@@ -0,0 +1,75 @@
+   { 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 },
+   { 0x80800001, 0x442001b1, 0x00b10420, 0x00000000 },
+   { 0x80800001, 0x444001b1, 0x00b10440, 0x00000000 },
+   { 0x80800001, 0x446001b1, 0x00b10460, 0x00000000 },
+   { 0x80800001, 0x448001b1, 0x00b10480, 0x00000000 },
+   { 0x80800001, 0x44a001b1, 0x00b104a0, 0x00000000 },
+   { 0x80800001, 0x44c001b1, 0x00b104c0, 0x00000000 },
+   { 0x80800001, 0x44e001b1, 0x00b104e0, 0x00000000 },
+   { 0x80800001, 0x450001b1, 0x00b10500, 0x00000000 },
+   { 0x80800001, 0x452001b1, 0x00b10520, 0x00000000 },
+   { 0x80800001, 0x454001b1, 0x00b10540, 0x00000000 },
+   { 0x80800001, 0x456001b1, 0x00b10560, 0x00000000 },
+   { 0x80800001, 0x458001b1, 0x00b10580, 0x00000000 },
+   { 0x80800001, 0x45a001b1, 0x00b105a0, 0x00000000 },
+   { 0x80800001, 0x45c001b1, 0x00b105c0, 0x00000000 },
+   { 0x80800001, 0x45e001b1, 0x00b105e0, 0x00000000 },
+   { 0x80800001, 0x460001b1, 0x00b10600, 0x00000000 },
+   { 0x80800001, 0x462001b1, 0x00b10620, 0x00000000 },
+   { 0x80800001, 0x464001b1, 0x00b10640, 0x00000000 },
+   { 0x80800001, 0x466001b1, 0x00b10660, 0x00000000 },
+   { 0x80800001, 0x468001b1, 0x00b10680, 0x00000000 },
+   { 0x80800001, 0x46a001b1, 0x00b106a0, 0x00000000 },
+   { 0x80800001, 0x46c001b1, 0x00b106c0, 0x00000000 },
+   { 0x80800001, 0x46e001b1, 0x00b106e0, 0x00000000 },
+   { 0x80800001, 0x470001b1, 0x00b10700, 0x00000000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x000f000f },
+   { 0x02000005, 0x20002e3c, 0x00210a5e, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000011 },
+   { 0x00800001, 0x20200232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b20560, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20600, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000010 },
+   { 0x00800001, 0x20200232, 0x00b20420, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20520, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20440, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20540, 0x00000000 },
+   { 0x00800001, 0x20600232, 0x00b20460, 0x00000000 },
+   { 0x00800001, 0x20700232, 0x00b20560, 0x00000000 },
+   { 0x00800001, 0x20800232, 0x00b20480, 0x00000000 },
+   { 0x00800001, 0x20900232, 0x00b20580, 0x00000000 },
+   { 0x00800001, 0x20a00232, 0x00b204a0, 0x00000000 },
+   { 0x00800001, 0x20b00232, 0x00b205a0, 0x00000000 },
+   { 0x00800001, 0x20c00232, 0x00b204c0, 0x00000000 },
+   { 0x00800001, 0x20d00232, 0x00b205c0, 0x00000000 },
+   { 0x00800001, 0x20e00232, 0x00b204e0, 0x00000000 },
+   { 0x00800001, 0x20f00232, 0x00b205e0, 0x00000000 },
+   { 0x00800001, 0x21000232, 0x00b20500, 0x00000000 },
+   { 0x00800001, 0x21100232, 0x00b20600, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 },
+   { 0x00000001, 0x23e80061, 0x00000000, 0x00070007 },
+   { 0x00200008, 0x23e01c21, 0x00450a40, 0x00000001 },
+   { 0x00800001, 0x20200232, 0x00b20620, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b20640, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b20660, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20680, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 },
+   { 0x00800001, 0x20200232, 0x00b206a0, 0x00000000 },
+   { 0x00800001, 0x20300232, 0x00b206c0, 0x00000000 },
+   { 0x00800001, 0x20400232, 0x00b206e0, 0x00000000 },
+   { 0x00800001, 0x20500232, 0x00b20700, 0x00000000 },
+   { 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 },
+   { 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 },
diff --git a/src/xvmc/shader/mc/lib_igd.g4a b/src/xvmc/shader/mc/lib_igd.g4a
new file mode 100644
index 0000000..649619f
--- /dev/null
+++ b/src/xvmc/shader/mc/lib_igd.g4a
@@ -0,0 +1,133 @@
+/* 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
+   g84~g107: IDCT data after idct
+   g82:    thread payload backup
+   g126.8:   ip before jump to the lib
+*/
+jmpi MOTION_FRAME_Y;
+jmpi MOTION_FRAME_UV;
+jmpi MOTION_FIELD_Y;
+jmpi MOTION_FIELD_UV;
+jmpi ADD_IDCT;
+
+mov (16) g84.0<1>W g33.0<16,16,1>W {align1};
+mov (16) g85.0<1>W g34.0<16,16,1>W {align1};
+mov (16) g86.0<1>W g35.0<16,16,1>W {align1};
+mov (16) g87.0<1>W g36.0<16,16,1>W {align1};
+mov (16) g88.0<1>W g37.0<16,16,1>W {align1};
+mov (16) g89.0<1>W g38.0<16,16,1>W {align1};
+mov (16) g90.0<1>W g39.0<16,16,1>W {align1};
+mov (16) g91.0<1>W g40.0<16,16,1>W {align1};
+mov (16) g92.0<1>W g41.0<16,16,1>W {align1};
+mov (16) g93.0<1>W g42.0<16,16,1>W {align1};
+mov (16) g94.0<1>W g43.0<16,16,1>W {align1};
+mov (16) g95.0<1>W g44.0<16,16,1>W {align1};
+mov (16) g96.0<1>W g45.0<16,16,1>W {align1};
+mov (16) g97.0<1>W g46.0<16,16,1>W {align1};
+mov (16) g98.0<1>W g47.0<16,16,1>W {align1};
+mov (16) g99.0<1>W g48.0<16,16,1>W {align1};
+
+mov (16) g100.0<1>W g49.0<16,16,1>W {align1};
+mov (16) g101.0<1>W g50.0<16,16,1>W {align1};
+mov (16) g102.0<1>W g51.0<16,16,1>W {align1};
+mov (16) g103.0<1>W g52.0<16,16,1>W {align1};
+mov (16) g104.0<1>W g53.0<16,16,1>W {align1};
+mov (16) g105.0<1>W g54.0<16,16,1>W {align1};
+mov (16) g106.0<1>W g55.0<16,16,1>W {align1};
+mov (16) g107.0<1>W g56.0<16,16,1>W {align1};
+
+//Y0
+and.nz (1) null g82.12<1,1,1>UW 0x20UW {align1};
+(f0) jmpi block_y1;
+mov (8) g84.0<1>W 0W {align1};
+mov (8) g85.0<1>W 0W {align1};
+mov (8) g86.0<1>W 0W {align1};
+mov (8) g87.0<1>W 0W {align1};
+mov (8) g88.0<1>W 0W {align1};
+mov (8) g89.0<1>W 0W {align1};
+mov (8) g90.0<1>W 0W {align1};
+mov (8) g91.0<1>W 0W {align1};
+
+//Y1
+block_y1:
+and.nz (1) null g82.12<1,1,1>UW 0x10UW {align1};
+(f0) jmpi block_y2;
+mov (8) g84.16<1>W 0W {align1};
+mov (8) g85.16<1>W 0W {align1};
+mov (8) g86.16<1>W 0W {align1};
+mov (8) g87.16<1>W 0W {align1};
+mov (8) g88.16<1>W 0W {align1};
+mov (8) g89.16<1>W 0W {align1};
+mov (8) g90.16<1>W 0W {align1};
+mov (8) g91.16<1>W 0W {align1};
+
+//Y2
+block_y2:
+and.nz (1) null g82.12<1,1,1>UW 0x08UW {align1};
+(f0) jmpi block_y3;
+mov (8) g92.0<1>W 0W {align1};
+mov (8) g93.0<1>W 0W {align1};
+mov (8) g94.0<1>W 0W {align1};
+mov (8) g95.0<1>W 0W {align1};
+mov (8) g96.0<1>W 0W {align1};
+mov (8) g97.0<1>W 0W {align1};
+mov (8) g98.0<1>W 0W {align1};
+mov (8) g99.0<1>W 0W {align1};
+
+//Y3
+block_y3:
+and.nz (1) null g82.12<1,1,1>UW 0x04UW {align1};
+(f0) jmpi block_u;
+mov (8) g92.16<1>W 0W {align1};
+mov (8) g93.16<1>W 0W {align1};
+mov (8) g94.16<1>W 0W {align1};
+mov (8) g95.16<1>W 0W {align1};
+mov (8) g96.16<1>W 0W {align1};
+mov (8) g97.16<1>W 0W {align1};
+mov (8) g98.16<1>W 0W {align1};
+mov (8) g99.16<1>W 0W {align1};
+
+//U
+block_u:
+and.nz (1) null g82.12<1,1,1>UW 0x02UW {align1};
+(f0) jmpi block_v;
+mov (16) g100.0<1>W 0W {align1};
+mov (16) g101.0<1>W 0W {align1};
+mov (16) g102.0<1>W 0W {align1};
+mov (16) g103.0<1>W 0W {align1};
+
+//V
+block_v:
+and.nz (1) null g82.12<1,1,1>UW 0x01UW {align1};
+(f0) jmpi out;
+mov (16) g104.0<1>W 0W {align1};
+mov (16) g105.0<1>W 0W {align1};
+mov (16) g106.0<1>W 0W {align1};
+mov (16) g107.0<1>W 0W {align1};
+
+out:
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FRAME_Y:
+include(`motion_frame_y_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FRAME_UV:
+include(`motion_frame_uv_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FIELD_Y:
+include(`motion_field_y_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+MOTION_FIELD_UV:
+include(`motion_field_uv_igd.g4i')
+add (1) ip g126.8<1,1,1>UD 0x20UD {align1};            //jump back
+
+ADD_IDCT:
+include(`addidct_igd.g4i')
diff --git a/src/xvmc/shader/mc/lib_igd.g4b b/src/xvmc/shader/mc/lib_igd.g4b
new file mode 100644
index 0000000..0e8fe01
--- /dev/null
+++ b/src/xvmc/shader/mc/lib_igd.g4b
@@ -0,0 +1,558 @@
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000051 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000f0 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000000fc },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x0000016f },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x000001da },
+   { 0x00800001, 0x2a8001ad, 0x00b10420, 0x00000000 },
+   { 0x00800001, 0x2aa001ad, 0x00b10440, 0x00000000 },
+   { 0x00800001, 0x2ac001ad, 0x00b10460, 0x00000000 },
+   { 0x00800001, 0x2ae001ad, 0x00b10480, 0x00000000 },
+   { 0x00800001, 0x2b0001ad, 0x00b104a0, 0x00000000 },
+   { 0x00800001, 0x2b2001ad, 0x00b104c0, 0x00000000 },
+   { 0x00800001, 0x2b4001ad, 0x00b104e0, 0x00000000 },
+   { 0x00800001, 0x2b6001ad, 0x00b10500, 0x00000000 },
+   { 0x00800001, 0x2b8001ad, 0x00b10520, 0x00000000 },
+   { 0x00800001, 0x2ba001ad, 0x00b10540, 0x00000000 },
+   { 0x00800001, 0x2bc001ad, 0x00b10560, 0x00000000 },
+   { 0x00800001, 0x2be001ad, 0x00b10580, 0x00000000 },
+   { 0x00800001, 0x2c0001ad, 0x00b105a0, 0x00000000 },
+   { 0x00800001, 0x2c2001ad, 0x00b105c0, 0x00000000 },
+   { 0x00800001, 0x2c4001ad, 0x00b105e0, 0x00000000 },
+   { 0x00800001, 0x2c6001ad, 0x00b10600, 0x00000000 },
+   { 0x00800001, 0x2c8001ad, 0x00b10620, 0x00000000 },
+   { 0x00800001, 0x2ca001ad, 0x00b10640, 0x00000000 },
+   { 0x00800001, 0x2cc001ad, 0x00b10660, 0x00000000 },
+   { 0x00800001, 0x2ce001ad, 0x00b10680, 0x00000000 },
+   { 0x00800001, 0x2d0001ad, 0x00b106a0, 0x00000000 },
+   { 0x00800001, 0x2d2001ad, 0x00b106c0, 0x00000000 },
+   { 0x00800001, 0x2d4001ad, 0x00b106e0, 0x00000000 },
+   { 0x00800001, 0x2d6001ad, 0x00b10700, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00200020 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2a8001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2aa001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ac001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ae001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b0001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b2001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b4001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b6001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00100010 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2a9001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ab001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ad001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2af001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b1001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b3001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b5001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2b7001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00080008 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2b8001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2ba001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bc001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2be001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c0001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c2001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c4001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c6001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00040004 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00600001, 0x2b9001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bb001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bd001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2bf001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c1001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c3001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c5001ed, 0x00000000, 0x00000000 },
+   { 0x00600001, 0x2c7001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00020002 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x2c8001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2ca001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2cc001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2ce001ed, 0x00000000, 0x00000000 },
+   { 0x02000005, 0x20002d3c, 0x00210a4c, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800001, 0x2d0001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d2001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d4001ed, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x2d6001ed, 0x00000000, 0x00000000 },
+   { 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000067 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000049 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000007 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0000001f },
+   { 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000006 },
+   { 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 },
+   { 0x00a02008, 0x27402d29, 0x00b10740, 0x00020002 },
+   { 0x00a02008, 0x27802d29, 0x00b10780, 0x00020002 },
+   { 0x00a02008, 0x27c02d29, 0x00b107c0, 0x00020002 },
+   { 0x00a02008, 0x28002d29, 0x00b10800, 0x00020002 },
+   { 0x00a02008, 0x28402d29, 0x00b10840, 0x00020002 },
+   { 0x00a02008, 0x28802d29, 0x00b10880, 0x00020002 },
+   { 0x00a02008, 0x28c02d29, 0x00b108c0, 0x00020002 },
+   { 0x00a02008, 0x29002d29, 0x00b10900, 0x00020002 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000051 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000004 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000003 },
+   { 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00000040, 0x24040c21, 0x00210404, 0x00000008 },
+   { 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 },
+   { 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 },
+   { 0x00800042, 0x27604629, 0x00b104e0, 0x00b104e1 },
+   { 0x00800042, 0x27804629, 0x00b10500, 0x00b10501 },
+   { 0x00800042, 0x27a04629, 0x00b10520, 0x00b10521 },
+   { 0x00800042, 0x27c04629, 0x00b10540, 0x00b10541 },
+   { 0x00800042, 0x27e04629, 0x00b10560, 0x00b10561 },
+   { 0x00800042, 0x28004629, 0x00b10580, 0x00b10581 },
+   { 0x00800042, 0x28204629, 0x00b105a0, 0x00b105a1 },
+   { 0x00800042, 0x28404629, 0x00b105c0, 0x00b105c1 },
+   { 0x00800042, 0x28604629, 0x00b105e0, 0x00b105e1 },
+   { 0x00800042, 0x28804629, 0x00b10600, 0x00b10601 },
+   { 0x00800042, 0x28a04629, 0x00b10620, 0x00b10621 },
+   { 0x00800042, 0x28c04629, 0x00b10640, 0x00b10641 },
+   { 0x00800042, 0x28e04629, 0x00b10660, 0x00b10661 },
+   { 0x00800042, 0x29004629, 0x00b10680, 0x00b10681 },
+   { 0x00800042, 0x29204629, 0x00b106a0, 0x00b106a1 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000036 },
+   { 0x00000040, 0x22000c00, 0x00210200, 0x00000002 },
+   { 0x01000005, 0x20000d3c, 0x00218000, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000021 },
+   { 0x00000001, 0x24080061, 0x00000000, 0x0007001f },
+   { 0x02000005, 0x20002d3c, 0x00210410, 0x00010001 },


Reply to: