OSDN Git Service

i965_drv_video: add support for H264 on Clarkdale/Arrandale
[android-x86/hardware-intel-common-libva.git] / i965_drv_video / shaders / h264 / ildb / AVC_ILDB.inc
1 /*\r
2  * Copyright © <2010>, Intel Corporation.\r
3  *\r
4  * This program is licensed under the terms and conditions of the\r
5  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at\r
6  * http://www.opensource.org/licenses/eclipse-1.0.php.\r
7  *\r
8  */\r
9 #if !defined(__AVC_ILDB_HEADER__)       // Make sure this file is only included once\r
10 #define __AVC_ILDB_HEADER__\r
11 \r
12 // Module name: AVC_ILDB.inc\r
13 \r
14 #undef ORIX\r
15 #undef ORIY\r
16 \r
17 //========== Root thread input parameters ==================================================\r
18 #define RootParam                               r1              // :w\r
19 #define MBsCntX                                 r1.0    // :w, MB count per row\r
20 #define MBsCntY                                 r1.1    // :w, MB count per col\r
21 //#define PicType                                       r1.2    // :w, Picture type\r
22 #define MaxThreads                              r1.3    // :w, Max Thread limit\r
23 #define EntrySignature                  r1.4    // :w, Debug flag\r
24 #define BitFields                               r1.5    // :uw\r
25 #define         MbaffFlag                       BIT0    // :w, mbaff flag, bit 0 in BitFields\r
26 #define         BotFieldFlag            BIT1    // :w, bottom field flag, bit 1 in BitFields\r
27 #define         CntlDataExpFlag         BIT2    // :w, Control Data Expansion Flag, bit 2 in BitFields\r
28 #define RampConst                               r1.12   // 8 :ub, Ramp constant, r1.12 - r1.19:ub\r
29 #define StepToNextMB                    r1.20   // :b, 2 bytes\r
30 #define Minus2Minus1                    r1.22   // :b, 2 bytes\r
31 // next one starts at r1.11:w\r
32 \r
33 #define         TopFieldFlag            0xFFFD  // :w, top field flag, used to set bit1 to 0.\r
34 \r
35 \r
36 //========== Root Locals =============================================================\r
37 \r
38 // Variables in root kernel for launching child therad\r
39 #define ChildParam                              r2.0    // :w\r
40 //Not used  #define     URBOffset                               r2.3    // :w, Each row occupies 4 URB entries.  All children in the same row use the same set of URB entries\r
41 #define CurCol                                  r2.10   // :w, current col\r
42 #define CurColB                                 r2.20   // :b, current col\r
43 #define CurRow                                  r2.11   // :w, current row\r
44 #define CurRowB                                 r2.22   // :b, current row\r
45 #define LastCol                                 r2.12   // :w, last col\r
46 #define LastRow                                 r2.13   // :w, last row\r
47 \r
48 // Root local constants during spawning process\r
49 #define Col_Boundary                    r3.0    // :w, \r
50 #define Row_Boundary                    r3.1    // :w, \r
51 //#define       TotalBlocks                             r3.2    // :w, Total blocks in the frame \r
52 #define URB_EntriesPerMB_2              r3.3    // :w, = URB entries per MB, but in differnt form\r
53 #define URBOffsetUVBase                 r3.4    // :w, UV Base offset in URB\r
54 \r
55 #define Temp1_D                                 r3.6    // :d:\r
56 #define Temp1_W                                 r3.12   // :w, Temp1\r
57 #define Temp1_B                                 r3.24   // :b, = Temp1_W\r
58 #define Temp2_W                                 r3.13   // :w, Temp2\r
59 #define Temp2_B                                 r3.26   // :b, = Temp2_W\r
60 \r
61 // Root local variables\r
62 #define JumpTable                               r4              // :d, jump table\r
63 #define JUMPTABLE_BASE                  4*32\r
64 #define JumpAddr                                a0.7\r
65 \r
66 #define TopRowForScan                   r5.0    // :w, track the top row for scan. All rows above this row is deblocked already. \r
67 \r
68 \r
69 // Child Thread R0 Header Field\r
70 #define MRF0                                    m0              \r
71 #define CT_R0Hdr                                m1\r
72 \r
73 /*\r
74 .declare GatewayAperture        Base=r50.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud  \r
75 #define GatewayApertureB        1600    // r50 byte offset from r0.0\r
76 \r
77 // Chroma root thread updates luma root's ThreadLimit at r10.0:w via gateway\r
78 #define ThreadLimit                             r62.0   // :w, thread limit //r56.0\r
79 #define THREAD_LIMIT_OFFSET             0x01800000      // Offset from r50 to r56 = 12*32 = 384 = 0x0180.  0x180 << 16 = 0x01800000\r
80         //#define THREAD_LIMIT_OFFSET           0x00C00000      // Offset from r50 to r56 = 6*32 = 192 = 0x00C0.  0xC0 << 16 = 0x00C00000\r
81 */\r
82 \r
83 // Gateway size is 16 GRF.  68 rows of MBs takes 9 GRFs (r6 - r14)\r
84 // For CTG: Expended to support 1280 rows of pixel (80 rows of MBs).  It requires 10 GRFs (r6 - r15)\r
85 .declare GatewayAperture        Base=r6.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud   \r
86 #define GatewayApertureB        192     // r0.0 byte offset from r0.0\r
87 \r
88 // Chroma root thread updates luma root's ThreadLimit at r10.0:w via gateway\r
89 #define ThreadLimit                             r18.0   // :w, thread limit \r
90 #define THREAD_LIMIT_OFFSET             0x01800000      // Offset from r50 to r56 = 12*32 = 384 = 0x0180.  0x180 << 16 = 0x01800000\r
91 #define TotalBlocks                             r18.1   // :w, Total blocks in the frame \r
92 \r
93 // Root local variables\r
94 #define ChildThreadsID                  r19.0   // :w, Child thread ID, unique to each child\r
95 #define OutstandingThreads              r20.0   // :w, Outstanding threads \r
96 #define ProcessedMBs                    r20.1   // :w, # of MBs processed \r
97 \r
98 #define URBOffset                               r21.0   // :w, Each row occupies 4 URB entries.  All children in the same row use the same set of URB entries\r
99 \r
100 //=================================================================================\r
101 \r
102 #define ScoreBd_Size                    128 //96 // size of Status[] or ProcCol[]\r
103 \r
104 #define ScoreBd_Idx                             2               \r
105 //#define Saved_Col                             0\r
106 \r
107 #define StatusAddr                              a0.4    // :w, point to r50\r
108 //=================================================================================\r
109 \r
110 \r
111 // Gateway payload\r
112 #define GatewayPayload                  r48.0   // :ud\r
113 #define GatewayPayloadKey               r48.8   // :uw\r
114 #define DispatchID                              r48.20  // :ub\r
115 #define RegBase_GatewaySize     r48.5   // :ud, used in open a gateway\r
116 #define Offset_Length                   r48.5   // :ud, used in forwardmsg back to root\r
117 #define EUID_TID                                r48.9   // :uw, used in forwardmsg back to root\r
118 \r
119 // Gateway response\r
120 #define GatewayResponse                 r49.0   // :ud, one GRF\r
121 \r
122 #define URBWriteMsgDesc                 a0.0    // Used in URB write, :ud\r
123 #define URBWriteMsgDescLow              a0.0    // Used in URB write, :uw\r
124 #define URBWriteMsgDescHigh             a0.1    // Used in URB write, :uw\r
125 \r
126 .declare WritebackResponse              Base=r50 ElementSize=4 SrcRegion=REGION(8,1) Type=ud    // 1 GRF for write backs\r
127 \r
128 \r
129 /////////////////////////////////////////////////////////////////////////////////////////////\r
130 // IDesc Order                                  Offset\r
131 //\r
132 // 0) luma root                                 0 from luma root\r
133 // 1) luma child                                16 from luma root\r
134 // 2) chroma root                               32 from luma root\r
135 // 3) chroma child                              16 from chroma root\r
136 \r
137 // 4) luma field root                   0 from luma field root\r
138 // 5) luma field child                  16 from luma field root\r
139 // 6) chroma field root                 32 from luma field root\r
140 // 7) chroma field child                16 from chroma field root\r
141 \r
142 // 8) luma Mbaff root                   0 from luma Mbaff root\r
143 // 9) luma Mbaff child                  16 from luma Mbaff root\r
144 // 10) chroma Mbaff root                32 from luma Mbaff root\r
145 // 11) chroma Mbaff child               16 from chroma Mbaff root\r
146 \r
147 // IDesc offset within non-mbaff or mbaff mode\r
148 #define CHROMA_ROOT_OFFSET              32              // Offset from luma root to chroma root\r
149 #define CHILD_OFFSET                    16              // Offset from luma root to luma child, \r
150                                                                                 // and from chroma root to chroma child\r
151 /////////////////////////////////////////////////////////////////////////////////////////////\r
152 \r
153 \r
154 //========== End of Root Variables ======================================================\r
155 \r
156 \r
157 //========== Child thread input parameters ==============================================\r
158 //#define       MBsCntX                                 r1.0    // :w, MB count per row (same as root)\r
159 //#define       MBsCntY                                 r1.1    // :w, MB count per col (same as root)\r
160 //#define PicTypeC                              r1.2    // :w, Picture type             same as root thread (same as root)\r
161 #define URBOffsetC                              r1.3    // :w, \r
162 #define EntrySignatureC                 r1.4    // :w, Debug field (same as root)\r
163 //#define BitFields                             r1.5    // :w (same as root)\r
164 //#define       MbaffFlag                       BIT0    // :w, mbaff flag, bit 0 in BitFields\r
165 //#define       BotFieldFlag            BIT1    // :w, bottom field flag, bit 1 in BitFields\r
166 //#define       CntlDataExpFlag         BIT2    // :w, Control Data Expansion Flag, bit 2 in BitFields\r
167 #define RampConstC                              r1.12   // 8 :ub, Ramp constant, r1.12 - r1.19:ub.\r
168 #define ORIX                                    r1.10   // :w, carry over from root r1 in MB count\r
169 #define ORIY                                    r1.11   // :w, carry over from root r1 in MB count\r
170 #define LastColC                                r1.12   // :w, last col\r
171 #define LastRowC                                r1.13   // :w, last row\r
172 \r
173 .declare GatewayApertureC               Base=r1.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud   \r
174 #define GatewayApertureCBase    32              // r1 byte offset from r0.0\r
175 \r
176 \r
177 //========== Child Variables ============================================================\r
178 \r
179 // Mbaff Alpha, Beta, Tc0 vectors for an edge\r
180 .declare Mbaff_ALPHA    Base=r14.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r14\r
181 .declare Mbaff_BETA     Base=r15.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r15\r
182 .declare Mbaff_TC0              Base=r16.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r16\r
183 .declare RRampW                 Base=r17.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w           // r17\r
184 \r
185 .declare Mbaff_ALPHA2   Base=r45.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // alpha2 = (alpha >> 2) + 2\r
186 \r
187 \r
188 #define ORIX_CUR                                r46.0   // :w, current block origin X in bytes\r
189 #define ORIY_CUR                                r46.1   // :w, current block origin Y in bytes\r
190 #define ORIX_LEFT                               r46.2   // :w, left block origin X in bytes\r
191 #define ORIY_LEFT                               r46.3   // :w, left block origin Y in bytes\r
192 #define ORIX_TOP                                r46.4   // :w, top block origin X in bytes\r
193 #define ORIY_TOP                                r46.5   // :w, top block origin Y in bytes\r
194 //#define FilterSampleFlag              r46.6   // :uw,\r
195 #define CTemp0_W                                r46.7   // :w, child Temp0\r
196 \r
197 #define alpha                                   r46.8   // :w, Scaler version for non Mbaff\r
198 #define beta                                    r46.9   // :w, Scaler version for non Mbaff\r
199 #define tc0                                             r46.20  // 4 :ub, r46.20 ~ r46.23, Scaler version for non Mbaff\r
200 #define MaskA                                   r46.12  // :uw\r
201 #define MaskB                                   r46.13  // :uw\r
202 \r
203 // Child control flags\r
204 #define DualFieldMode                   r47.0   // Cur MB is frame based, above MB is field based in mbaff mode\r
205                                                                                 // :uw, 0 = not in dual field mode,  1 = in dual field mode, filter both top and bot fields\r
206 #define GateWayOffsetC                  r47.1   // :w, Gateway offset for child writing into root space\r
207 #define CntrlDataOffsetY                r47.1   // :ud, MB control data data offset\r
208 #define alpha2                                  r47.4   // :uw,         alpha2 = (alpha >> 2) + 2\r
209 \r
210 #define VertEdgePattern                 r47.5   // :uw, \r
211 \r
212 #define CTemp1_W                                r47.6   // :w, child Temp1\r
213 #define CTemp1_B                                r47.12  // :b, = child Temp1_W\r
214 #define CTemp2_W                                r47.7   // :w, child Temp2\r
215 #define CTemp2_B                                r47.14  // :b, = child Temp2_W\r
216 \r
217 // Used in child\r
218 #define ECM_AddrReg                             a0.4    // Edge Control Map register\r
219 #define P_AddrReg                               a0.6    // point to P samples in left or top MB\r
220 #define Q_AddrReg                               a0.7    // point to Q samples in cur MB\r
221 \r
222 \r
223 .declare        RTempD     Base=r26.0 ElementSize=4 SrcRegion=REGION(8,1) Type=d        // r26-27\r
224 .declare        RTempB     Base=r26.0 ElementSize=1 SrcRegion=REGION(8,4) Type=ub       // r26-27\r
225 .declare        RTempW     Base=r26.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w        // r26-27\r
226 #define         LEFT_TEMP_D             RTempD\r
227 #define         LEFT_TEMP_B             RTempB\r
228 #define         LEFT_TEMP_W             RTempW\r
229 \r
230 .declare        TempRow0   Base=r26.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
231 .declare        TempRow0B  Base=r26.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub\r
232 .declare        TempRow1   Base=r27.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
233 .declare        TempRow1B  Base=r27.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub\r
234 \r
235 .declare        CUR_TEMP_D      Base=r28.0 ElementSize=4 SrcRegion=REGION(8,1) Type=d   // 8 GRFs\r
236 .declare        CUR_TEMP_B      Base=r28.0 ElementSize=1 SrcRegion=REGION(8,4) Type=ub\r
237 .declare        CUR_TEMP_W      Base=r28.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
238 \r
239 #define FilterSampleFlag                r28.0   // :uw,\r
240 \r
241 .declare        A               Base=r28.0 ElementSize=2 SrcRegion=REGION(16,1) Type=w\r
242 .declare        B               Base=r29.0 ElementSize=2 SrcRegion=REGION(16,1) Type=w\r
243 \r
244 .declare        TempRow3   Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
245 .declare        TempRow3B  Base=r30.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub\r
246 \r
247 .declare        tc0_exp         Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
248 .declare        tc8                     Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
249 \r
250 .declare        tc_exp          Base=r31.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
251 .declare        tx_exp_8        Base=r31.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
252 \r
253 .declare        q0_p0           Base=r32.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
254 .declare        ABS_q0_p0       Base=r33.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
255 \r
256 .declare        ap                      Base=r34.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
257 .declare        aq                      Base=r35.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
258 \r
259 // These buffers have the src data for each edge to be beblocked.\r
260 // They have modified pixels from previous edges.\r
261 //\r
262 //      Y:\r
263 //      +----+----+----+----+----+----+----+----+\r
264 //      | p3 | p2 | P1 | p0 | q0 | q1 | q2 | q3 |\r
265 //      +----+----+----+----+----+----+----+----+\r
266 //\r
267 //      p3 = r[P_AddrReg, 0]<16;16,1>  \r
268 //      p2 = r[P_AddrReg, 16]<16;16,1> \r
269 //      p1 = r[P_AddrReg, 32]<16;16,1> \r
270 //      p0 = r[P_AddrReg, 48]<16;16,1> \r
271 //      q0 = r[Q_AddrReg, 0]<16;16,1>  \r
272 //      q1 = r[Q_AddrReg, 16]<16;16,1> \r
273 //      q2 = r[Q_AddrReg, 32]<16;16,1> \r
274 //      q3 = r[Q_AddrReg, 48]<16;16,1> \r
275 \r
276 .declare        p0123_W         Base=r36.0  ElementSize=2 SrcRegion=REGION(16,1) Type=uw                // r36, r37\r
277 .declare        q0123_W         Base=r38.0  ElementSize=2 SrcRegion=REGION(16,1) Type=uw                // r38, r39\r
278 .declare        p3                      Base=r36.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
279 .declare        p2                      Base=r36.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
280 .declare        p1                      Base=r37.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
281 .declare        p0                      Base=r37.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
282 .declare        q0                      Base=r38.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
283 .declare        q1                      Base=r38.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
284 .declare        q2                      Base=r39.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
285 .declare        q3                      Base=r39.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub\r
286 \r
287 .declare        TempRow2   Base=r38.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
288 \r
289 // Temp space for mbaff dual field mode\r
290 #define         ABOVE_CUR_MB_BASE       40*GRFWIB                                                                                       // Byte offset to r40\r
291 .declare    ABOVE_CUR_MB_YW  Base=r40   ElementSize=2 SrcRegion=REGION(8,1) Type=uw\r
292 .declare    ABOVE_CUR_MB_UW  Base=r40   ElementSize=2 SrcRegion=REGION(8,1) Type=uw\r
293 \r
294 .declare        P0_plus_P1   Base=r41.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
295 .declare        Q0_plus_Q1   Base=r42.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
296 \r
297 .declare        P2_plus_P3   Base=r43.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
298 .declare        Q2_plus_Q3   Base=r44.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w\r
299 \r
300 \r
301 //////////////////////////////////////////////////////////////////////////////////////////\r
302 // MB control data reference\r
303 \r
304 // Expanded control data is in r18 - r25\r
305 .declare    CNTRL_DATA_D Base=r18       ElementSize=4 SrcRegion=REGION(8,1) Type=ud             // For read, 8 GRFs\r
306 #define         CNTRL_DATA_BASE 18*GRFWIB                                                                                               // Base offset to r18\r
307 \r
308 //  Bit mask for extracting bits\r
309 #define MbaffFrameFlag                                  0x01\r
310 #define FieldModeCurrentMbFlag                  0x02\r
311 #define FieldModeLeftMbFlag                             0x04\r
312 #define FieldModeAboveMbFlag                    0x08\r
313 #define FilterInternal8x8EdgesFlag              0x10\r
314 #define FilterInternal4x4EdgesFlag              0x20\r
315 #define FilterLeftMbEdgeFlag                    0x40\r
316 #define FilterTopMbEdgeFlag                             0x80\r
317 \r
318 #define DISABLE_ILDB_FLAG                               0x01\r
319 \r
320 //  Exact bit pattern for left and cur MB coding mode (frame vs. field)\r
321 #define LEFT_FRAME_CUR_FRAME                    0x00\r
322 #define LEFT_FRAME_CUR_FIELD                    0x02\r
323 #define LEFT_FIELD_CUR_FRAME                    0x04\r
324 #define LEFT_FIELD_CUR_FIELD                    0x06\r
325 \r
326 //  Exact bit pattern for above and cur MB coding mode (frame vs. field)\r
327 #define ABOVE_FRAME_CUR_FRAME                   0x00\r
328 #define ABOVE_FRAME_CUR_FIELD                   0x02\r
329 #define ABOVE_FIELD_CUR_FRAME                   0x08\r
330 #define ABOVE_FIELD_CUR_FIELD                   0x0A\r
331 \r
332 \r
333 \r
334 //========== MB control data field offset in byte ==========\r
335 \r
336 #if !defined(_APPLE)\r
337 \r
338 // GRF0 - GRF1 holds original control data\r
339 \r
340 // GRF0\r
341 #define HorizOrigin                                             0\r
342 #define VertOrigin                                              1\r
343 #define BitFlags                                                2               // Bit flags\r
344 \r
345 #define bbSinternalLeftVert                             4               // Internal left vertical bS, 2 bits per bS for 4 Y pixels and 2 U/V pixels     \r
346 #define bbSinternalMidVert                              5               // Internal mid vertical bS\r
347 #define bbSinternalRightVert                    6               // Internal right vertical bS\r
348 #define bbSinternalTopHorz                              7               // Internal top horizontal bS\r
349 \r
350 #define bbSinternalMidHorz                              8               // Internal mid horizontal bS\r
351 #define bbSinternalBotHorz                              9               // Internal bottom horizontal bS\r
352 #define wbSLeft0                                                10              // External left vertical bS (0), 4 bits per bS for 4 Y pixels and 2 U/V pixels, and byte 11\r
353 \r
354 #define wbSLeft1                                                12              // External left vertical bS (1), and byte 13\r
355 #define wbSTop0                                                 14              // External top horizontal bS (0), and byte 15\r
356 \r
357 #define wbSTop1                                                 16              // Externaltop horizontal bS (1), and byte 17\r
358 #define bIndexAinternal_Y                               18              // Internal index A for Y\r
359 #define bIndexBinternal_Y                               19              // Internal index B for Y\r
360 \r
361 #define bIndexAleft0_Y                                  20              // Left index A for Y (0)\r
362 #define bIndexBleft0_Y                                  21              // Left index B for Y (0)\r
363 #define bIndexAleft1_Y                                  22              // Left index A for Y (1)\r
364 #define bIndexBleft1_Y                                  23              // Left index B for Y (1)\r
365 \r
366 #define bIndexAtop0_Y                                   24              // Top index A for Y (0)\r
367 #define bIndexBtop0_Y                                   25              // Top index B for Y (0)\r
368 #define bIndexAtop1_Y                                   26              // Top index A for Y (1)\r
369 #define bIndexBtop1_Y                                   27              // Top index B for Y (1)\r
370 \r
371 #define bIndexAinternal_Cb                              28              // Internal index A for Cb\r
372 #define bIndexBinternal_Cb                              29              // Internal index B for Cb\r
373 #define bIndexAleft0_Cb                                 30              // Left index A for Cb (0)\r
374 #define bIndexBleft0_Cb                                 31              // Left index B for Cb (0)\r
375 \r
376 // GRF1\r
377 #define bIndexAleft1_Cb                                 32              // Left index A for Cb (1)\r
378 #define bIndexBleft1_Cb                                 33              // Left index B for Cb (1)\r
379 #define bIndexAtop0_Cb                                  34              // Top index A for Cb (0)\r
380 #define bIndexBtop0_Cb                                  35              // Top index B for Cb (0)\r
381 \r
382 #define bIndexAtop1_Cb                                  36              // Top index A for Cb (1)\r
383 #define bIndexBtop1_Cb                                  37              // Top index B for Cb (1)\r
384 #define bIndexAinternal_Cr                              38              // Internal index A for Cr\r
385 #define bIndexBinternal_Cr                              39              // Internal index B for Cr\r
386 \r
387 #define bIndexAleft0_Cr                                 40              // Left index A for Cr (0)\r
388 #define bIndexBleft0_Cr                                 41              // Left index B for Cr (0)\r
389 #define bIndexAleft1_Cr                                 42              // Left index A for Cr (1)\r
390 #define bIndexBleft1_Cr                                 43              // Left index B for Cr (1)\r
391 \r
392 #define bIndexAtop0_Cr                                  44              // Top index A for Cr (0)\r
393 #define bIndexBtop0_Cr                                  45              // Top index B for Cr (0)\r
394 #define bIndexAtop1_Cr                                  46              // Top index A for Cr (1)\r
395 #define bIndexBtop1_Cr                                  47              // Top index B for Cr (1)\r
396 \r
397 #define ExtBitFlags                                             48              // Extended bit flags, such as disable ILDB bits\r
398 \r
399 // Offset 49 - 63 not used\r
400 \r
401 \r
402 //===== GRF2 - GRF7 hold expanded control data =====\r
403 \r
404 // GRF2\r
405 #define wEdgeCntlMap_IntLeftVert                64              // Derived from bbSinternalLeftVert, 1 bit per pixel \r
406 #define wEdgeCntlMap_IntMidVert                 66              // Derived from bbSinternalLeftVert\r
407                 \r
408 #define wEdgeCntlMap_IntRightVert               68              // Derived from bbSinternalRightVert\r
409 #define wEdgeCntlMap_IntTopHorz                 70              // Derived from bbSinternalTopHorz, 1bit per pixel \r
410                 \r
411 #define wEdgeCntlMap_IntMidHorz                 72              // Derived from bbSinternalMidHorz\r
412 #define wEdgeCntlMap_IntBotHorz                 74              // Derived from bbSinternalBotHorz\r
413 \r
414 // Offset 76 - 79 not used\r
415 \r
416 #define wEdgeCntlMapA_ExtLeftVert0              80              // Derived from wbSLeft0, 1bit per pixel\r
417 #define wEdgeCntlMapB_ExtLeftVert0              82              // Derived from wbSLeft0\r
418 \r
419 #define wEdgeCntlMapA_ExtTopHorz0               84              // Derived from wbSTop0, 1bit per pixel\r
420 #define wEdgeCntlMapB_ExtTopHorz0               86              // Derived from wbSTop0\r
421 \r
422 #define wEdgeCntlMapA_ExtLeftVert1              88              // Derived from wbSLeft1, 1bit per pixel\r
423 #define wEdgeCntlMapB_ExtLeftVert1              90              // Derived from wbSLeft1\r
424 \r
425 #define wEdgeCntlMapA_ExtTopHorz1               92              // Derived from wbSTop1, 1bit per pixel\r
426 #define wEdgeCntlMapB_ExtTopHorz1               94              // Derived from wbSTop1\r
427 \r
428 \r
429 // GRF3\r
430 #define bTc0_v00_0_Y                                    96              // Derived from bSv00_0 and bIndexAleft0_Y, 4 pixels per tc0\r
431 #define bTc0_v10_0_Y                                    97              // Derived from bSv10_0 and bIndexAleft0_Y\r
432 #define bTc0_v20_0_Y                                    98              // Derived from bSv20_0 and bIndexAleft0_Y\r
433 #define bTc0_v30_0_Y                                    99              // Derived from bSv30_0 and bIndexAleft0_Y\r
434 \r
435 #define bTc0_v01_Y                                              100             // Derived from bSv01 and bIndexAinternal_Y\r
436 #define bTc0_v11_Y                                              101             // Derived from bSv11 and bIndexAinternal_Y\r
437 #define bTc0_v21_Y                                              102             // Derived from bSv21 and bIndexAinternal_Y\r
438 #define bTc0_v31_Y                                              103             // Derived from bSv31 and bIndexAinternal_Y\r
439 \r
440 #define bTc0_v02_Y                                              104             // Derived from bSv02 and bIndexAinternal_Y\r
441 #define bTc0_v12_Y                                              105             // Derived from bSv12 and bIndexAinternal_Y\r
442 #define bTc0_v22_Y                                              106             // Derived from bSv22 and bIndexAinternal_Y\r
443 #define bTc0_v32_Y                                              107             // Derived from bSv32 and bIndexAinternal_Y\r
444 \r
445 #define bTc0_v03_Y                                              108             // Derived from bSv03 and bIndexAinternal_Y\r
446 #define bTc0_v13_Y                                              109             // Derived from bSv13 and bIndexAinternal_Y\r
447 #define bTc0_v23_Y                                              110             // Derived from bSv23 and bIndexAinternal_Y\r
448 #define bTc0_v33_Y                                              111             // Derived from bSv33 and bIndexAinternal_Y\r
449 \r
450 #define bTc0_h00_0_Y                                    112             // Derived from bSh00_0 and bIndexAleft0_Y\r
451 #define bTc0_h01_0_Y                                    113             // Derived from bSh01_0 and bIndexAleft0_Y\r
452 #define bTc0_h02_0_Y                                    114             // Derived from bSh02_0 and bIndexAleft0_Y\r
453 #define bTc0_h03_0_Y                                    115             // Derived from bSh03_0 and bIndexAleft0_Y\r
454 \r
455 #define bTc0_h10_Y                                              116             // Derived from bSh10 and bIndexAinternal_Y\r
456 #define bTc0_h11_Y                                              117             // Derived from bSh11 and bIndexAinternal_Y\r
457 #define bTc0_h12_Y                                              118             // Derived from bSh12 and bIndexAinternal_Y\r
458 #define bTc0_h13_Y                                              119             // Derived from bSh13 and bIndexAinternal_Y\r
459                 \r
460 #define bTc0_h20_Y                                              120             // Derived from bSh20 and bIndexAinternal_Y\r
461 #define bTc0_h21_Y                                              121             // Derived from bSh21 and bIndexAinternal_Y\r
462 #define bTc0_h22_Y                                              122             // Derived from bSh22 and bIndexAinternal_Y\r
463 #define bTc0_h23_Y                                              123             // Derived from bSh23 and bIndexAinternal_Y\r
464 \r
465 #define bTc0_h30_Y                                              124             // Derived from bSh30 and bIndexAinternal_Y\r
466 #define bTc0_h31_Y                                              125             // Derived from bSh31 and bIndexAinternal_Y\r
467 #define bTc0_h32_Y                                              126             // Derived from bSh32 and bIndexAinternal_Y\r
468 #define bTc0_h33_Y                                              127             // Derived from bSh33 and bIndexAinternal_Y\r
469 \r
470 // GRF4\r
471 #define bAlphaLeft0_Y                                   128             // Derived from bIndexAleft0_Y  \r
472 #define bBetaLeft0_Y                                    129             // Derived from bIndexBleft0_Y  \r
473 #define bAlphaTop0_Y                                    130             // Derived from bIndexAtop0_Y   \r
474 #define bBetaTop0_Y                                             131             // Derived from bIndexBtop0_Y   \r
475 \r
476 #define bAlphaInternal_Y                                132             // Derived from bIndexAinternal_Y       \r
477 #define bBetaInternal_Y                                 133             // Derived from bIndexBinternal_Y       \r
478 // Offset 134 - 135 not used\r
479 \r
480 // Offset 136 - 143 not used\r
481 #define bAlphaLeft1_Y                                   144             // Derived from bIndexAleft1_Y  Used in Mbaff mode only\r
482 #define bBetaLeft1_Y                                    145             // Derived from bIndexBleft1_Y  Used in Mbaff mode only\r
483 #define bAlphaTop1_Y                                    146             // Derived from bIndexAtop1_Y   Used in Mbaff mode only\r
484 #define bBetaTop1_Y                                             147             // Derived from bIndexBtop1_Y   Used in Mbaff mode only\r
485 \r
486 // Offset 148 - 151 not used\r
487 #define bTc0_v00_1_Y                                    152             // Derived from bSv00_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
488 #define bTc0_v10_1_Y                                    153             // Derived from bSv10_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
489 #define bTc0_v20_1_Y                                    154             // Derived from bSv20_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
490 #define bTc0_v30_1_Y                                    155             // Derived from bSv30_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
491 \r
492 #define bTc0_h00_1_Y                                    156             // Derived from bSh00_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
493 #define bTc0_h01_1_Y                                    157             // Derived from bSh01_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
494 #define bTc0_h02_1_Y                                    158             // Derived from bSh02_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
495 #define bTc0_h03_1_Y                                    159             // Derived from bSh03_1 and bIndexAleft1_Y      Used in Mbaff mode only\r
496 \r
497 \r
498 // GRF5\r
499 #define bTc0_v00_0_Cb                                   160             // Derived from bSv00_0 and bIndexAleft0_Cb, 2 pixels per tc0   Left0\r
500 #define bTc0_v10_0_Cb                                   161             // Derived from bSv10_0 and bIndexAleft0_Cb     \r
501 #define bTc0_v20_0_Cb                                   162             // Derived from bSv20_0 and bIndexAleft0_Cb     \r
502 #define bTc0_v30_0_Cb                                   163             // Derived from bSv30_0 and bIndexAleft0_Cb     \r
503 \r
504 #define bTc0_v02_Cb                                             164             // Derived from bSv02 and bIndexAinternal_Cb    MidVert\r
505 #define bTc0_v12_Cb                                             165             // Derived from bSv12 and bIndexAinternal_Cb    \r
506 #define bTc0_v22_Cb                                             166             // Derived from bSv22 and bIndexAinternal_Cb    \r
507 #define bTc0_v32_Cb                                             167             // Derived from bSv32 and bIndexAinternal_Cb    \r
508 \r
509 #define bTc0_h00_0_Cb                                   168             // Derived from bSh00_0 and bIndexAleft0_Cb     Top0\r
510 #define bTc0_h01_0_Cb                                   169             // Derived from bSh01_0 and bIndexAleft0_Cb     \r
511 #define bTc0_h02_0_Cb                                   170             // Derived from bSh02_0 and bIndexAleft0_Cb     \r
512 #define bTc0_h03_0_Cb                                   171             // Derived from bSh03_0 and bIndexAleft0_Cb     \r
513 \r
514 #define bTc0_h20_Cb                                             172             // Derived from bSh20 and bIndexAinternal_Cb    MidHorz\r
515 #define bTc0_h21_Cb                                             173             // Derived from bSh21 and bIndexAinternal_Cb    \r
516 #define bTc0_h22_Cb                                             174             // Derived from bSh22 and bIndexAinternal_Cb    \r
517 #define bTc0_h23_Cb                                             175             // Derived from bSh23 and bIndexAinternal_Cb    \r
518 \r
519 #define bTc0_v00_0_Cr                                   176             // Derived from bSv00_0 and bIndexAleft0_Cr, 2 pixels per tc0   Left0\r
520 #define bTc0_v10_0_Cr                                   177             // Derived from bSv10_0 and bIndexAleft0_Cr     \r
521 #define bTc0_v20_0_Cr                                   178             // Derived from bSv20_0 and bIndexAleft0_Cr     \r
522 #define bTc0_v30_0_Cr                                   179             // Derived from bSv30_0 and bIndexAleft0_Cr     \r
523 \r
524 #define bTc0_v02_Cr                                             180             // Derived from bSv02 and bIndexAinternal_Cr    Mid Vert\r
525 #define bTc0_v12_Cr                                             181             // Derived from bSv12 and bIndexAinternal_Cr    \r
526 #define bTc0_v22_Cr                                             182             // Derived from bSv22 and bIndexAinternal_Cr    \r
527 #define bTc0_v32_Cr                                             183             // Derived from bSv32 and bIndexAinternal_Cr    \r
528 \r
529 #define bTc0_h00_0_Cr                                   184             // Derived from bSh00_0 and bIndexAleft0_Cr, 2 pixels per tc0   Top0\r
530 #define bTc0_h01_0_Cr                                   185             // Derived from bSh01_0 and bIndexAleft0_Cr     \r
531 #define bTc0_h02_0_Cr                                   186             // Derived from bSh02_0 and bIndexAleft0_Cr     \r
532 #define bTc0_h03_0_Cr                                   187             // Derived from bSh03_0 and bIndexAleft0_Cr     \r
533 \r
534 #define bTc0_h20_Cr                                             188             // Derived from bSh20 and bIndexAinternal_Cr    Mid  Horz\r
535 #define bTc0_h21_Cr                                             189             // Derived from bSh21 and bIndexAinternal_Cr    \r
536 #define bTc0_h22_Cr                                             190             // Derived from bSh22 and bIndexAinternal_Cr    \r
537 #define bTc0_h23_Cr                                             191             // Derived from bSh23 and bIndexAinternal_Cr    \r
538 \r
539 // GRF6\r
540 #define bAlphaLeft0_Cb                                  192             // Derived from bIndexAleft0_Cb\r
541 #define bBetaLeft0_Cb                                   193             // Derived from bIndexBleft0_Cb\r
542 #define bAlphaTop0_Cb                                   194             // Derived from bIndexAtop0_Cb\r
543 #define bBetaTop0_Cb                                    195             // Derived from bIndexBtop0_Cb\r
544 \r
545 #define bAlphaInternal_Cb                               196             // Derived from bIndexAinternal_Cb\r
546 #define bBetaInternal_Cb                                197             // Derived from bIndexBinternal_Cb\r
547 // Offset 198 - 199 not used            \r
548 \r
549 #define bAlphaLeft0_Cr                                  200             // Derived from bIndexAleft0_Cr\r
550 #define bBetaLeft0_Cr                                   201             // Derived from bIndexBleft0_Cr\r
551 #define bAlphaTop0_Cr                                   202             // Derived from bIndexAtop0_Cr\r
552 #define bBetaTop0_Cr                                    203             // Derived from bIndexBtop0_Cr\r
553 \r
554 #define bAlphaInternal_Cr                               204             // Derived from bIndexAinternal_Cr\r
555 #define bBetaInternal_Cr                                205             // Derived from bIndexBinternal_Cr\r
556 // Offset 206 - 223 not used            \r
557 \r
558 // GRF7\r
559 #define bAlphaLeft1_Cb                                  224             // Derived from bIndexAleft1_Cb Used in Mbaff mode only\r
560 #define bBetaLeft1_Cb                                   225             // Derived from bIndexBleft1_Cb Used in Mbaff mode only\r
561 #define bAlphaTop1_Cb                                   226             // Derived from bIndexAtop1_Cb  Used in Mbaff mode only\r
562 #define bBetaTop1_Cb                                    227             // Derived from bIndexBtop1_Cb  Used in Mbaff mode only\r
563 \r
564 // Offset 228 - 231 not used\r
565 \r
566 #define bTc0_v00_1_Cb                                   232             // Derived from bSv00_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
567 #define bTc0_v10_1_Cb                                   233             // Derived from bSv10_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
568 #define bTc0_v20_1_Cb                                   234             // Derived from bSv20_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
569 #define bTc0_v30_1_Cb                                   235             // Derived from bSv30_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
570 \r
571 #define bTc0_h00_1_Cb                                   236             // Derived from bSh00_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
572 #define bTc0_h01_1_Cb                                   237             //      Derived from bSh01_1 and bIndexAleft1_Cb        Used in Mbaff mode only\r
573 #define bTc0_h02_1_Cb                                   238             // Derived from bSh02_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
574 #define bTc0_h03_1_Cb                                   239             // Derived from bSh03_1 and bIndexAleft1_Cb     Used in Mbaff mode only\r
575 \r
576 #define bAlphaLeft1_Cr                                  240             // Derived from bIndexAleft1_Cr Used in Mbaff mode only\r
577 #define bBetaLeft1_Cr                                   241             // Derived from bIndexBleft1_Cr Used in Mbaff mode only\r
578 #define bAlphaTop1_Cr                                   242             // Derived from bIndexAtop1_Cr  Used in Mbaff mode only\r
579 #define bBetaTop1_Cr                                    243             // Derived from bIndexBtop1_Cr  Used in Mbaff mode only\r
580 \r
581 // Offset 244 - 247 not used            \r
582 \r
583 #define bTc0_v00_1_Cr                                   248             // Derived from bSv00_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
584 #define bTc0_v10_1_Cr                                   249             // Derived from bSv10_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
585 #define bTc0_v20_1_Cr                                   250             // Derived from bSv20_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
586 #define bTc0_v30_1_Cr                                   251             // Derived from bSv30_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
587 \r
588 #define bTc0_h00_1_Cr                                   252             // Derived from bSh00_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
589 #define bTc0_h01_1_Cr                                   253             // Derived from bSh01_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
590 #define bTc0_h02_1_Cr                                   254             // Derived from bSh02_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
591 #define bTc0_h03_1_Cr                                   255             // Derived from bSh03_1 and bIndexAleft1_Cr     Used in Mbaff mode only\r
592 \r
593 \r
594 #else           // _APPLE is defined\r
595 \r
596 //******** Crestline for Apple, progressive only, 88 bytes **********\r
597 \r
598 // GRF0\r
599 #define HorizOrigin                                             0\r
600 #define VertOrigin                                              1\r
601 #define BitFlags                                                2               // Bit flags\r
602 \r
603 #define wEdgeCntlMap_IntLeftVert                4               // Derived from bbSinternalLeftVert, 1 bit per pixel \r
604 #define wEdgeCntlMap_IntMidVert                 6               // Derived from bbSinternalLeftVert\r
605 #define wEdgeCntlMap_IntRightVert               8               // Derived from bbSinternalRightVert\r
606 #define wEdgeCntlMap_IntTopHorz                 10              // Derived from bbSinternalTopHorz, 1bit per pixel \r
607 #define wEdgeCntlMap_IntMidHorz                 12              // Derived from bbSinternalMidHorz\r
608 #define wEdgeCntlMap_IntBotHorz                 14              // Derived from bbSinternalBotHorz\r
609 #define wEdgeCntlMapA_ExtLeftVert0              16              // Derived from wbSLeft0, 1bit per pixel\r
610 #define wEdgeCntlMapB_ExtLeftVert0              18              // Derived from wbSLeft0\r
611 #define wEdgeCntlMapA_ExtTopHorz0               20              // Derived from wbSTop0, 1bit per pixel\r
612 #define wEdgeCntlMapB_ExtTopHorz0               22              // Derived from wbSTop0\r
613 \r
614 #define bAlphaLeft0_Y                                   24              // Derived from bIndexAleft0_Y  \r
615 #define bBetaLeft0_Y                                    25              // Derived from bIndexBleft0_Y  \r
616 #define bAlphaTop0_Y                                    26              // Derived from bIndexAtop0_Y   \r
617 #define bBetaTop0_Y                                             27              // Derived from bIndexBtop0_Y   \r
618 #define bAlphaInternal_Y                                28              // Derived from bIndexAinternal_Y       \r
619 #define bBetaInternal_Y                                 29              // Derived from bIndexBinternal_Y       \r
620 \r
621 // GRF1\r
622 #define bTc0_v00_0_Y                                    32              // Derived from bSv00_0 and bIndexAleft0_Y, 4 pixels per tc0\r
623 #define bTc0_v10_0_Y                                    33              // Derived from bSv10_0 and bIndexAleft0_Y\r
624 #define bTc0_v20_0_Y                                    34              // Derived from bSv20_0 and bIndexAleft0_Y\r
625 #define bTc0_v30_0_Y                                    35              // Derived from bSv30_0 and bIndexAleft0_Y\r
626 #define bTc0_v01_Y                                              36              // Derived from bSv01 and bIndexAinternal_Y\r
627 #define bTc0_v11_Y                                              37              // Derived from bSv11 and bIndexAinternal_Y\r
628 #define bTc0_v21_Y                                              38              // Derived from bSv21 and bIndexAinternal_Y\r
629 #define bTc0_v31_Y                                              39              // Derived from bSv31 and bIndexAinternal_Y\r
630 #define bTc0_v02_Y                                              40              // Derived from bSv02 and bIndexAinternal_Y\r
631 #define bTc0_v12_Y                                              41              // Derived from bSv12 and bIndexAinternal_Y\r
632 #define bTc0_v22_Y                                              42              // Derived from bSv22 and bIndexAinternal_Y\r
633 #define bTc0_v32_Y                                              43              // Derived from bSv32 and bIndexAinternal_Y\r
634 #define bTc0_v03_Y                                              44              // Derived from bSv03 and bIndexAinternal_Y\r
635 #define bTc0_v13_Y                                              45              // Derived from bSv13 and bIndexAinternal_Y\r
636 #define bTc0_v23_Y                                              46              // Derived from bSv23 and bIndexAinternal_Y\r
637 #define bTc0_v33_Y                                              47              // Derived from bSv33 and bIndexAinternal_Y\r
638 \r
639 #define bTc0_h00_0_Y                                    48              // Derived from bSh00_0 and bIndexAleft0_Y\r
640 #define bTc0_h01_0_Y                                    49              // Derived from bSh01_0 and bIndexAleft0_Y\r
641 #define bTc0_h02_0_Y                                    50              // Derived from bSh02_0 and bIndexAleft0_Y\r
642 #define bTc0_h03_0_Y                                    51              // Derived from bSh03_0 and bIndexAleft0_Y\r
643 #define bTc0_h10_Y                                              52              // Derived from bSh10 and bIndexAinternal_Y\r
644 #define bTc0_h11_Y                                              53              // Derived from bSh11 and bIndexAinternal_Y\r
645 #define bTc0_h12_Y                                              54              // Derived from bSh12 and bIndexAinternal_Y\r
646 #define bTc0_h13_Y                                              55              // Derived from bSh13 and bIndexAinternal_Y\r
647 #define bTc0_h20_Y                                              56              // Derived from bSh20 and bIndexAinternal_Y\r
648 #define bTc0_h21_Y                                              57              // Derived from bSh21 and bIndexAinternal_Y\r
649 #define bTc0_h22_Y                                              58              // Derived from bSh22 and bIndexAinternal_Y\r
650 #define bTc0_h23_Y                                              59              // Derived from bSh23 and bIndexAinternal_Y\r
651 #define bTc0_h30_Y                                              60              // Derived from bSh30 and bIndexAinternal_Y\r
652 #define bTc0_h31_Y                                              61              // Derived from bSh31 and bIndexAinternal_Y\r
653 #define bTc0_h32_Y                                              62              // Derived from bSh32 and bIndexAinternal_Y\r
654 #define bTc0_h33_Y                                              63              // Derived from bSh33 and bIndexAinternal_Y\r
655 \r
656 // GRF2, \r
657 #define bTc0_v00_0_Cb                                   64              // Derived from bSv00_0 and bIndexAleft0_Cb, 2 pixels per tc0   Left0\r
658 #define bTc0_v10_0_Cb                                   65              // Derived from bSv10_0 and bIndexAleft0_Cb     \r
659 #define bTc0_v20_0_Cb                                   66              // Derived from bSv20_0 and bIndexAleft0_Cb     \r
660 #define bTc0_v30_0_Cb                                   67              // Derived from bSv30_0 and bIndexAleft0_Cb     \r
661 #define bTc0_v02_Cb                                             68              // Derived from bSv02 and bIndexAinternal_Cb    MidVert\r
662 #define bTc0_v12_Cb                                             69              // Derived from bSv12 and bIndexAinternal_Cb    \r
663 #define bTc0_v22_Cb                                             70              // Derived from bSv22 and bIndexAinternal_Cb    \r
664 #define bTc0_v32_Cb                                             71              // Derived from bSv32 and bIndexAinternal_Cb    \r
665 #define bTc0_h00_0_Cb                                   72              // Derived from bSh00_0 and bIndexAleft0_Cb     Top0\r
666 #define bTc0_h01_0_Cb                                   73              // Derived from bSh01_0 and bIndexAleft0_Cb     \r
667 #define bTc0_h02_0_Cb                                   74              // Derived from bSh02_0 and bIndexAleft0_Cb     \r
668 #define bTc0_h03_0_Cb                                   75              // Derived from bSh03_0 and bIndexAleft0_Cb     \r
669 #define bTc0_h20_Cb                                             76              // Derived from bSh20 and bIndexAinternal_Cb    MidHorz\r
670 #define bTc0_h21_Cb                                             77              // Derived from bSh21 and bIndexAinternal_Cb    \r
671 #define bTc0_h22_Cb                                             78              // Derived from bSh22 and bIndexAinternal_Cb    \r
672 #define bTc0_h23_Cb                                             79              // Derived from bSh23 and bIndexAinternal_Cb    \r
673 \r
674 #define bAlphaLeft0_Cb                                  80              // Derived from bIndexAleft0_Cb\r
675 #define bBetaLeft0_Cb                                   81              // Derived from bIndexBleft0_Cb\r
676 #define bAlphaTop0_Cb                                   82              // Derived from bIndexAtop0_Cb\r
677 #define bBetaTop0_Cb                                    83              // Derived from bIndexBtop0_Cb\r
678 #define bAlphaInternal_Cb                               84              // Derived from bIndexAinternal_Cb\r
679 #define bBetaInternal_Cb                                85              // Derived from bIndexBinternal_Cb\r
680 \r
681 #define ExtBitFlags                                             86              // Extended bit flags, such as disable ILDB bits\r
682 \r
683 // Shared between Cb and Cr\r
684 #define bTc0_v00_0_Cr                   bTc0_v00_0_Cb   \r
685 #define bTc0_v10_0_Cr               bTc0_v10_0_Cb       \r
686 #define bTc0_v20_0_Cr               bTc0_v20_0_Cb       \r
687 #define bTc0_v30_0_Cr               bTc0_v30_0_Cb       \r
688 #define bTc0_v02_Cr                         bTc0_v02_Cb         \r
689 #define bTc0_v12_Cr                         bTc0_v12_Cb         \r
690 #define bTc0_v22_Cr                         bTc0_v22_Cb         \r
691 #define bTc0_v32_Cr                         bTc0_v32_Cb         \r
692 #define bTc0_h00_0_Cr               bTc0_h00_0_Cb       \r
693 #define bTc0_h01_0_Cr               bTc0_h01_0_Cb       \r
694 #define bTc0_h02_0_Cr               bTc0_h02_0_Cb       \r
695 #define bTc0_h03_0_Cr               bTc0_h03_0_Cb       \r
696 #define bTc0_h20_Cr                         bTc0_h20_Cb         \r
697 #define bTc0_h21_Cr                         bTc0_h21_Cb         \r
698 #define bTc0_h22_Cr                         bTc0_h22_Cb         \r
699 #define bTc0_h23_Cr                         bTc0_h23_Cb         \r
700                                 \r
701 #define bAlphaLeft0_Cr              bAlphaLeft0_Cb                 \r
702 #define bBetaLeft0_Cr               bBetaLeft0_Cb                  \r
703 #define bAlphaTop0_Cr               bAlphaTop0_Cb                  \r
704 #define bBetaTop0_Cr                bBetaTop0_Cb                   \r
705 #define bAlphaInternal_Cr           bAlphaInternal_Cb      \r
706 #define bBetaInternal_Cr            bBetaInternal_Cb       \r
707 \r
708 \r
709 #endif\r
710 \r
711 \r
712 //========== End of Child Variables ===============================================================\r
713 \r
714 #if !defined(COMBINED_KERNEL)\r
715 #define ILDB_LABEL(x)   x               // No symbol extension for standalone kernels\r
716 #endif\r
717 \r
718 #endif  // !defined(__AVC_ILDB_HEADER__)\r