Add MPEG2 VME shader files for IVB
authorLi Xiaowei <xiaowei.a.li@intel.com>
Fri, 21 Dec 2012 06:27:01 +0000 (14:27 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Thu, 17 Jan 2013 05:08:39 +0000 (13:08 +0800)
Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
src/shaders/vme/Makefile.am
src/shaders/vme/mpeg2_inter_frame.g7a [new file with mode: 0644]
src/shaders/vme/mpeg2_inter_frame.g7b [new file with mode: 0644]
src/shaders/vme/mpeg2_inter_frame.gen7.asm [new file with mode: 0644]
src/shaders/vme/vme7_mpeg2.inc [new file with mode: 0644]

index ca74e40..5ccf6d2 100644 (file)
@@ -6,9 +6,9 @@ INTEL_G6A       = batchbuffer.g6a intra_frame.g6a inter_frame.g6a
 INTEL_GEN6_INC = batchbuffer.inc vme.inc
 INTEL_GEN6_ASM = $(INTEL_G6A:%.g6a=%.gen6.asm)
 
-INTEL_G7B      = batchbuffer.g7b intra_frame.g7b inter_frame.g7b
-INTEL_G7A      = batchbuffer.g7a intra_frame.g7a inter_frame.g7a
-INTEL_GEN7_INC = batchbuffer.inc vme.inc
+INTEL_G7B      = batchbuffer.g7b intra_frame.g7b inter_frame.g7b mpeg2_inter_frame.g7b
+INTEL_G7A      = batchbuffer.g7a intra_frame.g7a inter_frame.g7a mpeg2_inter_frame.g7a
+INTEL_GEN7_INC = batchbuffer.inc vme.inc vme7_mpeg2.inc
 INTEL_GEN7_ASM = $(INTEL_G7A:%.g7a=%.gen7.asm)
 
 INTEL_G75B     = batchbuffer.g75b intra_frame_haswell.g75b inter_frame_haswell.g75b mpeg2_inter_frame_haswell.g75b
diff --git a/src/shaders/vme/mpeg2_inter_frame.g7a b/src/shaders/vme/mpeg2_inter_frame.g7a
new file mode 100644 (file)
index 0000000..937ea9b
--- /dev/null
@@ -0,0 +1,3 @@
+#include "vme.inc"
+#include "vme7_mpeg2.inc"
+#include "inter_frame.asm"
diff --git a/src/shaders/vme/mpeg2_inter_frame.g7b b/src/shaders/vme/mpeg2_inter_frame.g7b
new file mode 100644 (file)
index 0000000..398c288
--- /dev/null
@@ -0,0 +1,98 @@
+   { 0x00800001, 0x24000061, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x24400061, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x24600061, 0x00000000, 0x00000000 },
+   { 0x00200009, 0x24002e25, 0x004500a0, 0x00040004 },
+   { 0x00000040, 0x24003ca5, 0x00000400, 0xfff8fff8 },
+   { 0x00000040, 0x24043ca5, 0x00000404, 0xffffffff },
+   { 0x00000001, 0x240800e1, 0x00000000, 0x0000001f },
+   { 0x00000001, 0x24140231, 0x00000014, 0x00000000 },
+   { 0x00200009, 0x24202e25, 0x004500a0, 0x00040004 },
+   { 0x00000040, 0x24203ca5, 0x00000420, 0xfffcfffc },
+   { 0x00000001, 0x242800e1, 0x00000000, 0x000f0003 },
+   { 0x00000001, 0x24340231, 0x00000014, 0x00000000 },
+   { 0x00200009, 0x24482e29, 0x004500a0, 0x00040004 },
+   { 0x00000001, 0x244001ed, 0x00000000, 0xfff0fff0 },
+   { 0x00000001, 0x244201ed, 0x00000000, 0xfff4fff4 },
+   { 0x00000001, 0x244c0061, 0x00000000, 0x7e203000 },
+   { 0x00000001, 0x24540231, 0x00000014, 0x00000000 },
+   { 0x00000001, 0x24560169, 0x00000000, 0x28302830 },
+   { 0x00000001, 0x24600061, 0x00000000, 0x00000002 },
+   { 0x00000001, 0x24640061, 0x00000000, 0x40000000 },
+   { 0x00000001, 0x24640231, 0x0000009c, 0x00000000 },
+   { 0x00000001, 0x24680061, 0x00000000, 0x30003030 },
+   { 0x00000041, 0x24884521, 0x000000a2, 0x000000a1 },
+   { 0x00000040, 0x24884421, 0x00000488, 0x000000a0 },
+   { 0x00000041, 0x24880c21, 0x00000488, 0x0000000a },
+   { 0x00000001, 0x24940231, 0x00000014, 0x00000000 },
+   { 0x00600001, 0x28000021, 0x008d0400, 0x00000000 },
+   { 0x04600031, 0x22401cb1, 0x00000800, 0x02190004 },
+   { 0x00600001, 0x28000021, 0x008d0420, 0x00000000 },
+   { 0x04600031, 0x22801cb1, 0x00000800, 0x02290004 },
+   { 0x00600001, 0x28000021, 0x008d0440, 0x00000000 },
+   { 0x00000001, 0x247c0169, 0x00000000, 0x00000000 },
+   { 0x01000005, 0x20002e28, 0x000000a4, 0x00010001 },
+   { 0x00010001, 0x247c00f1, 0x00000000, 0x00000002 },
+   { 0x02000010, 0x20002e28, 0x000000a0, 0x00000000 },
+   { 0x00010040, 0x247d1e31, 0x0000047d, 0x00000060 },
+   { 0x02000010, 0x20002e28, 0x000000a1, 0x00000000 },
+   { 0x00010040, 0x247d1e31, 0x0000047d, 0x00000010 },
+   { 0x02000041, 0x20004628, 0x000000a0, 0x000000a1 },
+   { 0x00010040, 0x247d1e31, 0x0000047d, 0x00000004 },
+   { 0x00000040, 0x25202e2d, 0x000000a0, 0x00010001 },
+   { 0x00000040, 0x2520352d, 0x000000a2, 0x00004520 },
+   { 0x02000041, 0x200045a0, 0x00000520, 0x000000a1 },
+   { 0x00010040, 0x247d1e31, 0x0000047d, 0x00000008 },
+   { 0x02000005, 0x20002e28, 0x000000a4, 0x00020002 },
+   { 0x00010005, 0x247d1e31, 0x0000047d, 0x000000e0 },
+   { 0x00600001, 0x28200021, 0x008d0460, 0x00000000 },
+   { 0x00600001, 0x28400061, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x22400061, 0x00000000, 0x00000000 },
+   { 0x00000005, 0x22440c21, 0x00000244, 0xff000000 },
+   { 0x00600001, 0x28600021, 0x008d0240, 0x00000000 },
+   { 0x00600001, 0x288000e1, 0x00000000, 0x00000000 },
+   { 0x00800001, 0x28800231, 0x00cf0283, 0x00000000 },
+   { 0x00000001, 0x28900061, 0x00000000, 0x11111111 },
+   { 0x08600031, 0x21801cbd, 0x00000800, 0x0a686000 },
+   { 0x00600001, 0x28000021, 0x008d0480, 0x00000000 },
+   { 0x00600001, 0x24a00021, 0x008d01a0, 0x00000000 },
+   { 0x00600001, 0x24c00021, 0x008d01c0, 0x00000000 },
+   { 0x00600001, 0x24e00021, 0x008d01e0, 0x00000000 },
+   { 0x00600001, 0x25000021, 0x008d0200, 0x00000000 },
+   { 0x00600001, 0x28200021, 0x008d04a0, 0x00000000 },
+   { 0x00600001, 0x28400021, 0x008d04c0, 0x00000000 },
+   { 0x00600001, 0x28600021, 0x008d04e0, 0x00000000 },
+   { 0x00600001, 0x28800021, 0x008d0500, 0x00000000 },
+   { 0x0a800031, 0x20001cac, 0x00000800, 0x0a0a0403 },
+   { 0x00000040, 0x28080c21, 0x00000488, 0x00000008 },
+   { 0x01000005, 0x20000c20, 0x00000180, 0x00002000 },
+   { 0x00110020, 0x34001c00, 0x00001400, 0x0000001c },
+   { 0x00000001, 0x25420169, 0x00000000, 0x00000000 },
+   { 0x00000001, 0x25440061, 0x00000000, 0x00000000 },
+   { 0x00010005, 0x25422d29, 0x00000182, 0x00200020 },
+   { 0x00010008, 0x25422d29, 0x00200542, 0x00050005 },
+   { 0x00010041, 0x25442d21, 0x00000542, 0x00600060 },
+   { 0x00010040, 0x25442c21, 0x00000544, 0x00200020 },
+   { 0x00010009, 0x25422d29, 0x00000542, 0x00050005 },
+   { 0x00010040, 0x25422d29, 0x00000542, 0x00400040 },
+   { 0x00000040, 0x25422d29, 0x00000542, 0x000e000e },
+   { 0x00000001, 0x28200129, 0x00000180, 0x00000000 },
+   { 0x00000001, 0x28220129, 0x00000542, 0x00000000 },
+   { 0x00000001, 0x28240021, 0x0000019c, 0x00000000 },
+   { 0x00000001, 0x28280021, 0x00000544, 0x00000000 },
+   { 0x00000020, 0x34001c00, 0x00001400, 0x00000008 },
+   { 0x00000001, 0x28200021, 0x00000180, 0x00000000 },
+   { 0x00000001, 0x28240021, 0x00000190, 0x00000000 },
+   { 0x00000001, 0x28280021, 0x00000194, 0x00000000 },
+   { 0x00000001, 0x282c0021, 0x00000198, 0x00000000 },
+   { 0x0a800031, 0x20001cac, 0x00000800, 0x040a0003 },
+   { 0x00000040, 0x20a02e31, 0x000000a0, 0x00010001 },
+   { 0x00000040, 0x24482d29, 0x00000448, 0x00100010 },
+   { 0x01000010, 0x20004528, 0x000000a2, 0x000000a0 },
+   { 0x00010001, 0x20a00171, 0x00000000, 0x00000000 },
+   { 0x00010001, 0x24480169, 0x00000000, 0x00000000 },
+   { 0x00010040, 0x244a2d29, 0x0000044a, 0x00100010 },
+   { 0x00000040, 0x24882c21, 0x00000488, 0x000a000a },
+   { 0x01000040, 0x20a63dad, 0x020000a6, 0xffffffff },
+   { 0x00110020, 0x34001c00, 0x02001400, 0xffffff74 },
+   { 0x00600001, 0x28000021, 0x008d0000, 0x00000000 },
+   { 0x07800031, 0x24001ca8, 0x00000800, 0x82000010 },
diff --git a/src/shaders/vme/mpeg2_inter_frame.gen7.asm b/src/shaders/vme/mpeg2_inter_frame.gen7.asm
new file mode 100644 (file)
index 0000000..bf65bff
--- /dev/null
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__INTER_START:
+mov (16) r32.0<1>:UD 0x0:UD {align1};
+mov (16) r34.0<1>:UD 0x0:UD {align1};
+mov (16) r35.0<1>:UD 0x0:UD {align1};
+shl (2) r32.0<1>:D r5.0<2,2,1>:UB 4:UW {align1};
+add (1) r32.0<1>:D r32.0<0,1,0>:D -8:W {align1};
+add (1) r32.4<1>:D r32.4<0,1,0>:D -1:W {align1};
+mov (1) r32.8<1>:UD 0x0000001F {align1};
+mov (1) r32.20<1>:UB r0.20<0,1,0>:UB {align1};
+shl (2) r33.0<1>:D r5.0<2,2,1>:UB 4:UW {align1};
+add (1) r33.0<1>:D r33.0<0,1,0>:D -4:W {align1};
+mov (1) r33.8<1>:UD 0x000F0003 {align1};
+mov (1) r33.20<1>:UB r0.20<0,1,0>:UB {align1};
+shl (2) r34.8<1>:UW r5.0<2,2,1>:UB 4:UW {align1};
+mov (1) r34.0<1>:W -16:W {align1} ;
+mov (1) r34.2<1>:W -12:W {align1} ;
+mov (1) r34.12<1>:UD 0x00000000 + 0x7e000000 + 0x00200000 + 0x00003000:UD {align1};
+mov (1) r34.20<1>:UB r0.20<0,1,0>:UB {align1};
+mov (1) r34.22<1>:UW 0x2830:UW {align1};
+mov (1) r35.0<1>:UD 0x00000002:ud {align1} ;
+mov (1) r35.4<1>:UD 0x40000000:UD {align1};
+mov (1) r35.4<1>:UB r4.28<0,1,0>:UB {align1};
+mov (1) r35.8<1>:UD 0x30000000 + 0x00003030:UD {align1};
+mul (1) r36.8<1>:UD r5.2<0,1,0>:UW r5.1<0,1,0>:UB {align1};
+add (1) r36.8<1>:UD r36.8<0,1,0>:UD r5.0<0,1,0>:UB {align1};
+mul (1) r36.8<1>:UD r36.8<0,1,0>:UD 10:UD {align1};
+mov (1) r36.20<1>:UB r0.20<0,1,0>:UB {align1};
+__VME_LOOP:
+mov (8) g64.0<1>:UD r32.0<8,8,1>:UD {align1};
+send (8) 64 r18<1>:UB null read(4, 0, 0, 4) mlen 1 rlen 1 {align1};
+mov (8) g64.0<1>:UD r33.0<8,8,1>:UD {align1};
+send (8) 64 r20<1>:UB null read(4, 0, 0, 4) mlen 1 rlen 2 {align1};
+mov (8) g64.0<1>:UD r34.0<8,8,1>:UD {align1};
+mov (1) r35.28<1>:UW 0x0:UW {align1} ;
+and.z.f0.0 (1) null<1>:UW r5.4<0,1,0>:UB 1:UW {align1};
+(f0.0) mov (1) r35.28<1>:UB 0x2 {align1};
+cmp.nz.f0.0 (1) null<1>:UW r5.0<0,1,0>:UB 0:UW {align1};
+(f0.0) add (1) r35.29<1>:UB r35.29<0,1,0>:UB 0x60 {align1};
+cmp.nz.f0.0 (1) null<1>:UW r5.1<0,1,0>:UB 0:UW {align1};
+(f0.0) add (1) r35.29<1>:UB r35.29<0,1,0>:UB 0x10 {align1};
+mul.nz.f0.0 (1) null<1>:UW r5.0<0,1,0>:UB r5.1<0,1,0>:UB {align1};
+(f0.0) add (1) r35.29<1>:UB r35.29<0,1,0>:UB 0x4 {align1};
+add (1) r41.0<1>:W r5.0<0,1,0>:UB 1:UW {align1};
+add (1) r41.0<1>:W r5.2<0,1,0>:UW -r41.0<0,1,0>:W {align1};
+mul.nz.f0.0 (1) null<1>:UD r41.0<0,1,0>:W r5.1<0,1,0>:UB {align1};
+(f0.0) add (1) r35.29<1>:UB r35.29<0,1,0>:UB 0x8 {align1};
+and.nz.f0.0 (1) null<1>:UW r5.4<0,1,0>:UB 2:UW {align1};
+(f0.0) and (1) r35.29<1>:UB r35.29<0,1,0>:UB 0xE0 {align1};
+mov (8) g65<1>:UD r35.0<8,8,1>:UD {align1};
+mov (8) g66<1>:UD 0x0:UD {align1};
+mov (1) r18.0<1>:UD 0x0:UD {align1};
+and (1) r18.4<1>:UD r18.4<0,1,0>:UD 0xFF000000:UD {align1};
+mov (8) g67<1>:UD r18.0<8,8,1>:UD {align1};
+mov (8) g68<1>:UD 0x0 {align1};
+mov (16) g68.0<1>:UB r20.3<32,8,4>:UB {align1};
+mov (1) g68.16<1>:UD 0x11111111:UD {align1};
+send (8)
+        64
+        r12
+        null
+        vme(
+                0,
+                0,
+                0,
+                3
+        )
+        mlen 5
+        rlen 6
+        {align1};
+mov (8) g64.0<1>:UD r36.0<8,8,1>:UD {align1};
+mov (8) r37.0<1>:ud r13.0<8,8,1>:ud {align1};
+mov (8) r38.0<1>:ud r14.0<8,8,1>:ud {align1};
+mov (8) r39.0<1>:ud r15.0<8,8,1>:ud {align1};
+mov (8) r40.0<1>:ud r16.0<8,8,1>:ud {align1};
+mov (8) g65.0<1>:UD r37.0<8,8,1>:UD {align1};
+mov (8) g66.0<1>:UD r38.0<8,8,1>:UD {align1};
+mov (8) g67.0<1>:UD r39.0<8,8,1>:UD {align1};
+mov (8) g68.0<1>:UD r40.0<8,8,1>:UD {align1};
+send (16)
+        64
+        null<1>:W
+        null
+        data_port(
+                10,
+                8,
+                4,
+                3,
+                0,
+                1
+        )
+        mlen 5
+        rlen 0
+        {align1};
+add (1) g64.8<1>:UD r36.8<0,1,0>:UD 8:UD {align1} ;
+and.z.f0.0 (1) null<1>:ud r12.0<0,1,0>:ud 0x00002000:ud {align1} ;
+(-f0.0)jmpi (1) __INTRA_INFO ;
+__INTER_INFO:
+mov (1) r42.2<1>:uw 0:uw {align1} ;
+mov (1) r42.4<1>:ud 0:ud {align1} ;
+(f0.0)and (1) r42.2<1>:uw r12.2<0,1,0>:uw 0x0020:uw {align1} ;
+(f0.0)shr (1) r42.2<1>:uw r42.2<1>:uw 5:uw {align1} ;
+(f0.0)mul (1) r42.4<1>:ud r42.2<0,1,0>:uw 96:uw {align1} ;
+(f0.0)add (1) r42.4<1>:ud r42.4<0,1,0>:ud 32:uw {align1} ;
+(f0.0)shl (1) r42.2<1>:uw r42.2<0,1,0>:uw 5:uw {align1} ;
+(f0.0)add (1) r42.2<1>:uw r42.2<0,1,0>:uw 0x0040:uw {align1} ;
+add (1) r42.2<1>:uw r42.2<0,1,0>:uw 0x000E:uw {align1} ;
+mov (1) g65.0<1>:uw r12.0<0,1,0>:uw {align1} ;
+mov (1) g65.2<1>:uw r42.2<0,1,0>:uw {align1} ;
+mov (1) g65.4<1>:UD r12.28<0,1,0>:UD {align1};
+mov (1) g65.8<1>:ud r42.4<0,1,0>:ud {align1} ;
+jmpi (1) __OUTPUT_INFO ;
+__INTRA_INFO:
+mov (1) g65.0<1>:UD r12.0<0,1,0>:UD {align1};
+mov (1) g65.4<1>:UD r12.16<0,1,0>:UD {align1};
+mov (1) g65.8<1>:UD r12.20<0,1,0>:UD {align1};
+mov (1) g65.12<1>:UD r12.24<0,1,0>:UD {align1};
+__OUTPUT_INFO:
+send (16)
+        64
+        null<1>:W
+        null
+        data_port(
+                10,
+                8,
+                0,
+                3,
+                0,
+                1
+        )
+        mlen 2
+        rlen 0
+        {align1};
+add (1) r5.0<1>:ub r5.0<0,1,0>:ub 1:uw {align1} ;
+add (1) r34.8<1>:UW r34.8<0,1,0>:UW 16:UW {align1};
+cmp.e.f0.0 (1) null<1>:uw r5.2<0,1,0>:uw r5.0<0,1,0>:ub {align1};
+(f0.0)mov (1) r5.0<1>:ub 0:uw {align1} ;
+(f0.0)mov (1) r34.8<1>:uw 0:uw {align1} ;
+(f0.0)add (1) r34.10<1>:uw r34.10<0,1,0>:uw 16:uw {align1} ;
+add (1) r36.8<1>:UD r36.8<0,1,0>:UD 10:UW {align1} ;
+add.z.f0.1 (1) r5.6<1>:w r5.6<0,1,0>:w -1:w {align1} ;
+(-f0.1)jmpi (1) __VME_LOOP ;
+__EXIT:
+mov (8) g64<1>:UD r0<8,8,1>:UD {align1};
+send (16) 64 acc0<1>UW null thread_spawner(0, 0, 1) mlen 1 rlen 0 {align1 EOT};
diff --git a/src/shaders/vme/vme7_mpeg2.inc b/src/shaders/vme/vme7_mpeg2.inc
new file mode 100644 (file)
index 0000000..9b877ac
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+ * Copyright © <2010>, Intel Corporation.
+ *
+ * This program is licensed under the terms and conditions of the
+ * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
+ * http://www.opensource.org/licenses/eclipse-1.0.php.
+ *
+ */
+// Modual name: ME_header.inc
+//
+// Global symbols define
+//
+
+/*
+ * Constant
+ */
+
+define(`INTER_PART_MASK',               `0x7e000000')