diff options
author | Li Xiaowei <xiaowei.a.li@intel.com> | 2012-12-21 14:27:01 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2013-01-17 13:08:39 +0800 |
commit | b8509cf7aee93ef69202ee659f141fb9da278090 (patch) | |
tree | 05264fa2f6aac7cff4068e356f1a8676c2e49f56 /src | |
parent | ab52efa8e3a51944f4888c9cb20763266f765ee9 (diff) | |
download | vaapi-intel-driver-b8509cf7aee93ef69202ee659f141fb9da278090.tar.gz vaapi-intel-driver-b8509cf7aee93ef69202ee659f141fb9da278090.tar.bz2 vaapi-intel-driver-b8509cf7aee93ef69202ee659f141fb9da278090.zip |
Add MPEG2 VME shader files for IVB
Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/shaders/vme/Makefile.am | 6 | ||||
-rw-r--r-- | src/shaders/vme/mpeg2_inter_frame.g7a | 3 | ||||
-rw-r--r-- | src/shaders/vme/mpeg2_inter_frame.g7b | 98 | ||||
-rw-r--r-- | src/shaders/vme/mpeg2_inter_frame.gen7.asm | 271 | ||||
-rw-r--r-- | src/shaders/vme/vme7_mpeg2.inc | 18 |
5 files changed, 393 insertions, 3 deletions
diff --git a/src/shaders/vme/Makefile.am b/src/shaders/vme/Makefile.am index ca74e40..5ccf6d2 100644 --- a/src/shaders/vme/Makefile.am +++ b/src/shaders/vme/Makefile.am @@ -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 index 0000000..937ea9b --- /dev/null +++ b/src/shaders/vme/mpeg2_inter_frame.g7a @@ -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 index 0000000..398c288 --- /dev/null +++ b/src/shaders/vme/mpeg2_inter_frame.g7b @@ -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 index 0000000..bf65bff --- /dev/null +++ b/src/shaders/vme/mpeg2_inter_frame.gen7.asm @@ -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 index 0000000..9b877ac --- /dev/null +++ b/src/shaders/vme/vme7_mpeg2.inc @@ -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') |