~ubuntu-branches/ubuntu/utopic/libva/utopic

« back to all changes in this revision

Viewing changes to i965_drv_video/shaders/h264/ildb/save_Left_Y_16x4T_Mbaff.asm

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler, Reinhard Tartler, Brandon Snider, Matteo F. Vescovi
  • Date: 2012-01-04 20:42:33 UTC
  • mfrom: (3.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20120104204233-ykz9w51jafx66if5
Tags: 1.0.15-1
[ Reinhard Tartler ]
* Imported Upstream version 1.0.15 (Closes: #654567)
* Bump shlibs for API 'fixes' mentioned in upstream NEWS file

[ Brandon Snider ]
* The intel i965 driver has been moved to its own package
  - Removed i965-va-driver package from debian/control and replaced it
    with libva-egl1 package
* refreshed debian/patches/remove-unneeded-dep2.patch
* refreshed debian/patches/remove-unneeded-dep.patch
* Added depends on libva-egl1 to debian/control
* Added libva-utils package to debian/control
* Added egl.so file to debian/libva-dev.install
* Created debian/libva-utils.install

[ Matteo F. Vescovi ]
* debian/control: bump Standards-Version to 3.9.2
* debian/clean: clean upstream after build
* debian/control: "Section:" field re-positioned
* debian/control: adding myself to "Uploaders:" field
* debian/control: VCS-browser link updated

Show diffs side-by-side

added added

removed removed

Lines of Context:
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: save_Left_Y_16x4T.asm
10
 
//
11
 
// Transpose 16x4 to 4x16 Y data and write to memory 
12
 
//
13
 
//----------------------------------------------------------------
14
 
//  Symbols need to be defined before including this module
15
 
//
16
 
//      Left MB region:
17
 
//      PREV_MB_YB:             Base=rxx        ElementSize=1 SrcRegion=REGION(16,1) Type=ub
18
 
 
19
 
//      Binding table index: 
20
 
//      BI_SRC_Y:               Binding table index of Y surface
21
 
//
22
 
//      Temp buffer:
23
 
//      BUF_B:                  BUF_B Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub
24
 
//
25
 
//
26
 
#if defined(_DEBUG) 
27
 
        mov             (1)             EntrySignatureC:w                       0xDDD6:w
28
 
#endif
29
 
 
30
 
        and.z.f0.0 (1)  null:w          r[ECM_AddrReg, BitFlags]:ub             FieldModeCurrentMbFlag:w                
31
 
 
32
 
    and.nz.f0.1 (1)     NULLREGW                BitFields:w     BotFieldFlag:w
33
 
 
34
 
    mov (2)     MSGSRC.0<1>:ud  ORIX_LEFT<2;2,1>:w              { NoDDClr }             // Block origin
35
 
    mov (1)     MSGSRC.2<1>:ud  0x000F0003:ud                   { NoDDChk }             // 4x16
36
 
    
37
 
// Transpose Y, save them to MRFs
38
 
 
39
 
//      16x4 Y src in GRF (each pix is specified as yx)
40
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
41
 
//      |f1 e1 d1 c1 b1 a1 91 81 71 61 51 41 31 21 11 01 f0 e0 d0 c0 b0 a0 90 80 70 60 50 40 30 20 10 00|
42
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
43
 
//      |f3 e3 d3 c3 b3 a3 93 83 73 63 53 43 33 23 13 03 f2 e2 d2 c2 b2 a2 92 82 72 62 52 42 32 22 12 02|
44
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
45
 
//
46
 
//  First step          (16)    <1>     <=== <16;4,1>
47
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
48
 
//      |73 63 53 43 72 62 52 42 71 61 51 41 70 60 50 40 33 23 13 03 32 22 12 02 31 21 11 01 30 20 10 00|
49
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
50
 
//      |f3 e3 d3 c3 f2 e2 d2 c2 f1 e1 d1 c1 f0 e0 d0 c0 b3 a3 93 83 b2 a2 92 82 b1 a1 91 81 b0 a0 90 80|
51
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
52
 
 
53
 
        // The first step
54
 
        mov (16)        BUF_B(0,0)<1>                   PREV_MB_YB(0,0)<16;4,1>         { NoDDClr }
55
 
        mov (16)        BUF_B(0,16)<1>                  PREV_MB_YB(0,4)<16;4,1>         { NoDDChk }
56
 
        mov (16)        BUF_B(1,0)<1>                   PREV_MB_YB(0,8)<16;4,1>         { NoDDClr }
57
 
        mov (16)        BUF_B(1,16)<1>                  PREV_MB_YB(0,12)<16;4,1>        { NoDDChk }     
58
 
 
59
 
//
60
 
//  Second step         (16)    <1>     <=== <1;4,4>
61
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
62
 
//      |73 72 71 70 63 62 61 60 53 52 51 50 43 42 41 40 33 32 31 30 23 22 21 20 13 12 11 10 03 02 01 00|
63
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
64
 
//      |f3 f2 f1 f0 e3 e2 e1 e0 d3 d2 d1 d0 c3 c2 c1 c0 b3 b2 b1 b0 a3 a2 a1 a0 93 92 91 90 83 82 81 80|
65
 
//      +-----------------------+-----------------------+-----------------------+-----------------------+
66
 
//
67
 
        // The second step
68
 
        mov     (16)    MSGPAYLOADB(0,0)<1>             BUF_B(0,0)<1;4,4>
69
 
        mov (16)        MSGPAYLOADB(0,16)<1>    BUF_B(0,16)<1;4,4>
70
 
        mov (16)        MSGPAYLOADB(1,0)<1>             BUF_B(1,0)<1;4,4>
71
 
        mov (16)        MSGPAYLOADB(1,16)<1>    BUF_B(1,16)<1;4,4>
72
 
 
73
 
//  Transposed Y in 4x16 is ready for writting to dataport.
74
 
 
75
 
        //***** Left MB is loaded the same as indicated by FieldModeCurrentMbFlag.
76
 
 
77
 
    // Set message descriptor
78
 
 
79
 
        (f0.0)  if      (1)             ELSE_Y_16x4T
80
 
    
81
 
    // Frame picture
82
 
    mov (1)     MSGDSC  MSG_LEN(2)+DWBWMSGDSC+BI_DEST_Y:ud                      // Write 2 GRFs to DEST_Y
83
 
 
84
 
        (f0.1) add (1)  MSGSRC.1:d              MSGSRC.1:d              16:w            // Add vertical offset 16 for bot MB in MBAFF mode
85
 
 
86
 
ELSE_Y_16x4T: 
87
 
        else    (1)             ENDIF_Y_16x4T
88
 
 
89
 
        // Field picture
90
 
    (f0.1) mov (1)      MSGDSC  MSG_LEN(2)+DWBWMSGDSC+ENMSGDSCBF+BI_DEST_Y:ud  // Write 2 GRFs to DEST_Y bottom field
91
 
    (-f0.1) mov (1)     MSGDSC  MSG_LEN(2)+DWBWMSGDSC+ENMSGDSCTF+BI_DEST_Y:ud  // Write 2 GRFs to DEST_Y top field
92
 
 
93
 
        asr (1) MSGSRC.1:d              MSGSRC.1:d              1:w                                     // Reduce y by half in field access mode
94
 
 
95
 
        endif
96
 
ENDIF_Y_16x4T:
97
 
 
98
 
    send (8)    null:ud         MSGHDR  MSGSRC<8;8,1>:ud        DAPWRITE        MSGDSC
99
 
 
100
 
 
101