blob: 77ad2ec29bab39878b2a32c629495e05493861a3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
|
/*
* Copyright © 2010 Jerome Glisse <glisse@freedesktop.org>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef R600D_H
#define R600D_H
#define PKT3_NOP 0x10
#define PKT3_INDIRECT_BUFFER_END 0x17
#define PKT3_SET_PREDICATION 0x20
#define PKT3_REG_RMW 0x21
#define PKT3_COND_EXEC 0x22
#define PKT3_PRED_EXEC 0x23
#define PKT3_START_3D_CMDBUF 0x24
#define PKT3_DRAW_INDEX_2 0x27
#define PKT3_CONTEXT_CONTROL 0x28
#define PKT3_DRAW_INDEX_IMMD_BE 0x29
#define PKT3_INDEX_TYPE 0x2A
#define PKT3_DRAW_INDEX 0x2B
#define PKT3_DRAW_INDEX_AUTO 0x2D
#define PKT3_DRAW_INDEX_IMMD 0x2E
#define PKT3_NUM_INSTANCES 0x2F
#define PKT3_STRMOUT_BUFFER_UPDATE 0x34
#define PKT3_INDIRECT_BUFFER_MP 0x38
#define PKT3_MEM_SEMAPHORE 0x39
#define PKT3_MPEG_INDEX 0x3A
#define PKT3_WAIT_REG_MEM 0x3C
#define PKT3_MEM_WRITE 0x3D
#define PKT3_INDIRECT_BUFFER 0x32
#define PKT3_CP_INTERRUPT 0x40
#define PKT3_SURFACE_SYNC 0x43
#define PKT3_ME_INITIALIZE 0x44
#define PKT3_COND_WRITE 0x45
#define PKT3_EVENT_WRITE 0x46
#define PKT3_EVENT_WRITE_EOP 0x47
#define PKT3_ONE_REG_WRITE 0x57
#define PKT3_SET_CONFIG_REG 0x68
#define PKT3_SET_CONTEXT_REG 0x69
#define PKT3_SET_ALU_CONST 0x6A
#define PKT3_SET_BOOL_CONST 0x6B
#define PKT3_SET_LOOP_CONST 0x6C
#define PKT3_SET_RESOURCE 0x6D
#define PKT3_SET_SAMPLER 0x6E
#define PKT3_SET_CTL_CONST 0x6F
#define PKT3_SURFACE_BASE_UPDATE 0x73
#define PKT_TYPE_S(x) (((x) & 0x3) << 30)
#define PKT_TYPE_G(x) (((x) >> 30) & 0x3)
#define PKT_TYPE_C 0x3FFFFFFF
#define PKT_COUNT_S(x) (((x) & 0x3FFF) << 16)
#define PKT_COUNT_G(x) (((x) >> 16) & 0x3FFF)
#define PKT_COUNT_C 0xC000FFFF
#define PKT0_BASE_INDEX_S(x) (((x) & 0xFFFF) << 0)
#define PKT0_BASE_INDEX_G(x) (((x) >> 0) & 0xFFFF)
#define PKT0_BASE_INDEX_C 0xFFFF0000
#define PKT3_IT_OPCODE_S(x) (((x) & 0xFF) << 8)
#define PKT3_IT_OPCODE_G(x) (((x) >> 8) & 0xFF)
#define PKT3_IT_OPCODE_C 0xFFFF00FF
#define PKT0(index, count) (PKT_TYPE_S(0) | PKT0_BASE_INDEX_S(index) | PKT_COUNT_S(count))
#define PKT3(op, count) (PKT_TYPE_S(3) | PKT3_IT_OPCODE_S(op) | PKT_COUNT_S(count))
/* Registers */
#define R_0280A0_CB_COLOR0_INFO 0x0280A0
#define S_0280A0_ENDIAN(x) (((x) & 0x3) << 0)
#define G_0280A0_ENDIAN(x) (((x) >> 0) & 0x3)
#define C_0280A0_ENDIAN 0xFFFFFFFC
#define S_0280A0_FORMAT(x) (((x) & 0x3F) << 2)
#define G_0280A0_FORMAT(x) (((x) >> 2) & 0x3F)
#define C_0280A0_FORMAT 0xFFFFFF03
#define V_0280A0_COLOR_INVALID 0x00000000
#define V_0280A0_COLOR_8 0x00000001
#define V_0280A0_COLOR_4_4 0x00000002
#define V_0280A0_COLOR_3_3_2 0x00000003
#define V_0280A0_COLOR_16 0x00000005
#define V_0280A0_COLOR_16_FLOAT 0x00000006
#define V_0280A0_COLOR_8_8 0x00000007
#define V_0280A0_COLOR_5_6_5 0x00000008
#define V_0280A0_COLOR_6_5_5 0x00000009
#define V_0280A0_COLOR_1_5_5_5 0x0000000A
#define V_0280A0_COLOR_4_4_4_4 0x0000000B
#define V_0280A0_COLOR_5_5_5_1 0x0000000C
#define V_0280A0_COLOR_32 0x0000000D
#define V_0280A0_COLOR_32_FLOAT 0x0000000E
#define V_0280A0_COLOR_16_16 0x0000000F
#define V_0280A0_COLOR_16_16_FLOAT 0x00000010
#define V_0280A0_COLOR_8_24 0x00000011
#define V_0280A0_COLOR_8_24_FLOAT 0x00000012
#define V_0280A0_COLOR_24_8 0x00000013
#define V_0280A0_COLOR_24_8_FLOAT 0x00000014
#define V_0280A0_COLOR_10_11_11 0x00000015
#define V_0280A0_COLOR_10_11_11_FLOAT 0x00000016
#define V_0280A0_COLOR_11_11_10 0x00000017
#define V_0280A0_COLOR_11_11_10_FLOAT 0x00000018
#define V_0280A0_COLOR_2_10_10_10 0x00000019
#define V_0280A0_COLOR_8_8_8_8 0x0000001A
#define V_0280A0_COLOR_10_10_10_2 0x0000001B
#define V_0280A0_COLOR_X24_8_32_FLOAT 0x0000001C
#define V_0280A0_COLOR_32_32 0x0000001D
#define V_0280A0_COLOR_32_32_FLOAT 0x0000001E
#define V_0280A0_COLOR_16_16_16_16 0x0000001F
#define V_0280A0_COLOR_16_16_16_16_FLOAT 0x00000020
#define V_0280A0_COLOR_32_32_32_32 0x00000022
#define V_0280A0_COLOR_32_32_32_32_FLOAT 0x00000023
#define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8)
#define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF)
#define C_0280A0_ARRAY_MODE 0xFFFFF0FF
#define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000
#define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001
#define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002
#define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004
#define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12)
#define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7)
#define C_0280A0_NUMBER_TYPE 0xFFFF8FFF
#define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15)
#define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1)
#define C_0280A0_READ_SIZE 0xFFFF7FFF
#define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16)
#define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3)
#define C_0280A0_COMP_SWAP 0xFFFCFFFF
#define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18)
#define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3)
#define C_0280A0_TILE_MODE 0xFFF3FFFF
#define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20)
#define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1)
#define C_0280A0_BLEND_CLAMP 0xFFEFFFFF
#define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21)
#define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1)
#define C_0280A0_CLEAR_COLOR 0xFFDFFFFF
#define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22)
#define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1)
#define C_0280A0_BLEND_BYPASS 0xFFBFFFFF
#define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23)
#define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1)
#define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF
#define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24)
#define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1)
#define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF
#define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25)
#define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1)
#define C_0280A0_ROUND_MODE 0xFDFFFFFF
#define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26)
#define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1)
#define C_0280A0_TILE_COMPACT 0xFBFFFFFF
#define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27)
#define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1)
#define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF
#define R_028060_CB_COLOR0_SIZE 0x028060
#define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
#define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
#define C_028060_PITCH_TILE_MAX 0xFFFFFC00
#define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
#define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
#define C_028060_SLICE_TILE_MAX 0xC00003FF
#define R_028800_DB_DEPTH_CONTROL 0x028800
#define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0)
#define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1)
#define C_028800_STENCIL_ENABLE 0xFFFFFFFE
#define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1)
#define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1)
#define C_028800_Z_ENABLE 0xFFFFFFFD
#define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2)
#define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1)
#define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB
#define S_028800_ZFUNC(x) (((x) & 0x7) << 4)
#define G_028800_ZFUNC(x) (((x) >> 4) & 0x7)
#define C_028800_ZFUNC 0xFFFFFF8F
#define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7)
#define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1)
#define C_028800_BACKFACE_ENABLE 0xFFFFFF7F
#define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8)
#define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7)
#define C_028800_STENCILFUNC 0xFFFFF8FF
#define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11)
#define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7)
#define C_028800_STENCILFAIL 0xFFFFC7FF
#define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14)
#define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7)
#define C_028800_STENCILZPASS 0xFFFE3FFF
#define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17)
#define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7)
#define C_028800_STENCILZFAIL 0xFFF1FFFF
#define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20)
#define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7)
#define C_028800_STENCILFUNC_BF 0xFF8FFFFF
#define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23)
#define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7)
#define C_028800_STENCILFAIL_BF 0xFC7FFFFF
#define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26)
#define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7)
#define C_028800_STENCILZPASS_BF 0xE3FFFFFF
#define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29)
#define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7)
#define C_028800_STENCILZFAIL_BF 0x1FFFFFFF
#define R_028010_DB_DEPTH_INFO 0x028010
#define S_028010_FORMAT(x) (((x) & 0x7) << 0)
#define G_028010_FORMAT(x) (((x) >> 0) & 0x7)
#define C_028010_FORMAT 0xFFFFFFF8
#define V_028010_DEPTH_INVALID 0x00000000
#define V_028010_DEPTH_16 0x00000001
#define V_028010_DEPTH_X8_24 0x00000002
#define V_028010_DEPTH_8_24 0x00000003
#define V_028010_DEPTH_X8_24_FLOAT 0x00000004
#define V_028010_DEPTH_8_24_FLOAT 0x00000005
#define V_028010_DEPTH_32_FLOAT 0x00000006
#define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007
#define S_028010_READ_SIZE(x) (((x) & 0x1) << 3)
#define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1)
#define C_028010_READ_SIZE 0xFFFFFFF7
#define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15)
#define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF)
#define C_028010_ARRAY_MODE 0xFFF87FFF
#define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25)
#define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1)
#define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF
#define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26)
#define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1)
#define C_028010_TILE_COMPACT 0xFBFFFFFF
#define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31)
#define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1)
#define C_028010_ZRANGE_PRECISION 0x7FFFFFFF
#define R_028000_DB_DEPTH_SIZE 0x028000
#define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0)
#define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF)
#define C_028000_PITCH_TILE_MAX 0xFFFFFC00
#define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10)
#define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF)
#define C_028000_SLICE_TILE_MAX 0xC00003FF
#define R_028004_DB_DEPTH_VIEW 0x028004
#define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0)
#define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF)
#define C_028004_SLICE_START 0xFFFFF800
#define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13)
#define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF)
#define C_028004_SLICE_MAX 0xFF001FFF
#define R_028D24_DB_HTILE_SURFACE 0x028D24
#define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0)
#define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1)
#define C_028D24_HTILE_WIDTH 0xFFFFFFFE
#define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1)
#define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1)
#define C_028D24_HTILE_HEIGHT 0xFFFFFFFD
#define S_028D24_LINEAR(x) (((x) & 0x1) << 2)
#define G_028D24_LINEAR(x) (((x) >> 2) & 0x1)
#define C_028D24_LINEAR 0xFFFFFFFB
#define S_028D24_FULL_CACHE(x) (((x) & 0x1) << 3)
#define G_028D24_FULL_CACHE(x) (((x) >> 3) & 0x1)
#define C_028D24_FULL_CACHE 0xFFFFFFF7
#define S_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) & 0x1) << 4)
#define G_028D24_HTILE_USES_PRELOAD_WIN(x) (((x) >> 4) & 0x1)
#define C_028D24_HTILE_USES_PRELOAD_WIN 0xFFFFFFEF
#define S_028D24_PRELOAD(x) (((x) & 0x1) << 5)
#define G_028D24_PRELOAD(x) (((x) >> 5) & 0x1)
#define C_028D24_PRELOAD 0xFFFFFFDF
#define S_028D24_PREFETCH_WIDTH(x) (((x) & 0x3F) << 6)
#define G_028D24_PREFETCH_WIDTH(x) (((x) >> 6) & 0x3F)
#define C_028D24_PREFETCH_WIDTH 0xFFFFF03F
#define S_028D24_PREFETCH_HEIGHT(x) (((x) & 0x3F) << 12)
#define G_028D24_PREFETCH_HEIGHT(x) (((x) >> 12) & 0x3F)
#define C_028D24_PREFETCH_HEIGHT 0xFFFC0FFF
#define R_028D34_DB_PREFETCH_LIMIT 0x028D34
#define S_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) & 0x3FF) << 0)
#define G_028D34_DEPTH_HEIGHT_TILE_MAX(x) (((x) >> 0) & 0x3FF)
#define C_028D34_DEPTH_HEIGHT_TILE_MAX 0xFFFFFC00
#define R_028D10_DB_RENDER_OVERRIDE 0x028D10
#define S_028D10_FORCE_HIZ_ENABLE(x) (((x) & 0x3) << 0)
#define G_028D10_FORCE_HIZ_ENABLE(x) (((x) >> 0) & 0x3)
#define C_028D10_FORCE_HIZ_ENABLE 0xFFFFFFFC
#define S_028D10_FORCE_HIS_ENABLE0(x) (((x) & 0x3) << 2)
#define G_028D10_FORCE_HIS_ENABLE0(x) (((x) >> 2) & 0x3)
#define C_028D10_FORCE_HIS_ENABLE0 0xFFFFFFF3
#define S_028D10_FORCE_HIS_ENABLE1(x) (((x) & 0x3) << 4)
#define G_028D10_FORCE_HIS_ENABLE1(x) (((x) >> 4) & 0x3)
#define C_028D10_FORCE_HIS_ENABLE1 0xFFFFFFCF
#define S_028D10_FORCE_SHADER_Z_ORDER(x) (((x) & 0x1) << 6)
#define G_028D10_FORCE_SHADER_Z_ORDER(x) (((x) >> 6) & 0x1)
#define C_028D10_FORCE_SHADER_Z_ORDER 0xFFFFFFBF
#define S_028D10_FAST_Z_DISABLE(x) (((x) & 0x1) << 7)
#define G_028D10_FAST_Z_DISABLE(x) (((x) >> 7) & 0x1)
#define C_028D10_FAST_Z_DISABLE 0xFFFFFF7F
#define S_028D10_FAST_STENCIL_DISABLE(x) (((x) & 0x1) << 8)
#define G_028D10_FAST_STENCIL_DISABLE(x) (((x) >> 8) & 0x1)
#define C_028D10_FAST_STENCIL_DISABLE 0xFFFFFEFF
#define S_028D10_NOOP_CULL_DISABLE(x) (((x) & 0x1) << 9)
#define G_028D10_NOOP_CULL_DISABLE(x) (((x) >> 9) & 0x1)
#define C_028D10_NOOP_CULL_DISABLE 0xFFFFFDFF
#define S_028D10_FORCE_COLOR_KILL(x) (((x) & 0x1) << 10)
#define G_028D10_FORCE_COLOR_KILL(x) (((x) >> 10) & 0x1)
#define C_028D10_FORCE_COLOR_KILL 0xFFFFFBFF
#define S_028D10_FORCE_Z_READ(x) (((x) & 0x1) << 11)
#define G_028D10_FORCE_Z_READ(x) (((x) >> 11) & 0x1)
#define C_028D10_FORCE_Z_READ 0xFFFFF7FF
#define S_028D10_FORCE_STENCIL_READ(x) (((x) & 0x1) << 12)
#define G_028D10_FORCE_STENCIL_READ(x) (((x) >> 12) & 0x1)
#define C_028D10_FORCE_STENCIL_READ 0xFFFFEFFF
#define S_028D10_FORCE_FULL_Z_RANGE(x) (((x) & 0x3) << 13)
#define G_028D10_FORCE_FULL_Z_RANGE(x) (((x) >> 13) & 0x3)
#define C_028D10_FORCE_FULL_Z_RANGE 0xFFFF9FFF
#define S_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) & 0x1) << 15)
#define G_028D10_FORCE_QC_SMASK_CONFLICT(x) (((x) >> 15) & 0x1)
#define C_028D10_FORCE_QC_SMASK_CONFLICT 0xFFFF7FFF
#define S_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) & 0x1) << 16)
#define G_028D10_DISABLE_VIEWPORT_CLAMP(x) (((x) >> 16) & 0x1)
#define C_028D10_DISABLE_VIEWPORT_CLAMP 0xFFFEFFFF
#define S_028D10_IGNORE_SC_ZRANGE(x) (((x) & 0x1) << 17)
#define G_028D10_IGNORE_SC_ZRANGE(x) (((x) >> 17) & 0x1)
#define C_028D10_IGNORE_SC_ZRANGE 0xFFFDFFFF
#define R_028A40_VGT_GS_MODE 0x028A40
#define S_028A40_MODE(x) (((x) & 0x3) << 0)
#define G_028A40_MODE(x) (((x) >> 0) & 0x3)
#define C_028A40_MODE 0xFFFFFFFC
#define S_028A40_ES_PASSTHRU(x) (((x) & 0x1) << 2)
#define G_028A40_ES_PASSTHRU(x) (((x) >> 2) & 0x1)
#define C_028A40_ES_PASSTHRU 0xFFFFFFFB
#define S_028A40_CUT_MODE(x) (((x) & 0x3) << 3)
#define G_028A40_CUT_MODE(x) (((x) >> 3) & 0x3)
#define C_028A40_CUT_MODE 0xFFFFFFE7
#define R_008DFC_SQ_CF_WORD0 0x008DFC
#define S_008DFC_ADDR(x) (((x) & 0xFFFFFFFF) << 0)
#define G_008DFC_ADDR(x) (((x) >> 0) & 0xFFFFFFFF)
#define C_008DFC_ADDR 0x00000000
#define R_008DFC_SQ_CF_WORD1 0x008DFC
#define S_008DFC_POP_COUNT(x) (((x) & 0x7) << 0)
#define G_008DFC_POP_COUNT(x) (((x) >> 0) & 0x7)
#define C_008DFC_POP_COUNT 0xFFFFFFF8
#define S_008DFC_CF_CONST(x) (((x) & 0x1F) << 3)
#define G_008DFC_CF_CONST(x) (((x) >> 3) & 0x1F)
#define C_008DFC_CF_CONST 0xFFFFFF07
#define S_008DFC_COND(x) (((x) & 0x3) << 8)
#define G_008DFC_COND(x) (((x) >> 8) & 0x3)
#define C_008DFC_COND 0xFFFFFCFF
#define S_008DFC_COUNT(x) (((x) & 0x7) << 10)
#define G_008DFC_COUNT(x) (((x) >> 10) & 0x7)
#define C_008DFC_COUNT 0xFFFFE3FF
#define S_008DFC_CALL_COUNT(x) (((x) & 0x3F) << 13)
#define G_008DFC_CALL_COUNT(x) (((x) >> 13) & 0x3F)
#define C_008DFC_CALL_COUNT 0xFFF81FFF
#define S_008DFC_END_OF_PROGRAM(x) (((x) & 0x1) << 21)
#define G_008DFC_END_OF_PROGRAM(x) (((x) >> 21) & 0x1)
#define C_008DFC_END_OF_PROGRAM 0xFFDFFFFF
#define S_008DFC_VALID_PIXEL_MODE(x) (((x) & 0x1) << 22)
#define G_008DFC_VALID_PIXEL_MODE(x) (((x) >> 22) & 0x1)
#define C_008DFC_VALID_PIXEL_MODE 0xFFBFFFFF
#define S_008DFC_CF_INST(x) (((x) & 0x7F) << 23)
#define G_008DFC_CF_INST(x) (((x) >> 23) & 0x7F)
#define C_008DFC_CF_INST 0xC07FFFFF
#define V_008DFC_SQ_CF_INST_NOP 0x00000000
#define V_008DFC_SQ_CF_INST_TEX 0x00000001
#define V_008DFC_SQ_CF_INST_VTX 0x00000002
#define V_008DFC_SQ_CF_INST_VTX_TC 0x00000003
#define V_008DFC_SQ_CF_INST_LOOP_START 0x00000004
#define V_008DFC_SQ_CF_INST_LOOP_END 0x00000005
#define V_008DFC_SQ_CF_INST_LOOP_START_DX10 0x00000006
#define V_008DFC_SQ_CF_INST_LOOP_START_NO_AL 0x00000007
#define V_008DFC_SQ_CF_INST_LOOP_CONTINUE 0x00000008
#define V_008DFC_SQ_CF_INST_LOOP_BREAK 0x00000009
#define V_008DFC_SQ_CF_INST_JUMP 0x0000000A
#define V_008DFC_SQ_CF_INST_PUSH 0x0000000B
#define V_008DFC_SQ_CF_INST_PUSH_ELSE 0x0000000C
#define V_008DFC_SQ_CF_INST_ELSE 0x0000000D
#define V_008DFC_SQ_CF_INST_POP 0x0000000E
#define V_008DFC_SQ_CF_INST_POP_JUMP 0x0000000F
#define V_008DFC_SQ_CF_INST_POP_PUSH 0x00000010
#define V_008DFC_SQ_CF_INST_POP_PUSH_ELSE 0x00000011
#define V_008DFC_SQ_CF_INST_CALL 0x00000012
#define V_008DFC_SQ_CF_INST_CALL_FS 0x00000013
#define V_008DFC_SQ_CF_INST_RETURN 0x00000014
#define V_008DFC_SQ_CF_INST_EMIT_VERTEX 0x00000015
#define V_008DFC_SQ_CF_INST_EMIT_CUT_VERTEX 0x00000016
#define V_008DFC_SQ_CF_INST_CUT_VERTEX 0x00000017
#define V_008DFC_SQ_CF_INST_KILL 0x00000018
#define S_008DFC_WHOLE_QUAD_MODE(x) (((x) & 0x1) << 30)
#define G_008DFC_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1)
#define C_008DFC_WHOLE_QUAD_MODE 0xBFFFFFFF
#define S_008DFC_BARRIER(x) (((x) & 0x1) << 31)
#define G_008DFC_BARRIER(x) (((x) >> 31) & 0x1)
#define C_008DFC_BARRIER 0x7FFFFFFF
#define R_008DFC_SQ_CF_ALU_WORD0 0x008DFC
#define S_008DFC_ALU_ADDR(x) (((x) & 0x3FFFFF) << 0)
#define G_008DFC_ALU_ADDR(x) (((x) >> 0) & 0x3FFFFF)
#define C_008DFC_ALU_ADDR 0xFFC00000
#define S_008DFC_KCACHE_BANK0(x) (((x) & 0xF) << 22)
#define G_008DFC_KCACHE_BANK0(x) (((x) >> 22) & 0xF)
#define C_008DFC_KCACHE_BANK0 0xFC3FFFFF
#define S_008DFC_KCACHE_BANK1(x) (((x) & 0xF) << 26)
#define G_008DFC_KCACHE_BANK1(x) (((x) >> 26) & 0xF)
#define C_008DFC_KCACHE_BANK1 0xC3FFFFFF
#define S_008DFC_KCACHE_MODE0(x) (((x) & 0x3) << 30)
#define G_008DFC_KCACHE_MODE0(x) (((x) >> 30) & 0x3)
#define C_008DFC_KCACHE_MODE0 0x3FFFFFFF
#define R_008DFC_SQ_CF_ALU_WORD1 0x008DFC
#define S_008DFC_KCACHE_MODE1(x) (((x) & 0x3) << 0)
#define G_008DFC_KCACHE_MODE1(x) (((x) >> 0) & 0x3)
#define C_008DFC_KCACHE_MODE1 0xFFFFFFFC
#define S_008DFC_KCACHE_ADDR0(x) (((x) & 0xFF) << 2)
#define G_008DFC_KCACHE_ADDR0(x) (((x) >> 2) & 0xFF)
#define C_008DFC_KCACHE_ADDR0 0xFFFFFC03
#define S_008DFC_KCACHE_ADDR1(x) (((x) & 0xFF) << 10)
#define G_008DFC_KCACHE_ADDR1(x) (((x) >> 10) & 0xFF)
#define C_008DFC_KCACHE_ADDR1 0xFFFC03FF
#define S_008DFC_ALU_COUNT(x) (((x) & 0x7F) << 18)
#define G_008DFC_ALU_COUNT(x) (((x) >> 18) & 0x7F)
#define C_008DFC_ALU_COUNT 0xFE03FFFF
#define S_008DFC_USES_WATERFALL(x) (((x) & 0x1) << 25)
#define G_008DFC_USES_WATERFALL(x) (((x) >> 25) & 0x1)
#define C_008DFC_USES_WATERFALL 0xFDFFFFFF
#define S_008DFC_CF_ALU_INST(x) (((x) & 0xF) << 26)
#define G_008DFC_CF_ALU_INST(x) (((x) >> 26) & 0xF)
#define C_008DFC_CF_ALU_INST 0xC3FFFFFF
#define V_008DFC_SQ_CF_INST_ALU 0x00000008
#define V_008DFC_SQ_CF_INST_ALU_PUSH_BEFORE 0x00000009
#define V_008DFC_SQ_CF_INST_ALU_POP_AFTER 0x0000000A
#define V_008DFC_SQ_CF_INST_ALU_POP2_AFTER 0x0000000B
#define V_008DFC_SQ_CF_INST_ALU_CONTINUE 0x0000000D
#define V_008DFC_SQ_CF_INST_ALU_BREAK 0x0000000E
#define V_008DFC_SQ_CF_INST_ALU_ELSE_AFTER 0x0000000F
#define S_008DFC_WHOLE_QUAD_MODE(x) (((x) & 0x1) << 30)
#define G_008DFC_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1)
#define C_008DFC_WHOLE_QUAD_MODE 0xBFFFFFFF
#define S_008DFC_BARRIER(x) (((x) & 0x1) << 31)
#define G_008DFC_BARRIER(x) (((x) >> 31) & 0x1)
#define C_008DFC_BARRIER 0x7FFFFFFF
#define R_008DFC_SQ_CF_ALLOC_EXPORT_WORD0 0x008DFC
#define S_008DFC_ARRAY_BASE(x) (((x) & 0x1FFF) << 0)
#define G_008DFC_ARRAY_BASE(x) (((x) >> 0) & 0x1FFF)
#define C_008DFC_ARRAY_BASE 0xFFFFE000
#define S_008DFC_TYPE(x) (((x) & 0x3) << 13)
#define G_008DFC_TYPE(x) (((x) >> 13) & 0x3)
#define C_008DFC_TYPE 0xFFFF9FFF
#define S_008DFC_RW_GPR(x) (((x) & 0x7F) << 15)
#define G_008DFC_RW_GPR(x) (((x) >> 15) & 0x7F)
#define C_008DFC_RW_GPR 0xFFC07FFF
#define S_008DFC_RW_REL(x) (((x) & 0x1) << 22)
#define G_008DFC_RW_REL(x) (((x) >> 22) & 0x1)
#define C_008DFC_RW_REL 0xFFBFFFFF
#define S_008DFC_INDEX_GPR(x) (((x) & 0x7F) << 23)
#define G_008DFC_INDEX_GPR(x) (((x) >> 23) & 0x7F)
#define C_008DFC_INDEX_GPR 0xC07FFFFF
#define S_008DFC_ELEM_SIZE(x) (((x) & 0x3) << 30)
#define G_008DFC_ELEM_SIZE(x) (((x) >> 30) & 0x3)
#define C_008DFC_ELEM_SIZE 0x3FFFFFFF
#define R_008DFC_SQ_CF_ALLOC_EXPORT_WORD1 0x008DFC
#define S_008DFC_BURST_COUNT(x) (((x) & 0xF) << 17)
#define G_008DFC_BURST_COUNT(x) (((x) >> 17) & 0xF)
#define C_008DFC_BURST_COUNT 0xFFE1FFFF
#define S_008DFC_END_OF_PROGRAM(x) (((x) & 0x1) << 21)
#define G_008DFC_END_OF_PROGRAM(x) (((x) >> 21) & 0x1)
#define C_008DFC_END_OF_PROGRAM 0xFFDFFFFF
#define S_008DFC_VALID_PIXEL_MODE(x) (((x) & 0x1) << 22)
#define G_008DFC_VALID_PIXEL_MODE(x) (((x) >> 22) & 0x1)
#define C_008DFC_VALID_PIXEL_MODE 0xFFBFFFFF
#define S_008DFC_CF_INST(x) (((x) & 0x7F) << 23)
#define G_008DFC_CF_INST(x) (((x) >> 23) & 0x7F)
#define C_008DFC_CF_INST 0xC07FFFFF
#define V_008DFC_SQ_CF_INST_MEM_STREAM0 0x00000020
#define V_008DFC_SQ_CF_INST_MEM_STREAM1 0x00000021
#define V_008DFC_SQ_CF_INST_MEM_STREAM2 0x00000022
#define V_008DFC_SQ_CF_INST_MEM_STREAM3 0x00000023
#define V_008DFC_SQ_CF_INST_MEM_SCRATCH 0x00000024
#define V_008DFC_SQ_CF_INST_MEM_REDUCTION 0x00000025
#define V_008DFC_SQ_CF_INST_MEM_RING 0x00000026
#define V_008DFC_SQ_CF_INST_EXPORT 0x00000027
#define V_008DFC_SQ_CF_INST_EXPORT_DONE 0x00000028
#define S_008DFC_WHOLE_QUAD_MODE(x) (((x) & 0x1) << 30)
#define G_008DFC_WHOLE_QUAD_MODE(x) (((x) >> 30) & 0x1)
#define C_008DFC_WHOLE_QUAD_MODE 0xBFFFFFFF
#define S_008DFC_BARRIER(x) (((x) & 0x1) << 31)
#define G_008DFC_BARRIER(x) (((x) >> 31) & 0x1)
#define C_008DFC_BARRIER 0x7FFFFFFF
#define R_008DFC_SQ_CF_ALLOC_EXPORT_WORD1_BUF 0x008DFC
#define S_008DFC_ARRAY_SIZE(x) (((x) & 0xFFF) << 0)
#define G_008DFC_ARRAY_SIZE(x) (((x) >> 0) & 0xFFF)
#define C_008DFC_ARRAY_SIZE 0xFFFFF000
#define S_008DFC_COMP_MASK(x) (((x) & 0xF) << 12)
#define G_008DFC_COMP_MASK(x) (((x) >> 12) & 0xF)
#define C_008DFC_COMP_MASK 0xFFFF0FFF
#define R_008DFC_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ 0x008DFC
#define S_008DFC_SEL_X(x) (((x) & 0x7) << 0)
#define G_008DFC_SEL_X(x) (((x) >> 0) & 0x7)
#define C_008DFC_SEL_X 0xFFFFFFF8
#define S_008DFC_SEL_Y(x) (((x) & 0x7) << 3)
#define G_008DFC_SEL_Y(x) (((x) >> 3) & 0x7)
#define C_008DFC_SEL_Y 0xFFFFFFC7
#define S_008DFC_SEL_Z(x) (((x) & 0x7) << 6)
#define G_008DFC_SEL_Z(x) (((x) >> 6) & 0x7)
#define C_008DFC_SEL_Z 0xFFFFFE3F
#define S_008DFC_SEL_W(x) (((x) & 0x7) << 9)
#define G_008DFC_SEL_W(x) (((x) >> 9) & 0x7)
#define C_008DFC_SEL_W 0xFFFFF1FF
#define R_008DFC_SQ_VTX_WORD0 0x008DFC
#define S_008DFC_VTX_INST(x) (((x) & 0x1F) << 0)
#define G_008DFC_VTX_INST(x) (((x) >> 0) & 0x1F)
#define C_008DFC_VTX_INST 0xFFFFFFE0
#define S_008DFC_FETCH_TYPE(x) (((x) & 0x3) << 5)
#define G_008DFC_FETCH_TYPE(x) (((x) >> 5) & 0x3)
#define C_008DFC_FETCH_TYPE 0xFFFFFF9F
#define S_008DFC_FETCH_WHOLE_QUAD(x) (((x) & 0x1) << 7)
#define G_008DFC_FETCH_WHOLE_QUAD(x) (((x) >> 7) & 0x1)
#define C_008DFC_FETCH_WHOLE_QUAD 0xFFFFFF7F
#define S_008DFC_BUFFER_ID(x) (((x) & 0xFF) << 8)
#define G_008DFC_BUFFER_ID(x) (((x) >> 8) & 0xFF)
#define C_008DFC_BUFFER_ID 0xFFFF00FF
#define S_008DFC_SRC_GPR(x) (((x) & 0x7F) << 16)
#define G_008DFC_SRC_GPR(x) (((x) >> 16) & 0x7F)
#define C_008DFC_SRC_GPR 0xFF80FFFF
#define S_008DFC_SRC_REL(x) (((x) & 0x1) << 23)
#define G_008DFC_SRC_REL(x) (((x) >> 23) & 0x1)
#define C_008DFC_SRC_REL 0xFF7FFFFF
#define S_008DFC_SRC_SEL_X(x) (((x) & 0x3) << 24)
#define G_008DFC_SRC_SEL_X(x) (((x) >> 24) & 0x3)
#define C_008DFC_SRC_SEL_X 0xFCFFFFFF
#define S_008DFC_MEGA_FETCH_COUNT(x) (((x) & 0x3F) << 26)
#define G_008DFC_MEGA_FETCH_COUNT(x) (((x) >> 26) & 0x3F)
#define C_008DFC_MEGA_FETCH_COUNT 0x03FFFFFF
#define R_008DFC_SQ_VTX_WORD1 0x008DFC
#define S_008DFC_DST_SEL_X(x) (((x) & 0x7) << 9)
#define G_008DFC_DST_SEL_X(x) (((x) >> 9) & 0x7)
#define C_008DFC_DST_SEL_X 0xFFFFF1FF
#define S_008DFC_DST_SEL_Y(x) (((x) & 0x7) << 12)
#define G_008DFC_DST_SEL_Y(x) (((x) >> 12) & 0x7)
#define C_008DFC_DST_SEL_Y 0xFFFF8FFF
#define S_008DFC_DST_SEL_Z(x) (((x) & 0x7) << 15)
#define G_008DFC_DST_SEL_Z(x) (((x) >> 15) & 0x7)
#define C_008DFC_DST_SEL_Z 0xFFFC7FFF
#define S_008DFC_DST_SEL_W(x) (((x) & 0x7) << 18)
#define G_008DFC_DST_SEL_W(x) (((x) >> 18) & 0x7)
#define C_008DFC_DST_SEL_W 0xFFE3FFFF
#define S_008DFC_USE_CONST_FIELDS(x) (((x) & 0x1) << 21)
#define G_008DFC_USE_CONST_FIELDS(x) (((x) >> 21) & 0x1)
#define C_008DFC_USE_CONST_FIELDS 0xFFDFFFFF
#define S_008DFC_DATA_FORMAT(x) (((x) & 0x3F) << 22)
#define G_008DFC_DATA_FORMAT(x) (((x) >> 22) & 0x3F)
#define C_008DFC_DATA_FORMAT 0xF03FFFFF
#define S_008DFC_NUM_FORMAT_ALL(x) (((x) & 0x3) << 28)
#define G_008DFC_NUM_FORMAT_ALL(x) (((x) >> 28) & 0x3)
#define C_008DFC_NUM_FORMAT_ALL 0xCFFFFFFF
#define S_008DFC_FORMAT_COMP_ALL(x) (((x) & 0x1) << 30)
#define G_008DFC_FORMAT_COMP_ALL(x) (((x) >> 30) & 0x1)
#define C_008DFC_FORMAT_COMP_ALL 0xBFFFFFFF
#define S_008DFC_SRF_MODE_ALL(x) (((x) & 0x1) << 31)
#define G_008DFC_SRF_MODE_ALL(x) (((x) >> 31) & 0x1)
#define C_008DFC_SRF_MODE_ALL 0x7FFFFFFF
#define R_008DFC_SQ_VTX_WORD1_GPR 0x008DFC
#define S_008DFC_DST_GPR(x) (((x) & 0x7F) << 0)
#define G_008DFC_DST_GPR(x) (((x) >> 0) & 0x7F)
#define C_008DFC_DST_GPR 0xFFFFFF80
#define S_008DFC_DST_REL(x) (((x) & 0x1) << 7)
#define G_008DFC_DST_REL(x) (((x) >> 7) & 0x1)
#define C_008DFC_DST_REL 0xFFFFFF7F
#define R_008DFC_SQ_VTX_WORD2 0x008DFC
#define S_008DFC_OFFSET(x) (((x) & 0xFFFF) << 0)
#define G_008DFC_OFFSET(x) (((x) >> 0) & 0xFFFF)
#define C_008DFC_OFFSET 0xFFFF0000
#define S_008DFC_ENDIAN_SWAP(x) (((x) & 0x3) << 16)
#define G_008DFC_ENDIAN_SWAP(x) (((x) >> 16) & 0x3)
#define C_008DFC_ENDIAN_SWAP 0xFFFCFFFF
#define S_008DFC_CONST_BUF_NO_STRIDE(x) (((x) & 0x1) << 18)
#define G_008DFC_CONST_BUF_NO_STRIDE(x) (((x) >> 18) & 0x1)
#define C_008DFC_CONST_BUF_NO_STRIDE 0xFFFBFFFF
#define S_008DFC_MEGA_FETCH(x) (((x) & 0x1) << 19)
#define G_008DFC_MEGA_FETCH(x) (((x) >> 19) & 0x1)
#define C_008DFC_MEGA_FETCH 0xFFF7FFFF
#define S_008DFC_ALT_CONST(x) (((x) & 0x1) << 20)
#define G_008DFC_ALT_CONST(x) (((x) >> 20) & 0x1)
#define C_008DFC_ALT_CONST 0xFFEFFFFF
#define R_008040_WAIT_UNTIL 0x008040
#define S_008040_WAIT_CP_DMA_IDLE(x) (((x) & 0x1) << 8)
#define G_008040_WAIT_CP_DMA_IDLE(x) (((x) >> 8) & 0x1)
#define C_008040_WAIT_CP_DMA_IDLE 0xFFFFFEFF
#define S_008040_WAIT_CMDFIFO(x) (((x) & 0x1) << 10)
#define G_008040_WAIT_CMDFIFO(x) (((x) >> 10) & 0x1)
#define C_008040_WAIT_CMDFIFO 0xFFFFFBFF
#define S_008040_WAIT_2D_IDLE(x) (((x) & 0x1) << 14)
#define G_008040_WAIT_2D_IDLE(x) (((x) >> 14) & 0x1)
#define C_008040_WAIT_2D_IDLE 0xFFFFBFFF
#define S_008040_WAIT_3D_IDLE(x) (((x) & 0x1) << 15)
#define G_008040_WAIT_3D_IDLE(x) (((x) >> 15) & 0x1)
#define C_008040_WAIT_3D_IDLE 0xFFFF7FFF
#define S_008040_WAIT_2D_IDLECLEAN(x) (((x) & 0x1) << 16)
#define G_008040_WAIT_2D_IDLECLEAN(x) (((x) >> 16) & 0x1)
#define C_008040_WAIT_2D_IDLECLEAN 0xFFFEFFFF
#define S_008040_WAIT_3D_IDLECLEAN(x) (((x) & 0x1) << 17)
#define G_008040_WAIT_3D_IDLECLEAN(x) (((x) >> 17) & 0x1)
#define C_008040_WAIT_3D_IDLECLEAN 0xFFFDFFFF
#define S_008040_WAIT_EXTERN_SIG(x) (((x) & 0x1) << 19)
#define G_008040_WAIT_EXTERN_SIG(x) (((x) >> 19) & 0x1)
#define C_008040_WAIT_EXTERN_SIG 0xFFF7FFFF
#define S_008040_CMDFIFO_ENTRIES(x) (((x) & 0x1F) << 20)
#define G_008040_CMDFIFO_ENTRIES(x) (((x) >> 20) & 0x1F)
#define C_008040_CMDFIFO_ENTRIES 0xFE0FFFFF
#define R_0286CC_SPI_PS_IN_CONTROL_0 0x0286CC
#define S_0286CC_NUM_INTERP(x) (((x) & 0x3F) << 0)
#define G_0286CC_NUM_INTERP(x) (((x) >> 0) & 0x3F)
#define C_0286CC_NUM_INTERP 0xFFFFFFC0
#define S_0286CC_POSITION_ENA(x) (((x) & 0x1) << 8)
#define G_0286CC_POSITION_ENA(x) (((x) >> 8) & 0x1)
#define C_0286CC_POSITION_ENA 0xFFFFFEFF
#define S_0286CC_POSITION_CENTROID(x) (((x) & 0x1) << 9)
#define G_0286CC_POSITION_CENTROID(x) (((x) >> 9) & 0x1)
#define C_0286CC_POSITION_CENTROID 0xFFFFFDFF
#define S_0286CC_POSITION_ADDR(x) (((x) & 0x1F) << 10)
#define G_0286CC_POSITION_ADDR(x) (((x) >> 10) & 0x1F)
#define C_0286CC_POSITION_ADDR 0xFFFF83FF
#define S_0286CC_PARAM_GEN(x) (((x) & 0xF) << 15)
#define G_0286CC_PARAM_GEN(x) (((x) >> 15) & 0xF)
#define C_0286CC_PARAM_GEN 0xFFF87FFF
#define S_0286CC_PARAM_GEN_ADDR(x) (((x) & 0x7F) << 19)
#define G_0286CC_PARAM_GEN_ADDR(x) (((x) >> 19) & 0x7F)
#define C_0286CC_PARAM_GEN_ADDR 0xFC07FFFF
#define S_0286CC_BARYC_SAMPLE_CNTL(x) (((x) & 0x3) << 26)
#define G_0286CC_BARYC_SAMPLE_CNTL(x) (((x) >> 26) & 0x3)
#define C_0286CC_BARYC_SAMPLE_CNTL 0xF3FFFFFF
#define S_0286CC_PERSP_GRADIENT_ENA(x) (((x) & 0x1) << 28)
#define G_0286CC_PERSP_GRADIENT_ENA(x) (((x) >> 28) & 0x1)
#define C_0286CC_PERSP_GRADIENT_ENA 0xEFFFFFFF
#define S_0286CC_LINEAR_GRADIENT_ENA(x) (((x) & 0x1) << 29)
#define G_0286CC_LINEAR_GRADIENT_ENA(x) (((x) >> 29) & 0x1)
#define C_0286CC_LINEAR_GRADIENT_ENA 0xDFFFFFFF
#define S_0286CC_POSITION_SAMPLE(x) (((x) & 0x1) << 30)
#define G_0286CC_POSITION_SAMPLE(x) (((x) >> 30) & 0x1)
#define C_0286CC_POSITION_SAMPLE 0xBFFFFFFF
#define S_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) & 0x1) << 31)
#define G_0286CC_BARYC_AT_SAMPLE_ENA(x) (((x) >> 31) & 0x1)
#define C_0286CC_BARYC_AT_SAMPLE_ENA 0x7FFFFFFF
#define R_0286D0_SPI_PS_IN_CONTROL_1 0x0286D0
#define S_0286D0_GEN_INDEX_PIX(x) (((x) & 0x1) << 0)
#define G_0286D0_GEN_INDEX_PIX(x) (((x) >> 0) & 0x1)
#define C_0286D0_GEN_INDEX_PIX 0xFFFFFFFE
#define S_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) & 0x7F) << 1)
#define G_0286D0_GEN_INDEX_PIX_ADDR(x) (((x) >> 1) & 0x7F)
#define C_0286D0_GEN_INDEX_PIX_ADDR 0xFFFFFF01
#define S_0286D0_FRONT_FACE_ENA(x) (((x) & 0x1) << 8)
#define G_0286D0_FRONT_FACE_ENA(x) (((x) >> 8) & 0x1)
#define C_0286D0_FRONT_FACE_ENA 0xFFFFFEFF
#define S_0286D0_FRONT_FACE_CHAN(x) (((x) & 0x3) << 9)
#define G_0286D0_FRONT_FACE_CHAN(x) (((x) >> 9) & 0x3)
#define C_0286D0_FRONT_FACE_CHAN 0xFFFFF9FF
#define S_0286D0_FRONT_FACE_ALL_BITS(x) (((x) & 0x1) << 11)
#define G_0286D0_FRONT_FACE_ALL_BITS(x) (((x) >> 11) & 0x1)
#define C_0286D0_FRONT_FACE_ALL_BITS 0xFFFFF7FF
#define S_0286D0_FRONT_FACE_ADDR(x) (((x) & 0x1F) << 12)
#define G_0286D0_FRONT_FACE_ADDR(x) (((x) >> 12) & 0x1F)
#define C_0286D0_FRONT_FACE_ADDR 0xFFFE0FFF
#define S_0286D0_FOG_ADDR(x) (((x) & 0x7F) << 17)
#define G_0286D0_FOG_ADDR(x) (((x) >> 17) & 0x7F)
#define C_0286D0_FOG_ADDR 0xFF01FFFF
#define S_0286D0_FIXED_PT_POSITION_ENA(x) (((x) & 0x1) << 24)
#define G_0286D0_FIXED_PT_POSITION_ENA(x) (((x) >> 24) & 0x1)
#define C_0286D0_FIXED_PT_POSITION_ENA 0xFEFFFFFF
#define S_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) & 0x1F) << 25)
#define G_0286D0_FIXED_PT_POSITION_ADDR(x) (((x) >> 25) & 0x1F)
#define C_0286D0_FIXED_PT_POSITION_ADDR 0xC1FFFFFF
#define R_0286C4_SPI_VS_OUT_CONFIG 0x0286C4
#define S_0286C4_VS_PER_COMPONENT(x) (((x) & 0x1) << 0)
#define G_0286C4_VS_PER_COMPONENT(x) (((x) >> 0) & 0x1)
#define C_0286C4_VS_PER_COMPONENT 0xFFFFFFFE
#define S_0286C4_VS_EXPORT_COUNT(x) (((x) & 0x1F) << 1)
#define G_0286C4_VS_EXPORT_COUNT(x) (((x) >> 1) & 0x1F)
#define C_0286C4_VS_EXPORT_COUNT 0xFFFFFFC1
#define S_0286C4_VS_EXPORTS_FOG(x) (((x) & 0x1) << 8)
#define G_0286C4_VS_EXPORTS_FOG(x) (((x) >> 8) & 0x1)
#define C_0286C4_VS_EXPORTS_FOG 0xFFFFFEFF
#define S_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) & 0x1F) << 9)
#define G_0286C4_VS_OUT_FOG_VEC_ADDR(x) (((x) >> 9) & 0x1F)
#define C_0286C4_VS_OUT_FOG_VEC_ADDR 0xFFFFC1FF
#define R_028240_PA_SC_GENERIC_SCISSOR_TL 0x028240
#define S_028240_TL_X(x) (((x) & 0x3FFF) << 0)
#define G_028240_TL_X(x) (((x) >> 0) & 0x3FFF)
#define C_028240_TL_X 0xFFFFC000
#define S_028240_TL_Y(x) (((x) & 0x3FFF) << 16)
#define G_028240_TL_Y(x) (((x) >> 16) & 0x3FFF)
#define C_028240_TL_Y 0xC000FFFF
#define S_028240_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
#define G_028240_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
#define C_028240_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
#define R_028244_PA_SC_GENERIC_SCISSOR_BR 0x028244
#define S_028244_BR_X(x) (((x) & 0x3FFF) << 0)
#define G_028244_BR_X(x) (((x) >> 0) & 0x3FFF)
#define C_028244_BR_X 0xFFFFC000
#define S_028244_BR_Y(x) (((x) & 0x3FFF) << 16)
#define G_028244_BR_Y(x) (((x) >> 16) & 0x3FFF)
#define C_028244_BR_Y 0xC000FFFF
#define R_028030_PA_SC_SCREEN_SCISSOR_TL 0x028030
#define S_028030_TL_X(x) (((x) & 0x7FFF) << 0)
#define G_028030_TL_X(x) (((x) >> 0) & 0x7FFF)
#define C_028030_TL_X 0xFFFF8000
#define S_028030_TL_Y(x) (((x) & 0x7FFF) << 16)
#define G_028030_TL_Y(x) (((x) >> 16) & 0x7FFF)
#define C_028030_TL_Y 0x8000FFFF
#define R_028034_PA_SC_SCREEN_SCISSOR_BR 0x028034
#define S_028034_BR_X(x) (((x) & 0x7FFF) << 0)
#define G_028034_BR_X(x) (((x) >> 0) & 0x7FFF)
#define C_028034_BR_X 0xFFFF8000
#define S_028034_BR_Y(x) (((x) & 0x7FFF) << 16)
#define G_028034_BR_Y(x) (((x) >> 16) & 0x7FFF)
#define C_028034_BR_Y 0x8000FFFF
#define R_028204_PA_SC_WINDOW_SCISSOR_TL 0x028204
#define S_028204_TL_X(x) (((x) & 0x3FFF) << 0)
#define G_028204_TL_X(x) (((x) >> 0) & 0x3FFF)
#define C_028204_TL_X 0xFFFFC000
#define S_028204_TL_Y(x) (((x) & 0x3FFF) << 16)
#define G_028204_TL_Y(x) (((x) >> 16) & 0x3FFF)
#define C_028204_TL_Y 0xC000FFFF
#define S_028204_WINDOW_OFFSET_DISABLE(x) (((x) & 0x1) << 31)
#define G_028204_WINDOW_OFFSET_DISABLE(x) (((x) >> 31) & 0x1)
#define C_028204_WINDOW_OFFSET_DISABLE 0x7FFFFFFF
#define R_028208_PA_SC_WINDOW_SCISSOR_BR 0x028208
#define S_028208_BR_X(x) (((x) & 0x3FFF) << 0)
#define G_028208_BR_X(x) (((x) >> 0) & 0x3FFF)
#define C_028208_BR_X 0xFFFFC000
#define S_028208_BR_Y(x) (((x) & 0x3FFF) << 16)
#define G_028208_BR_Y(x) (((x) >> 16) & 0x3FFF)
#define C_028208_BR_Y 0xC000FFFF
#endif
|