summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2008-09-28 11:18:40 +0800
committerZou Nan hai <nanhai.zou@intel.com>2008-09-28 11:18:40 +0800
commitbaec75a56d91546443a2e04812face4997bc764b (patch)
treec703b4d0b46533ac564f690a21c426bda09cadb8
parent3c2f7d84785954eb91341f85abb175f299b2797d (diff)
[965-xvmc] 965q indirect media data workaround
-rw-r--r--src/common.h1
-rw-r--r--src/i965_hwmc.c1
-rw-r--r--src/i965_hwmc.h1
-rw-r--r--src/xvmc/block_clear.g4i52
-rw-r--r--src/xvmc/field_backward.g4b50
-rw-r--r--src/xvmc/field_backward_igd.g4b50
-rw-r--r--src/xvmc/field_f_b.g4b50
-rw-r--r--src/xvmc/field_f_b_igd.g4b50
-rw-r--r--src/xvmc/field_forward.g4b50
-rw-r--r--src/xvmc/field_forward_igd.g4b50
-rw-r--r--src/xvmc/frame_backward.g4b50
-rw-r--r--src/xvmc/frame_backward_igd.g4b50
-rw-r--r--src/xvmc/frame_f_b.g4b50
-rw-r--r--src/xvmc/frame_f_b_igd.g4b50
-rw-r--r--src/xvmc/frame_forward.g4b50
-rw-r--r--src/xvmc/frame_forward_igd.g4b50
-rw-r--r--src/xvmc/i965_xvmc.c26
-rw-r--r--src/xvmc/ipicture.g4a52
-rw-r--r--src/xvmc/ipicture.g4b50
19 files changed, 773 insertions, 10 deletions
diff --git a/src/common.h b/src/common.h
index 1765bb51..8eb19162 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 9352690c..53289853 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 1208daa5..8e2a5345 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 f55dd268..ce12f3b5 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 bf87a004..cce7d454 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 ed0bc975..7382a872 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 41e5ea6d..4a1eb4be 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 62350ae1..6477d066 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 ab244ff8..3514c868 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 a4d5ab2d..6d1dee5c 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 c3b064d4..980ad62f 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 a2e00cc2..dbb13205 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 34da5fac..760cae14 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 67011906..f838d7b4 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 b680cf34..efbd20c7 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 0205dd2f..9356180e 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 11391454..226913b4 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 1661cf56..afd5bc3d 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 f9101975..10be527f 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 },