diff options
author | Zhou Chang <chang.zhou@intel.com> | 2011-04-14 13:37:45 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2011-04-14 13:43:44 +0800 |
commit | 57c6d5cb7f84bdc5dea74ae208a83a37dde62422 (patch) | |
tree | ba89ef68dc2ab13a7860f98c021202d1ac96b264 /i965_drv_video/shaders | |
parent | 60b39eb75dfefab655091550128699b0aeb5dc9c (diff) |
add inter frame support in vme.
Diffstat (limited to 'i965_drv_video/shaders')
-rw-r--r-- | i965_drv_video/shaders/vme/Makefile.am | 2 | ||||
-rw-r--r-- | i965_drv_video/shaders/vme/inter_frame.asm | 47 | ||||
-rw-r--r-- | i965_drv_video/shaders/vme/inter_frame.g6b | 14 |
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 }, |