summaryrefslogtreecommitdiff
path: root/i965_drv_video/shaders/h264/mc/initialize_MBPara.asm
diff options
context:
space:
mode:
Diffstat (limited to 'i965_drv_video/shaders/h264/mc/initialize_MBPara.asm')
-rw-r--r--i965_drv_video/shaders/h264/mc/initialize_MBPara.asm125
1 files changed, 0 insertions, 125 deletions
diff --git a/i965_drv_video/shaders/h264/mc/initialize_MBPara.asm b/i965_drv_video/shaders/h264/mc/initialize_MBPara.asm
deleted file mode 100644
index bd651cf..0000000
--- a/i965_drv_video/shaders/h264/mc/initialize_MBPara.asm
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Initialize parameters
- * 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.
- *
- */
-// Kernel name: Initialize_MBPara.asm
-//
-
-
-//#if !defined(__INITIALIZE_MBPARA__) // Make sure this is only included once
-//#define __INITIALIZE_MBPARA__
-
-
-// WA for weighted prediction - 2007/09/06 // shlee
-// mov (1) guwW128(0)<1> guwR1(0)<0;1,0> // Copy the unique number indicating weight/offset=(128,0)
-
-
-
-// MB Type Category
-// 1 B_L0_16x16
-// 2 B_L1_16x16
-// 3 B_Bi_16x16
-// 4 B_L0_L0_16x8
-// 5 B_L0_L0_8x16
-// 6 B_L1_L1_16x8
-// 7 B_L1_L1_8x16
-// 8 B_L0_L1_16x8
-// 9 B_L0_L1_8x16
-// 10 B_L1_L0_16x8
-// 11 B_L1_L0_8x16
-// 12 B_L0_Bi_16x8
-// 13 B_L0_Bi_8x16
-// 14 B_L1_Bi_16x8
-// 15 B_L1_Bi_8x16
-// 16 B_Bi_L0_16x8
-// 17 B_Bi_L0_8x16
-// 18 B_Bi_L1_16x8
-// 19 B_Bi_L1_8x16
-// 20 B_Bi_Bi_16x8
-// 21 B_Bi_Bi_8x16
-// 22 B_8x8
-
- // TODO:
- // Initialize interpolation area to eliminate uninitialized registers making the results of mac instructions XX.
- // This issue was reported by Sharath on 5/25/2006, and why multiplication by zero still yields XX has not been understood yet.
-#if 0
- mov (16) gudINTPY0(0)<1> 0:ud {Compr}
- mov (16) gudINTPY0(2)<1> 0:ud {Compr}
- mov (16) gudINTPY1(0)<1> 0:ud {Compr}
- mov (16) gudINTPY1(2)<1> 0:ud {Compr}
- mov (16) gudINTPC0(0)<1> 0:ud {Compr}
- mov (16) gudINTPC1(0)<1> 0:ud {Compr}
-#endif
-
- mov (1) gMVSTEP:w 0:w // Address increament for MV read
-
- cmp.e.f0.0 (1) null:w gwMBTYPE<0;1,0> 22:w
- (-f0.0) jmpi INTERLABEL(NOT_8x8_MODE)
-
- //--- 8x8 mode
-
- // Starting address of error data blocks
- cmp.e.f0.1 (2) null<1>:w gSUBMB_SHAPE<0;1,0>:ub 0:w
- (f0.1) jmpi INTERLABEL(CONVERT_MVS)
-
- // Note: MVs and Weights/Offsets are already expanded by HW or driver
-
- // MV conversion - Convert each MV to absolute coord. (= MV + MB org. + block offset)
- shl (16) gwTEMP(0)<1> gX<0;2,1>:w 2:w // Convert MB origin to 1/4-pel unit
- mov (1) gMVSTEP:w 24:w // Address increament for MV read
- add (2) gwTEMP(0,4)<2> gwTEMP(0,4)<4;2,2> 16:w
- add (2) gwTEMP(0,9)<2> gwTEMP(0,9)<4;2,2> 16:w
- add (4) gwTEMP(0,12)<1> gwTEMP(0,12)<4;4,1> 16:w
-
- add (16) gMV<1>:w gMV<16;16,1>:w gwTEMP(0)<16;16,1>
- add (8) gwTEMP(0)<2> gwTEMP(0)<16;8,2> 32:w
- add (16) gwMV(1,0)<1> gwMV(1,0)<16;16,1> gwTEMP(0)<16;16,1>
- add (8) gwTEMP(0,1)<2> gwTEMP(0,1)<16;8,2> 32:w
- add (16) gwMV(3,0)<1> gwMV(3,0)<16;16,1> gwTEMP(0)<16;16,1>
- add (8) gwTEMP(0)<2> gwTEMP(0)<16;8,2> -32:w
- add (16) gwMV(2,0)<1> gwMV(2,0)<16;16,1> gwTEMP(0)<16;16,1>
-
- jmpi INTERLABEL(INIT_ADDRESS_REGS)
-
-INTERLABEL(NOT_8x8_MODE):
-
- //--- !8x8 mode (16x16, 16x8, 8x16)
-
- // MVs and Weights/Offsets are expanded
- cmp.le.f0.1 (8) null<1>:w gwMBTYPE<0;1,0> 3:w // Check 16x16
- mov (1) gSUBMB_SHAPE:ub 0:uw // subMB shape
- (f0.1) mov (8) gMV<1>:d gMV<0;2,1>:d
- (f0.1) mov (8) gdWGT(1,0)<1> gWGT<0;4,1>:d
- (f0.1) mov (4) gdWGT(0,4)<1> gWGT<4;4,1>:d
-
-INTERLABEL(CONVERT_MVS):
- // MV conversion - Convert each MV to absolute coord. (= MV + MB org. + block offset)
- shl (2) gwTEMP(0)<1> gX<2;2,1>:w 2:w // Convert MB origin to 1/4-pel unit
- add (16) gMV<1>:w gMV<16;16,1>:w gwTEMP(0)<0;2,1>
- add (2) gwMV(0,4)<2> gwMV(0,4)<4;2,2> 32:w //{NoDDClr}
- add (2) gwMV(0,9)<2> gwMV(0,9)<4;2,2> 32:w //{NoDDChk,NoDDClr}
- add (4) gwMV(0,12)<1> gwMV(0,12)<4;4,1> 32:w //{NoDDChk}
-
-INTERLABEL(INIT_ADDRESS_REGS):
- // Initialize the address registers
- mov (2) pERRORYC:ud nOFFSET_ERROR:ud {NoDDClr} // Address of Y and C error blocks
- mov (1) pRECON_MV:ud nOFFSET_RECON_MV:ud {NoDDChk,NoDDClr} // Address of recon area and motion vectors
- mov (1) pWGT_BIDX:ud nOFFSET_WGT_BIDX:ud {NoDDChk} // Address of weights/offsets and binding tbl idx
-
- // Read the parity of the current field (gPARITY - 0:top, 1:bottom, 3:frame)
- // and set message descriptor for frame/field write
-#if defined(MBAFF)
- and.nz.f0.0 (1) null:uw gFIELDMBFLAG:ub nFIELDMB_MASK:uw
- (f0.0) and (1) gPARITY:uw gMBPARITY:ub nMBPARITY_MASK:uw
- (-f0.0) mov (1) gPARITY:uw 3:uw
-#elif defined(FIELD)
- and (1) gPARITY:uw gMBPARITY:ub nMBPARITY_MASK:uw
-#endif
-
-
-//#endif // !defined(__INITIALIZE_MBPARA__)