~mmach/netext73/xorg-intel

« back to all changes in this revision

Viewing changes to xvmc/shader/mc/frame_forward_igd.g4a

  • Committer: mmach
  • Date: 2021-03-17 18:24:35 UTC
  • Revision ID: netbit73@gmail.com-20210317182435-7okt04d35etrqgqp
lipiec

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* GRF allocation:
 
2
   g1~g30: constant buffer
 
3
           g1~g2:intra IQ matrix
 
4
           g3~g4:non intra IQ matrix
 
5
           g5~g20:IDCT table
 
6
   g31:    thread payload 
 
7
   g32:    message descriptor for reading reference data
 
8
   g58~g81:reference data
 
9
   g82:    thread payload backup
 
10
   g83~g106:IDCT data                           */
 
11
mov (8) g82.0<1>UD g31.0<8,8,1>UD {align1};
 
12
mov (1) g126.8<1>UD ip {align1};
 
13
add (1) ip g21.0<1,1,1>UD 0x50UD {align1};   //jump to the lib to do IDCT  
 
14
 
 
15
//Y, (x', y') = (x, y) + (motion_vector.x >> 1, motion_vector.y >> 1) 
 
16
asr (2) g31.14<1>W g82.14<2,2,1>W 1W {align1};  
 
17
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 
18
mov (1) g32.16<1>UW 0UW {align1};           //0:forward 1:backward
 
19
mov (1) a0.0<1>UD 0x0A4EUD {align1};        //g82.14,motion vector
 
20
mov (1) g126.8<1>UD ip {align1};
 
21
add (1) ip g21.0<1,1,1>UD 0x00UD {align1};   //jump to the lib to read reference data  
 
22
 
 
23
//UV, (x', y') = (x >> 1, y >> 1) + (motion_vector.x >> 2, motion_vector.y >> 2)
 
24
shr (2) g31.0<1>UD g31.0<2,2,1>UD 1UD {align1};
 
25
asr (2) g31.14<1>W g82.14<2,2,1>W 2W {align1};
 
26
add (2) g32.0<1>UD g31.0<2,2,1>UD g31.14<2,2,1>W {align1};
 
27
mov (1) g126.8<1>UD ip {align1};
 
28
add (1) ip g21.0<1,1,1>UD 0x10UD {align1};          //jump to the lib to read reference data  
 
29
 
 
30
add (1) ip g21.0<1,1,1>UD 0x40UD {align1};          //jump to the lib to add the reference and idct data