xf86-video-intel: Branch '965-xvmc' - src/common.h src/i965_hwmc.c src/i965_hwmc.h src/xvmc/block_clear.g4i src/xvmc/field_backward.g4b src/xvmc/field_backward_igd.g4b src/xvmc/field_f_b.g4b src/xvmc/field_f_b_igd.g4b src/xvmc/field_forward.g4b src/xvmc/field_forward_igd.g4b src/xvmc/frame_backward.g4b src/xvmc/frame_backward_igd.g4b src/xvmc/frame_f_b.g4b src/xvmc/frame_f_b_igd.g4b src/xvmc/frame_forward.g4b src/xvmc/frame_forward_igd.g4b src/xvmc/i965_xvmc.c src/xvmc/ipicture.g4a src/xvmc/ipicture.g4b

Nan hai Zou znh at kemper.freedesktop.org
Sat Sep 27 19:38:05 PDT 2008


 src/common.h                    |    1 
 src/i965_hwmc.c                 |    1 
 src/i965_hwmc.h                 |    1 
 src/xvmc/block_clear.g4i        |   52 ++++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_backward.g4b     |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_backward_igd.g4b |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_f_b.g4b          |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_f_b_igd.g4b      |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_forward.g4b      |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/field_forward_igd.g4b  |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_backward.g4b     |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_backward_igd.g4b |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_f_b.g4b          |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_f_b_igd.g4b      |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_forward.g4b      |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/frame_forward_igd.g4b  |   50 ++++++++++++++++++++++++++++++++++++++
 src/xvmc/i965_xvmc.c            |   26 ++++++++++++--------
 src/xvmc/ipicture.g4a           |   52 ++++++++++++++++++++++++++++++++++++++++
 src/xvmc/ipicture.g4b           |   50 ++++++++++++++++++++++++++++++++++++++
 19 files changed, 773 insertions(+), 10 deletions(-)

New commits:
commit baec75a56d91546443a2e04812face4997bc764b
Author: Zou Nan hai <nanhai.zou at intel.com>
Date:   Sun Sep 28 11:18:40 2008 +0800

      [965-xvmc] 965q indirect media data workaround

diff --git a/src/common.h b/src/common.h
index 1765bb5..8eb1916 100644
--- a/src/common.h
+++ b/src/common.h
@@ -355,6 +355,7 @@ extern int I810_DEBUG;
 #define IS_I945G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I945_G)
 #define IS_I945GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I945_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I945_GME)
 #define IS_IGD_GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_IGD_GM)
+#define IS_965_Q(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q)
 #define IS_G4X(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_IGD_E_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G45_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_Q45_G)
 #define IS_I965GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GME)
 #define IS_I965G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_G35_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_Q || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I946_GZ || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GM || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I965_GME || IS_IGD_GM(pI810) || IS_G4X(pI810))
diff --git a/src/i965_hwmc.c b/src/i965_hwmc.c
index 9352690..5328985 100644
--- a/src/i965_hwmc.c
+++ b/src/i965_hwmc.c
@@ -125,6 +125,7 @@ static int create_context(ScrnInfoPtr pScrn,
 	}
 
 	private_context->is_igd_gm = IS_IGD_GM(I830);
+	private_context->is_965_q = IS_965_Q(I830);
 	private_context->comm.type = xvmc_driver->flag;
 	private_context->comm.sarea_size = driinfo->SAREASize;
 	private_context->comm.batchbuffer.offset = xvmc_driver->batch->offset;
diff --git a/src/i965_hwmc.h b/src/i965_hwmc.h
index 1208daa..8e2a534 100644
--- a/src/i965_hwmc.h
+++ b/src/i965_hwmc.h
@@ -21,4 +21,5 @@ struct i965_xvmc_context {
     struct 	drm_memory_block blocks;
     struct 	i965_xvmc_surface *surfaces[I965_MAX_SURFACES];
     unsigned    int is_igd_gm:1;
+    unsigned    int is_965_q:1;
 };
diff --git a/src/xvmc/block_clear.g4i b/src/xvmc/block_clear.g4i
index f55dd26..ce12f3b 100644
--- a/src/xvmc/block_clear.g4i
+++ b/src/xvmc/block_clear.g4i
@@ -25,6 +25,58 @@
  *
  */
 
+and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
+(f0) jmpi direct_idct;
+add (1) g2.8<1>UD g76.8<1,1,1>UD 0UD{align1};
+send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+direct_idct:
+
 and.nz (1) null g76.12<1,1,1>UW 0x20UW {align1};
 (f0) jmpi next_block;
 mov (8) g3.0<1>UW 0UW {align1}; 
diff --git a/src/xvmc/field_backward.g4b b/src/xvmc/field_backward.g4b
index bf87a00..cce7d45 100644
--- a/src/xvmc/field_backward.g4b
+++ b/src/xvmc/field_backward.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/field_backward_igd.g4b b/src/xvmc/field_backward_igd.g4b
index ed0bc97..7382a87 100644
--- a/src/xvmc/field_backward_igd.g4b
+++ b/src/xvmc/field_backward_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/field_f_b.g4b b/src/xvmc/field_f_b.g4b
index 41e5ea6..4a1eb4b 100644
--- a/src/xvmc/field_f_b.g4b
+++ b/src/xvmc/field_f_b.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/field_f_b_igd.g4b b/src/xvmc/field_f_b_igd.g4b
index 62350ae..6477d06 100644
--- a/src/xvmc/field_f_b_igd.g4b
+++ b/src/xvmc/field_f_b_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/field_forward.g4b b/src/xvmc/field_forward.g4b
index ab244ff..3514c86 100644
--- a/src/xvmc/field_forward.g4b
+++ b/src/xvmc/field_forward.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/field_forward_igd.g4b b/src/xvmc/field_forward_igd.g4b
index a4d5ab2..6d1dee5 100644
--- a/src/xvmc/field_forward_igd.g4b
+++ b/src/xvmc/field_forward_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_backward.g4b b/src/xvmc/frame_backward.g4b
index c3b064d..980ad62 100644
--- a/src/xvmc/frame_backward.g4b
+++ b/src/xvmc/frame_backward.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_backward_igd.g4b b/src/xvmc/frame_backward_igd.g4b
index a2e00cc..dbb1320 100644
--- a/src/xvmc/frame_backward_igd.g4b
+++ b/src/xvmc/frame_backward_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_f_b.g4b b/src/xvmc/frame_f_b.g4b
index 34da5fa..760cae1 100644
--- a/src/xvmc/frame_f_b.g4b
+++ b/src/xvmc/frame_f_b.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_f_b_igd.g4b b/src/xvmc/frame_f_b_igd.g4b
index 6701190..f838d7b 100644
--- a/src/xvmc/frame_f_b_igd.g4b
+++ b/src/xvmc/frame_f_b_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_forward.g4b b/src/xvmc/frame_forward.g4b
index b680cf3..efbd20c 100644
--- a/src/xvmc/frame_forward.g4b
+++ b/src/xvmc/frame_forward.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/frame_forward_igd.g4b b/src/xvmc/frame_forward_igd.g4b
index 0205dd2..9356180 100644
--- a/src/xvmc/frame_forward_igd.g4b
+++ b/src/xvmc/frame_forward_igd.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x29800021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210988, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x02000005, 0x20002d3c, 0x0021098c, 0x00200020 },
    { 0x00010020, 0x34001c00, 0x00001400, 0x00000008 },
    { 0x00600001, 0x20600169, 0x00000000, 0x00000000 },
diff --git a/src/xvmc/i965_xvmc.c b/src/xvmc/i965_xvmc.c
index 1139145..226913b 100644
--- a/src/xvmc/i965_xvmc.c
+++ b/src/xvmc/i965_xvmc.c
@@ -125,6 +125,7 @@ struct media_state {
     unsigned long surface_offsets[MAX_SURFACE_NUM];
     unsigned long binding_table_offset;
     unsigned int  is_igd_gm:1;
+    unsigned int  is_965_q:1;
 };
 struct media_state media_state;
 
@@ -358,12 +359,17 @@ static void send_media_object(XvMCMacroBlock *mb, int offset, enum interface int
     BEGIN_BATCH(13);
     OUT_BATCH(BRW_MEDIA_OBJECT|11);
     OUT_BATCH(interface);
-    OUT_BATCH(6*128);
-    OUT_BATCH(offset);
+    if (media_state.is_965_q) {
+	OUT_BATCH(0);
+	OUT_BATCH(0);
+    }else {
+	OUT_BATCH(6*128);
+	OUT_BATCH(offset);
+    }
     
     OUT_BATCH(mb->x<<4);                 //g1.0
     OUT_BATCH(mb->y<<4);
-    OUT_BATCH(2*(mb->index<<6));               //g1.8
+    OUT_BATCH(offset);               //g1.8
     OUT_BATCH_SHORT(mb->coded_block_pattern);  //g1.12
     OUT_BATCH_SHORT(mb->PMV[0][0][0]);         //g1.14
     OUT_BATCH_SHORT(mb->PMV[0][0][1]);         //g1.16
@@ -377,7 +383,10 @@ static void send_media_object(XvMCMacroBlock *mb, int offset, enum interface int
     OUT_BATCH_CHAR(mb->dct_type);              //g1.30
     OUT_BATCH_CHAR(mb->motion_vertical_field_select);//g1.31
     
-    OUT_BATCH(0xffffffff);
+    if (media_state.is_965_q) 
+	OUT_BATCH(0x0);
+    else
+	OUT_BATCH(0xffffffff);
     ADVANCE_BATCH();
 }
 
@@ -634,7 +643,8 @@ static Status render_surface(Display *display,
     }
 
     {
-	int block_offset = i965_ctx->blocks.offset;
+	int block_offset;
+	block_offset = media_state.is_965_q?0:i965_ctx->blocks.offset;
 	LOCK_HARDWARE(intel_ctx->hw_context);
 	state_base_address(block_offset);
 	flush();	
@@ -652,14 +662,12 @@ static Status render_surface(Display *display,
 
 	    if (mb->macroblock_type & XVMC_MB_TYPE_INTRA) {
 		send_media_object(mb, block_offset, INTRA_INTERFACE);
-		//send_media_object(mb, block_offset, NULL_INTERFACE);
 	    } else {
 		if (((mb->motion_type & 3) == XVMC_PREDICTION_FRAME)) {
 		    if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_FORWARD))
 		    {
 			if (((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)))
 			    send_media_object(mb, block_offset, F_B_INTERFACE);
-			//	send_media_object(mb, block_offset, NULL_INTERFACE);
 			else
 			    send_media_object(mb, block_offset, FORWARD_INTERFACE);
 		    } else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD))
@@ -671,15 +679,12 @@ static Status render_surface(Display *display,
 		    {
 			if (((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD)))	
 			    send_media_object(mb, block_offset, FIELD_F_B_INTERFACE);
-			    //send_media_object(mb, block_offset, NULL_INTERFACE);
 			else 
 
 			    send_media_object(mb, block_offset, FIELD_FORWARD_INTERFACE);
-			    //send_media_object(mb, block_offset, NULL_INTERFACE);
 		    } else if ((mb->macroblock_type&XVMC_MB_TYPE_MOTION_BACKWARD))
 		    {
 			send_media_object(mb, block_offset, FIELD_BACKWARD_INTERFACE);
-			//send_media_object(mb, block_offset, NULL_INTERFACE);
 		    }
 		}else {
 		    send_media_object(mb, block_offset, DUAL_PRIME_INTERFACE);
@@ -727,6 +732,7 @@ static Status create_context(Display *display, XvMCContext *context,
 	media_state.state_base = i965_ctx->static_buffer.offset;
 	media_state.state_ptr = i965_ctx->static_buffer.ptr;
 	media_state.is_igd_gm = i965_ctx->is_igd_gm;
+	media_state.is_965_q = i965_ctx->is_965_q;
 	media_state.binding_table_entry_count = MAX_SURFACE_NUM;
 	calc_state_layouts(&media_state);
 	vfe_state(&media_state);
diff --git a/src/xvmc/ipicture.g4a b/src/xvmc/ipicture.g4a
index 1661cf5..afd5bc3 100644
--- a/src/xvmc/ipicture.g4a
+++ b/src/xvmc/ipicture.g4a
@@ -27,6 +27,58 @@
  *
  */
 mov (8) g115.0<1>UD g1.0<8,8,1>UD {align1};
+
+and.nz (1) null g2.0<1,1,1>UD 0x1UD{align1};
+(f0) jmpi direct_idct;
+add (1) g2.8<1>UD g115.8<1,1,1>UD 0UD{align1};
+send (16) 0 g3.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g4.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g5.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g6.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g7.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g8.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g9.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g10.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g11.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g12.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g13.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g14.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g15.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g16.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g17.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g18.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g19.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g20.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g21.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g22.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g23<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g24.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g25.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+add (1) g2.8<1>UD g2.8<1,1,1>UD 32UD {align1};
+send (16) 0 g26.0<1>UD g2<16,16,1>UD read(3, 0, 2, 0) mlen 1 rlen 1 { align1 };
+direct_idct:
 mov (1) g1.8<1>UD 0x00F000FUD {align1};
 mov.sat (16) g3.0<2>UB g3.0<16,16,1>W {align1};
 mov.sat (16) g4.0<2>UB g4.0<16,16,1>W {align1};
diff --git a/src/xvmc/ipicture.g4b b/src/xvmc/ipicture.g4b
index f910197..10be527 100644
--- a/src/xvmc/ipicture.g4b
+++ b/src/xvmc/ipicture.g4b
@@ -1,4 +1,54 @@
    { 0x00600001, 0x2e600021, 0x008d0020, 0x00000000 },
+   { 0x02000005, 0x20000c3c, 0x00210040, 0x00000001 },
+   { 0x00010020, 0x34001c00, 0x00001400, 0x00000030 },
+   { 0x00000040, 0x20480c21, 0x00210e68, 0x00000000 },
+   { 0x00800031, 0x20601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x20e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x21e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22401c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22601c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22801c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22a01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22c01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x22e01c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23001c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23201c21, 0x00b10040, 0x04110203 },
+   { 0x00000040, 0x20480c21, 0x00210048, 0x00000020 },
+   { 0x00800031, 0x23401c21, 0x00b10040, 0x04110203 },
    { 0x00000001, 0x20280061, 0x00000000, 0x000f000f },
    { 0x80800001, 0x406001b1, 0x00b10060, 0x00000000 },
    { 0x80800001, 0x408001b1, 0x00b10080, 0x00000000 },


More information about the xorg-commit mailing list