summaryrefslogtreecommitdiff
path: root/i965_drv_video/shaders
diff options
context:
space:
mode:
authorZhou Chang <chang.zhou@intel.com>2011-04-14 13:37:45 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2011-04-14 13:43:44 +0800
commit57c6d5cb7f84bdc5dea74ae208a83a37dde62422 (patch)
treeba89ef68dc2ab13a7860f98c021202d1ac96b264 /i965_drv_video/shaders
parent60b39eb75dfefab655091550128699b0aeb5dc9c (diff)
add inter frame support in vme.
Diffstat (limited to 'i965_drv_video/shaders')
-rw-r--r--i965_drv_video/shaders/vme/Makefile.am2
-rw-r--r--i965_drv_video/shaders/vme/inter_frame.asm47
-rw-r--r--i965_drv_video/shaders/vme/inter_frame.g6b14
3 files changed, 62 insertions, 1 deletions
diff --git a/i965_drv_video/shaders/vme/Makefile.am b/i965_drv_video/shaders/vme/Makefile.am
index c3d029d..7945d66 100644
--- a/i965_drv_video/shaders/vme/Makefile.am
+++ b/i965_drv_video/shaders/vme/Makefile.am
@@ -1,4 +1,4 @@
-INTEL_G6B = intra_frame.g6b
+INTEL_G6B = intra_frame.g6b inter_frame.g6b
EXTRA_DIST = $(INTEL_G6B)
diff --git a/i965_drv_video/shaders/vme/inter_frame.asm b/i965_drv_video/shaders/vme/inter_frame.asm
new file mode 100644
index 0000000..33d3d1b
--- /dev/null
+++ b/i965_drv_video/shaders/vme/inter_frame.asm
@@ -0,0 +1,47 @@
+/*
+ * 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: IntraFrame.asm
+//
+// Make intra predition estimation for Intra frame
+//
+
+//
+// Now, begin source code....
+//
+
+include(`vme_header.inc')
+
+/*inline input data: r5~r11*/
+mov(1) r5.20<1>:UB r0.20<1,1,0>:UB {align1} ;
+mov(8) m0.0<1>:UD r5.0<8,8,1>:UD {align1};
+mov(8) m1.0<1>:UD r6.0<8,8,1>:UD {align1};
+mov(8) m2.0<1>:UD r7.0<8,8,1>:UD {align1};
+mov(8) m3.0<1>:UD r8.0<8,8,1>:UD {align1};
+send(8) 0 r12 null vme(0,0,0,1) mlen 4 rlen 4 {align1};
+
+mov(1) r9.20<1>:UB r0.20<1,1,0>:UB {align1} ;
+mov(8) m0.0<1>:UD r9.0<8,8,1>:UD {align1 mask_disable};
+/*
+mov(8) m1.0<1>:UD r13.0<8,8,1>:UD {align1 mask_disable};
+mov(8) m2.0<1>:UD r14.0<8,8,1>:UD {align1 mask_disable};
+*/
+mov(2) r9.0<1>:UW r13.0<2,2,1>:UB {align1 mask_disable};
+mov(8) m1.0<1>:UD r9.0<8,8,0>:UD {align1 mask_disable};
+mov(8) m2.0<1>:UD r9.0<8,8,0>:UD {align1 mask_disable};
+
+/*
+mov(16) m1.2<8:8:2>:UW r13.1<0,0,0>:UB {align1};
+*/
+
+/* bind index 3, write 2 oword, msg type: 8(OWord Block Write) */
+send (16) 0 r13 null write(3, 3, 8, 1) mlen 3 rlen 1 {align1};
+
+mov (8) m0.0<1>:UD r0<8,8,1>:UD {align1};
+send (16) 0 acc0<1>UW null thread_spawner(0, 0, 1) mlen 1 rlen 0 {align1 EOT};
+
diff --git a/i965_drv_video/shaders/vme/inter_frame.g6b b/i965_drv_video/shaders/vme/inter_frame.g6b
new file mode 100644
index 0000000..fa3567a
--- /dev/null
+++ b/i965_drv_video/shaders/vme/inter_frame.g6b
@@ -0,0 +1,14 @@
+ { 0x00000001, 0x20b40231, 0x00200014, 0x00000000 },
+ { 0x00600001, 0x20000022, 0x008d00a0, 0x00000000 },
+ { 0x00600001, 0x20200022, 0x008d00c0, 0x00000000 },
+ { 0x00600001, 0x20400022, 0x008d00e0, 0x00000000 },
+ { 0x00600001, 0x20600022, 0x008d0100, 0x00000000 },
+ { 0x08600031, 0x21801cdd, 0x00000000, 0x08482000 },
+ { 0x00000001, 0x21340231, 0x00200014, 0x00000000 },
+ { 0x00600201, 0x20000022, 0x008d0120, 0x00000000 },
+ { 0x00200201, 0x21200229, 0x004501a0, 0x00000000 },
+ { 0x00600201, 0x20200022, 0x008c0120, 0x00000000 },
+ { 0x00600201, 0x20400022, 0x008c0120, 0x00000000 },
+ { 0x05800031, 0x21a01cdd, 0x00000000, 0x061b0303 },
+ { 0x00600001, 0x20000022, 0x008d0000, 0x00000000 },
+ { 0x07800031, 0x24001cc8, 0x00000000, 0x82000010 },