Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5361 | serge | 1 | /* |
2 | * Copyright © <2010>, Intel Corporation. |
||
3 | * |
||
4 | * This program is licensed under the terms and conditions of the |
||
5 | * Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
||
6 | * http://www.opensource.org/licenses/eclipse-1.0.php. |
||
7 | * |
||
8 | */ |
||
9 | // Module name: load_ILDB_Cntrl_Data_16DW.asm |
||
10 | // |
||
11 | // This module loads AVC ILDB 64DW control data for one MB CTG. |
||
12 | // Dataport expands from 16DW to 64DW. |
||
13 | // |
||
14 | //---------------------------------------------------------------- |
||
15 | // Symbols need to be defined before including this module |
||
16 | // |
||
17 | // Source region in :ud |
||
18 | // CNTRL_DATA_D: CNTRL_DATA_D Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud // 8 GRFs |
||
19 | // |
||
20 | // Binding table index: |
||
21 | // BI_CNTRL_DATA: Binding table index of control data surface |
||
22 | // |
||
23 | //---------------------------------------------------------------- |
||
24 | |||
25 | // On CTG, MB control data in memory occupy 16 DWs. Data port returns 8 GRFs with expanded control data. |
||
26 | |||
27 | #if defined(_MBAFF) |
||
28 | // We need to get control data offset for the bottom MB in mbaff mode. |
||
29 | // That is, get f0.1=1 if MbaffFlag==1 && BotFieldFlag==1 |
||
30 | // and (1) CTemp1_W:uw BitFields:uw MbaffFlag+BotFieldFlag:uw // Mute all other bits |
||
31 | // cmp.e.f0.1 (1) NULLREGW CTemp1_W:uw MbaffFlag+BotFieldFlag:uw // Check mbaff and bot flags |
||
32 | |||
33 | and.ne.f0.1 (1) NULLREGW BitFields:uw BotFieldFlag:uw |
||
34 | |||
35 | // Global offset |
||
36 | mov (1) MSGSRC.2:ud CntrlDataOffsetY:ud |
||
37 | |||
38 | (f0.1) add (1) MSGSRC.2:ud MSGSRC.2:ud 64:w // +64 to the next MB control data (bot MB) |
||
39 | #endif |
||
40 | |||
41 | send (8) CNTRL_DATA_D(0)<1> MSGHDRY MSGSRC<8;8,1>:ud DAPREAD RESP_LEN(8)+ILDBRMSGDSC+BI_CNTRL_DATA // Receive 8 GRFs |
||
42 | |||
43 | // End of load_ILDB_Cntrl_Data_16DW.asm |
||
44 | |||
45 | |||
46 | |||
47 | // AVC ILDB control data message header format |
||
48 | |||
49 | //DWord Bit Description |
||
50 | //M0.7 31:0 Debug |
||
51 | //M0.6 31:0 Debug |
||
52 | //M0.5 31:8 Ignored |
||
53 | // 7:0 Dispatch ID. // This ID is assigned by the fixed function unit and is a unique identifier for the thread. It is used to free up resources used by the thread upon thread completion. |
||
54 | //M0.4 31:0 Ignored |
||
55 | //M0.3 31:0 Ignored |
||
56 | //M0.2 31:0 Global Offset. Specifies the global byte offset into the buffer. |
||
57 | // This offset must be OWord aligned (bits 3:0 MBZ) Format = U32 Range = [0,FFFFFFF0h] |
||
58 | //M0.1 31:0 Ignored |
||
59 | //M0.0 31:0 Ignored8;8,1>1>2010> |
||
60 |