summaryrefslogtreecommitdiff
path: root/i965_drv_video/shaders/vme/inter_frame.asm
diff options
context:
space:
mode:
authorXiang, Haihao <haihao.xiang@intel.com>2011-06-09 13:13:24 +0800
committerXiang, Haihao <haihao.xiang@intel.com>2011-06-10 11:08:42 +0800
commit17be8ff554b8e708c2b7eda504a5060ee4bff2cc (patch)
tree67bc95a59fe8c7c415ecb1ac58138fa175321491 /i965_drv_video/shaders/vme/inter_frame.asm
parentf7848e8ffeedd6901a789d6bc0431354397ea9ee (diff)
i965_drv_video: new shaders for VME on Ivybridge
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Diffstat (limited to 'i965_drv_video/shaders/vme/inter_frame.asm')
-rw-r--r--i965_drv_video/shaders/vme/inter_frame.asm45
1 files changed, 36 insertions, 9 deletions
diff --git a/i965_drv_video/shaders/vme/inter_frame.asm b/i965_drv_video/shaders/vme/inter_frame.asm
index 4fa539a..4dd9401 100644
--- a/i965_drv_video/shaders/vme/inter_frame.asm
+++ b/i965_drv_video/shaders/vme/inter_frame.asm
@@ -15,8 +15,6 @@
// Now, begin source code....
//
-include(`vme_header.inc')
-
/*
* __START
*/
@@ -35,22 +33,37 @@ mov (1) tmp_reg0.12<1>:UD INTER_PART_MASK + INTER_SAD_HAAR + SUB_PEL_MODE_
mov (1) tmp_reg0.20<1>:UB thread_id_ub {align1}; /* dispatch id */
mov (1) tmp_reg0.22<1>:UW REF_REGION_SIZE {align1}; /* Reference Width&Height, 32x32 */
-mov (8) msg_reg0.0<1>:UD tmp_reg0.0<8,8,1>:UD {align1};
+mov (8) vme_msg_0.0<1>:UD tmp_reg0.0<8,8,1>:UD {align1};
/* m1 */
mov (1) tmp_reg1.4<1>:UD MAX_NUM_MV:UD {align1}; /* Default value MAX 32 MVs */
mov (1) tmp_reg1.8<1>:UD SEARCH_PATH_LEN:UD {align1};
-mov (8) msg_reg1<1>:UD tmp_reg1.0<8,8,1>:UD {align1};
+mov (8) vme_msg_1<1>:UD tmp_reg1.0<8,8,1>:UD {align1};
/* m2 */
-mov (8) msg_reg2<1>:UD 0x0:UD {align1};
+mov (8) vme_msg_2<1>:UD 0x0:UD {align1};
/* m3 */
-mov (8) msg_reg3<1>:UD 0x0:UD {align1};
+mov (8) vme_msg_3<1>:UD 0x0:UD {align1};
-send (8) 0 vme_wb null vme(BIND_IDX_VME,0,0,VME_MESSAGE_TYPE_INTER) mlen 4 rlen 4 {align1};
+/* m4 */
+mov (8) vme_msg_4<1>:UD 0x0:UD {align1};
+send (8)
+ vme_msg_ind
+ vme_wb
+ null
+ vme(
+ BIND_IDX_VME,
+ 0,
+ 0,
+ VME_MESSAGE_TYPE_INTER
+ )
+ mlen vme_msg_length
+ rlen 4
+ {align1};
+
/*
* Oword Block Write message
*/
@@ -68,10 +81,24 @@ mov (8) msg_reg1.0<1>:UD tmp_reg3.0<8,8,0>:UD {align1};
mov (8) msg_reg2.0<1>:UD tmp_reg3.0<8,8,0>:UD {align1};
/* bind index 3, write 4 oword, msg type: 8(OWord Block Write) */
-send (16) 0 obw_wb null write(BIND_IDX_OUTPUT, 3, 8, 1) mlen 3 rlen 1 {align1};
+send (16)
+ msg_ind
+ obw_wb
+ null
+ data_port(
+ OBW_CACHE_TYPE,
+ OBW_MESSAGE_TYPE,
+ OBW_CONTROL_3,
+ OBW_BIND_IDX,
+ OBW_WRITE_COMMIT_CATEGORY,
+ OBW_HEADER_PRESENT
+ )
+ mlen 3
+ rlen obw_wb_length
+ {align1};
/*
* kill thread
*/
mov (8) msg_reg0<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};
+send (16) msg_ind acc0<1>UW null thread_spawner(0, 0, 1) mlen 1 rlen 0 {align1 EOT};