]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/gpu/drm/radeon/r600_blit_shaders.c
drm/radeon: group r6xx/r7xx sequential blit state
[net-next-2.6.git] / drivers / gpu / drm / radeon / r600_blit_shaders.c
CommitLineData
65388342
AD
1/*
2 * Copyright 2009 Advanced Micro Devices, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE COPYRIGHT HOLDER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 *
23 * Authors:
24 * Alex Deucher <alexander.deucher@amd.com>
25 */
3ce0a23d
JG
26
27#include <linux/types.h>
28#include <linux/kernel.h>
29
65388342
AD
30/*
31 * R6xx+ cards need to use the 3D engine to blit data which requires
32 * quite a bit of hw state setup. Rather than pull the whole 3D driver
33 * (which normally generates the 3D state) into the DRM, we opt to use
34 * statically generated state tables. The regsiter state and shaders
35 * were hand generated to support blitting functionality. See the 3D
36 * driver or documentation for descriptions of the registers and
37 * shader instructions.
38 */
39
3ce0a23d
JG
40const u32 r6xx_default_state[] =
41{
8c119e9c 42 0xc0002400, /* START_3D_CMDBUF */
3ce0a23d 43 0x00000000,
8c119e9c
AD
44
45 0xc0012800, /* CONTEXT_CONTROL */
3ce0a23d
JG
46 0x80000000,
47 0x80000000,
8c119e9c 48
3ce0a23d
JG
49 0xc0016800,
50 0x00000010,
8c119e9c
AD
51 0x00008000, /* WAIT_UNTIL */
52
3ce0a23d
JG
53 0xc0016800,
54 0x00000542,
8c119e9c
AD
55 0x07000003, /* TA_CNTL_AUX */
56
3ce0a23d
JG
57 0xc0016800,
58 0x000005c5,
8c119e9c
AD
59 0x00000000, /* VC_ENHANCE */
60
3ce0a23d
JG
61 0xc0016800,
62 0x00000363,
8c119e9c
AD
63 0x00000000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
64
3ce0a23d
JG
65 0xc0016800,
66 0x0000060c,
8c119e9c
AD
67 0x82000000, /* DB_DEBUG */
68
3ce0a23d
JG
69 0xc0016800,
70 0x0000060e,
8c119e9c
AD
71 0x01020204, /* DB_WATERMARKS */
72
eb544433 73 0xc0026f00,
3ce0a23d 74 0x00000000,
8c119e9c 75 0x00000000, /* SQ_VTX_BASE_VTX_LOC */
8c119e9c
AD
76 0x00000000, /* SQ_VTX_START_INST_LOC */
77
3ce0a23d
JG
78 0xc0096900,
79 0x0000022a,
8c119e9c 80 0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
3ce0a23d
JG
81 0x00000000,
82 0x00000000,
83 0x00000000,
84 0x00000000,
85 0x00000000,
86 0x00000000,
87 0x00000000,
88 0x00000000,
8c119e9c 89
3ce0a23d
JG
90 0xc0016900,
91 0x00000004,
8c119e9c
AD
92 0x00000000, /* DB_DEPTH_INFO */
93
eb544433 94 0xc0026900,
3ce0a23d 95 0x0000000a,
8c119e9c 96 0x00000000, /* DB_STENCIL_CLEAR */
8c119e9c
AD
97 0x00000000, /* DB_DEPTH_CLEAR */
98
eb544433 99 0xc0026900,
3ce0a23d 100 0x0000010c,
8c119e9c 101 0x00000000, /* DB_STENCILREFMASK */
8c119e9c
AD
102 0x00000000, /* DB_STENCILREFMASK_BF */
103
3ce0a23d
JG
104 0xc0016900,
105 0x00000200,
8c119e9c
AD
106 0x00000000, /* DB_DEPTH_CONTROL */
107
eb544433 108 0xc0026900,
3ce0a23d 109 0x00000343,
8c119e9c 110 0x00000060, /* DB_RENDER_CONTROL */
8c119e9c
AD
111 0x00000040, /* DB_RENDER_OVERRIDE */
112
3ce0a23d
JG
113 0xc0016900,
114 0x00000351,
8c119e9c
AD
115 0x0000aa00, /* DB_ALPHA_TO_MASK */
116
3ce0a23d
JG
117 0xc0016900,
118 0x00000104,
8c119e9c
AD
119 0x00000000, /* SX_ALPHA_TEST_CONTROL */
120
3ce0a23d
JG
121 0xc0016900,
122 0x0000010e,
8c119e9c
AD
123 0x00000000, /* SX_ALPHA_REF */
124
eb544433 125 0xc0076900,
3ce0a23d 126 0x00000105,
8c119e9c 127 0x00000000, /* CB_BLEND_RED */
3ce0a23d
JG
128 0x00000000,
129 0x00000000,
130 0x00000000,
8c119e9c 131 0x00000000, /* CB_FOG_RED */
3ce0a23d
JG
132 0x00000000,
133 0x00000000,
8c119e9c 134
3ce0a23d
JG
135 0xc0046900,
136 0x0000030c,
8c119e9c 137 0x01000000, /* CB_CLRCMP_CNTL */
3ce0a23d
JG
138 0x00000000,
139 0x00000000,
140 0x00000000,
8c119e9c 141
3ce0a23d
JG
142 0xc0046900,
143 0x00000048,
8c119e9c 144 0x3f800000, /* CB_CLEAR_RED */
3ce0a23d
JG
145 0x00000000,
146 0x3f800000,
147 0x3f800000,
8c119e9c 148
3ce0a23d
JG
149 0xc0016900,
150 0x0000008e,
8c119e9c
AD
151 0x0000000f, /* CB_TARGET_MASK */
152
3ce0a23d
JG
153 0xc0016900,
154 0x00000080,
8c119e9c
AD
155 0x00000000, /* PA_SC_WINDOW_OFFSET */
156
eb544433 157 0xc00a6900,
3ce0a23d 158 0x00000083,
8c119e9c 159 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
eb544433 160 0x00000000, /* PA_SC_CLIPRECT_0_TL */
3ce0a23d 161 0x20002000,
3ce0a23d 162 0x00000000,
3ce0a23d 163 0x20002000,
3ce0a23d 164 0x00000000,
3ce0a23d 165 0x20002000,
3ce0a23d 166 0x00000000,
3ce0a23d 167 0x20002000,
8c119e9c
AD
168 0x00000000, /* PA_SC_EDGERULE */
169
eb544433 170 0xc0026900,
3ce0a23d 171 0x00000094,
8c119e9c 172 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
8c119e9c
AD
173 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
174
3ce0a23d
JG
175 0xc0026900,
176 0x000000b4,
8c119e9c 177 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
3ce0a23d 178 0x3f800000,
8c119e9c 179
eb544433 180 0xc0026900,
3ce0a23d 181 0x00000096,
8c119e9c 182 0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
3ce0a23d 183 0x20002000,
8c119e9c 184
3ce0a23d
JG
185 0xc0026900,
186 0x000000b6,
187 0x00000000,
188 0x3f800000,
8c119e9c 189
eb544433 190 0xc0026900,
3ce0a23d
JG
191 0x00000098,
192 0x80000000,
3ce0a23d 193 0x20002000,
8c119e9c 194
3ce0a23d
JG
195 0xc0026900,
196 0x000000b8,
197 0x00000000,
198 0x3f800000,
8c119e9c 199
eb544433 200 0xc0026900,
3ce0a23d
JG
201 0x0000009a,
202 0x80000000,
3ce0a23d 203 0x20002000,
8c119e9c 204
3ce0a23d
JG
205 0xc0026900,
206 0x000000ba,
207 0x00000000,
208 0x3f800000,
8c119e9c 209
eb544433 210 0xc0026900,
3ce0a23d
JG
211 0x0000009c,
212 0x80000000,
3ce0a23d 213 0x20002000,
8c119e9c 214
3ce0a23d
JG
215 0xc0026900,
216 0x000000bc,
217 0x00000000,
218 0x3f800000,
8c119e9c 219
eb544433 220 0xc0026900,
3ce0a23d
JG
221 0x0000009e,
222 0x80000000,
3ce0a23d 223 0x20002000,
8c119e9c 224
3ce0a23d
JG
225 0xc0026900,
226 0x000000be,
227 0x00000000,
228 0x3f800000,
8c119e9c 229
eb544433 230 0xc0026900,
3ce0a23d
JG
231 0x000000a0,
232 0x80000000,
3ce0a23d 233 0x20002000,
8c119e9c 234
3ce0a23d
JG
235 0xc0026900,
236 0x000000c0,
237 0x00000000,
238 0x3f800000,
8c119e9c 239
eb544433 240 0xc0026900,
3ce0a23d
JG
241 0x000000a2,
242 0x80000000,
3ce0a23d 243 0x20002000,
8c119e9c 244
3ce0a23d
JG
245 0xc0026900,
246 0x000000c2,
247 0x00000000,
248 0x3f800000,
8c119e9c 249
eb544433 250 0xc0026900,
3ce0a23d
JG
251 0x000000a4,
252 0x80000000,
3ce0a23d 253 0x20002000,
8c119e9c 254
3ce0a23d
JG
255 0xc0026900,
256 0x000000c4,
257 0x00000000,
258 0x3f800000,
8c119e9c 259
eb544433 260 0xc0026900,
3ce0a23d
JG
261 0x000000a6,
262 0x80000000,
3ce0a23d 263 0x20002000,
8c119e9c 264
3ce0a23d
JG
265 0xc0026900,
266 0x000000c6,
267 0x00000000,
268 0x3f800000,
8c119e9c 269
eb544433 270 0xc0026900,
3ce0a23d
JG
271 0x000000a8,
272 0x80000000,
3ce0a23d 273 0x20002000,
8c119e9c 274
3ce0a23d
JG
275 0xc0026900,
276 0x000000c8,
277 0x00000000,
278 0x3f800000,
8c119e9c 279
eb544433 280 0xc0026900,
3ce0a23d
JG
281 0x000000aa,
282 0x80000000,
3ce0a23d 283 0x20002000,
8c119e9c 284
3ce0a23d
JG
285 0xc0026900,
286 0x000000ca,
287 0x00000000,
288 0x3f800000,
8c119e9c 289
eb544433 290 0xc0026900,
3ce0a23d
JG
291 0x000000ac,
292 0x80000000,
3ce0a23d 293 0x20002000,
8c119e9c 294
3ce0a23d
JG
295 0xc0026900,
296 0x000000cc,
297 0x00000000,
298 0x3f800000,
8c119e9c 299
eb544433 300 0xc0026900,
3ce0a23d
JG
301 0x000000ae,
302 0x80000000,
3ce0a23d 303 0x20002000,
8c119e9c 304
3ce0a23d
JG
305 0xc0026900,
306 0x000000ce,
307 0x00000000,
308 0x3f800000,
8c119e9c 309
eb544433 310 0xc0026900,
3ce0a23d
JG
311 0x000000b0,
312 0x80000000,
3ce0a23d 313 0x20002000,
8c119e9c 314
3ce0a23d
JG
315 0xc0026900,
316 0x000000d0,
317 0x00000000,
318 0x3f800000,
8c119e9c 319
eb544433 320 0xc0026900,
3ce0a23d
JG
321 0x000000b2,
322 0x80000000,
3ce0a23d 323 0x20002000,
8c119e9c 324
3ce0a23d
JG
325 0xc0026900,
326 0x000000d2,
327 0x00000000,
328 0x3f800000,
8c119e9c 329
3ce0a23d
JG
330 0xc0016900,
331 0x00000293,
8c119e9c
AD
332 0x00004010, /* PA_SC_MODE_CNTL */
333
eb544433 334 0xc0026900,
3ce0a23d 335 0x00000300,
8c119e9c 336 0x00000000, /* PA_SC_LINE_CNTL */
8c119e9c
AD
337 0x00000000, /* PA_SC_AA_CONFIG */
338
3ce0a23d
JG
339 0xc0016900,
340 0x00000312,
8c119e9c
AD
341 0xffffffff, /* PA_SC_AA_MASK */
342
eb544433 343 0xc0026900,
3ce0a23d 344 0x00000307,
8c119e9c 345 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
3ce0a23d 346 0x00000000,
8c119e9c 347
3ce0a23d
JG
348 0xc0016900,
349 0x00000283,
8c119e9c
AD
350 0x00000000, /* PA_SC_LINE_STIPPLE */
351
3ce0a23d
JG
352 0xc0016900,
353 0x00000292,
8c119e9c
AD
354 0x00000000, /* PA_SC_MPASS_PS_CNTL */
355
3ce0a23d
JG
356 0xc0066900,
357 0x0000010f,
8c119e9c 358 0x00000000, /* PA_CL_VPORT_0_XSCALE */
3ce0a23d
JG
359 0x00000000,
360 0x00000000,
361 0x00000000,
362 0x00000000,
363 0x00000000,
8c119e9c 364
eb544433 365 0xc0026900,
3ce0a23d 366 0x00000207,
8c119e9c 367 0x00000000, /* PA_CL_VS_OUT_CNTL */
8c119e9c
AD
368 0x00000000, /* PA_CL_NANINF_CNTL */
369
3ce0a23d
JG
370 0xc0046900,
371 0x00000303,
8c119e9c 372 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
3ce0a23d
JG
373 0x3f800000,
374 0x3f800000,
375 0x3f800000,
8c119e9c 376
eb544433 377 0xc0026900,
3ce0a23d 378 0x00000280,
8c119e9c 379 0x00000000, /* PA_SU_POINT_SIZE */
8c119e9c
AD
380 0x00000000, /* PA_SU_POINT_MINMAX */
381
3ce0a23d
JG
382 0xc0016900,
383 0x0000037e,
8c119e9c
AD
384 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
385
3ce0a23d
JG
386 0xc0016900,
387 0x00000382,
8c119e9c
AD
388 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
389
3ce0a23d
JG
390 0xc0016900,
391 0x00000380,
8c119e9c
AD
392 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
393
3ce0a23d
JG
394 0xc0016900,
395 0x00000383,
8c119e9c
AD
396 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
397
3ce0a23d
JG
398 0xc0016900,
399 0x00000381,
8c119e9c
AD
400 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
401
3ce0a23d
JG
402 0xc0016900,
403 0x00000282,
8c119e9c
AD
404 0x00000008, /* PA_SU_LINE_CNTL */
405
3ce0a23d
JG
406 0xc0016900,
407 0x00000302,
8c119e9c
AD
408 0x0000002d, /* PA_SU_VTX_CNTL */
409
3ce0a23d
JG
410 0xc0016900,
411 0x0000037f,
8c119e9c
AD
412 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
413
3ce0a23d
JG
414 0xc0016900,
415 0x000001b2,
8c119e9c
AD
416 0x00000000, /* SPI_THREAD_GROUPING */
417
eb544433 418 0xc0046900,
3ce0a23d 419 0x000001b6,
8c119e9c 420 0x00000000, /* SPI_INPUT_Z */
8c119e9c 421 0x00000000, /* SPI_FOG_CNTL */
8c119e9c 422 0x00000000, /* SPI_FOG_FUNC_SCALE */
8c119e9c
AD
423 0x00000000, /* SPI_FOG_FUNC_BIAS */
424
3ce0a23d
JG
425 0xc0016900,
426 0x00000225,
8c119e9c
AD
427 0x00000000, /* SQ_PGM_START_FS */
428
3ce0a23d
JG
429 0xc0016900,
430 0x00000229,
8c119e9c
AD
431 0x00000000, /* SQ_PGM_RESOURCES_FS */
432
3ce0a23d
JG
433 0xc0016900,
434 0x00000237,
8c119e9c
AD
435 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
436
eb544433 437 0xc0036900,
3ce0a23d 438 0x00000100,
8c119e9c 439 0x00000800, /* VGT_MAX_VTX_INDX */
8c119e9c 440 0x00000000, /* VGT_MIN_VTX_INDX */
8c119e9c
AD
441 0x00000000, /* VGT_INDX_OFFSET */
442
eb544433 443 0xc0026900,
3ce0a23d 444 0x000002a8,
8c119e9c 445 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
8c119e9c
AD
446 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
447
3ce0a23d
JG
448 0xc0016900,
449 0x00000103,
8c119e9c
AD
450 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
451
3ce0a23d
JG
452 0xc0016900,
453 0x00000284,
8c119e9c
AD
454 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
455
3ce0a23d
JG
456 0xc0016900,
457 0x00000290,
8c119e9c
AD
458 0x00000000, /* VGT_GS_MODE */
459
3ce0a23d
JG
460 0xc0016900,
461 0x00000285,
8c119e9c
AD
462 0x00000000, /* VGT_HOS_CNTL */
463
eb544433 464 0xc00a6900,
3ce0a23d 465 0x00000286,
8c119e9c 466 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
8c119e9c 467 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
8c119e9c 468 0x00000000, /* VGT_HOS_REUSE_DEPTH */
8c119e9c 469 0x00000000, /* VGT_GROUP_PRIM_TYPE */
8c119e9c 470 0x00000000, /* VGT_GROUP_FIRST_DECR */
8c119e9c 471 0x00000000, /* VGT_GROUP_DECR */
8c119e9c 472 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
8c119e9c 473 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
8c119e9c 474 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
8c119e9c
AD
475 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
476
3ce0a23d
JG
477 0xc0016900,
478 0x000002a1,
8c119e9c
AD
479 0x00000000, /* VGT_PRIMITIVEID_EN */
480
3ce0a23d
JG
481 0xc0016900,
482 0x000002a5,
8c119e9c
AD
483 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
484
eb544433 485 0xc0036900,
3ce0a23d 486 0x000002ac,
8c119e9c 487 0x00000000, /* VGT_STRMOUT_EN */
8c119e9c 488 0x00000000, /* VGT_REUSE_OFF */
8c119e9c
AD
489 0x00000000, /* VGT_VTX_CNT_EN */
490
3ce0a23d
JG
491 0xc0016900,
492 0x000002c8,
8c119e9c
AD
493 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
494
3ce0a23d
JG
495 0xc0016900,
496 0x00000206,
8c119e9c
AD
497 0x00000100, /* PA_CL_VTE_CNTL */
498
3ce0a23d
JG
499 0xc0016900,
500 0x00000204,
8c119e9c
AD
501 0x00010000, /* PA_CL_CLIP_CNTL */
502
503 0xc0036e00, /* SET_SAMPLER */
3ce0a23d
JG
504 0x00000000,
505 0x00000012,
506 0x00000000,
507 0x00000000,
8c119e9c 508
3ce0a23d
JG
509 0xc0016900,
510 0x0000008f,
8c119e9c
AD
511 0x0000000f, /* CB_SHADER_MASK */
512
3ce0a23d
JG
513 0xc0016900,
514 0x000001e8,
8c119e9c
AD
515 0x00000001, /* CB_SHADER_CONTROL */
516
3ce0a23d
JG
517 0xc0016900,
518 0x00000202,
8c119e9c
AD
519 0x00cc0000, /* CB_COLOR_CONTROL */
520
3ce0a23d
JG
521 0xc0016900,
522 0x00000205,
8c119e9c
AD
523 0x00000244, /* PA_SU_SC_MODE_CNTL */
524
3ce0a23d
JG
525 0xc0016900,
526 0x00000203,
8c119e9c
AD
527 0x00000210, /* DB_SHADER_CNTL */
528
3ce0a23d
JG
529 0xc0016900,
530 0x000001b1,
8c119e9c
AD
531 0x00000000, /* SPI_VS_OUT_CONFIG */
532
3ce0a23d
JG
533 0xc0016900,
534 0x00000185,
8c119e9c
AD
535 0x00000000, /* SPI_VS_OUT_ID_0 */
536
eb544433 537 0xc0026900,
3ce0a23d 538 0x000001b3,
8c119e9c 539 0x00000001, /* SPI_PS_IN_CONTROL_0 */
8c119e9c
AD
540 0x00000000, /* SPI_PS_IN_CONTROL_1 */
541
3ce0a23d
JG
542 0xc0016900,
543 0x00000191,
8c119e9c
AD
544 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
545
3ce0a23d
JG
546 0xc0016900,
547 0x000001b5,
8c119e9c 548 0x00000000, /* SPI_INTERP_CONTROL_0 */
3ce0a23d
JG
549};
550
551const u32 r7xx_default_state[] =
552{
8c119e9c 553 0xc0012800, /* CONTEXT_CONTROL */
3ce0a23d
JG
554 0x80000000,
555 0x80000000,
8c119e9c 556
3ce0a23d
JG
557 0xc0016800,
558 0x00000010,
8c119e9c
AD
559 0x00008000, /* WAIT_UNTIL */
560
3ce0a23d
JG
561 0xc0016800,
562 0x00000542,
8c119e9c
AD
563 0x07000002, /* TA_CNTL_AUX */
564
3ce0a23d
JG
565 0xc0016800,
566 0x000005c5,
8c119e9c
AD
567 0x00000000, /* VC_ENHANCE */
568
3ce0a23d
JG
569 0xc0016800,
570 0x00000363,
8c119e9c
AD
571 0x00004000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
572
3ce0a23d
JG
573 0xc0016800,
574 0x0000060c,
8c119e9c
AD
575 0x00000000, /* DB_DEBUG */
576
3ce0a23d
JG
577 0xc0016800,
578 0x0000060e,
8c119e9c
AD
579 0x00420204, /* DB_WATERMARKS */
580
eb544433 581 0xc0026f00,
3ce0a23d 582 0x00000000,
8c119e9c 583 0x00000000, /* SQ_VTX_BASE_VTX_LOC */
8c119e9c
AD
584 0x00000000, /* SQ_VTX_START_INST_LOC */
585
3ce0a23d
JG
586 0xc0096900,
587 0x0000022a,
8c119e9c 588 0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
3ce0a23d
JG
589 0x00000000,
590 0x00000000,
591 0x00000000,
592 0x00000000,
593 0x00000000,
594 0x00000000,
595 0x00000000,
596 0x00000000,
8c119e9c 597
3ce0a23d
JG
598 0xc0016900,
599 0x00000004,
8c119e9c
AD
600 0x00000000, /* DB_DEPTH_INFO */
601
eb544433 602 0xc0026900,
3ce0a23d 603 0x0000000a,
8c119e9c 604 0x00000000, /* DB_STENCIL_CLEAR */
8c119e9c
AD
605 0x00000000, /* DB_DEPTH_CLEAR */
606
eb544433 607 0xc0026900,
3ce0a23d 608 0x0000010c,
8c119e9c 609 0x00000000, /* DB_STENCILREFMASK */
8c119e9c
AD
610 0x00000000, /* DB_STENCILREFMASK_BF */
611
3ce0a23d
JG
612 0xc0016900,
613 0x00000200,
8c119e9c
AD
614 0x00000000, /* DB_DEPTH_CONTROL */
615
eb544433 616 0xc0026900,
3ce0a23d 617 0x00000343,
8c119e9c 618 0x00000060, /* DB_RENDER_CONTROL */
8c119e9c
AD
619 0x00000000, /* DB_RENDER_OVERRIDE */
620
3ce0a23d
JG
621 0xc0016900,
622 0x00000351,
8c119e9c
AD
623 0x0000aa00, /* DB_ALPHA_TO_MASK */
624
3ce0a23d
JG
625 0xc0016900,
626 0x00000104,
8c119e9c
AD
627 0x00000000, /* SX_ALPHA_TEST_CONTROL */
628
3ce0a23d
JG
629 0xc0016900,
630 0x0000010e,
8c119e9c
AD
631 0x00000000, /* SX_ALPHA_REF */
632
3ce0a23d
JG
633 0xc0046900,
634 0x00000105,
8c119e9c 635 0x00000000, /* CB_BLEND_RED */
3ce0a23d
JG
636 0x00000000,
637 0x00000000,
638 0x00000000,
8c119e9c 639
3ce0a23d 640 0xc0046900,
8c119e9c 641 0x0000030c, /* CB_CLRCMP_CNTL */
3ce0a23d
JG
642 0x01000000,
643 0x00000000,
644 0x00000000,
645 0x00000000,
8c119e9c 646
3ce0a23d
JG
647 0xc0016900,
648 0x0000008e,
8c119e9c
AD
649 0x0000000f, /* CB_TARGET_MASK */
650
3ce0a23d
JG
651 0xc0016900,
652 0x00000080,
8c119e9c
AD
653 0x00000000, /* PA_SC_WINDOW_OFFSET */
654
eb544433 655 0xc00a6900,
3ce0a23d 656 0x00000083,
8c119e9c 657 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
eb544433 658 0x00000000, /* PA_SC_CLIPRECT_0_TL */
3ce0a23d 659 0x20002000,
3ce0a23d 660 0x00000000,
3ce0a23d 661 0x20002000,
3ce0a23d 662 0x00000000,
3ce0a23d 663 0x20002000,
3ce0a23d 664 0x00000000,
3ce0a23d 665 0x20002000,
8c119e9c
AD
666 0xaaaaaaaa, /* PA_SC_EDGERULE */
667
eb544433 668 0xc0026900,
3ce0a23d 669 0x00000094,
8c119e9c 670 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
8c119e9c
AD
671 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
672
3ce0a23d
JG
673 0xc0026900,
674 0x000000b4,
8c119e9c 675 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
3ce0a23d 676 0x3f800000,
8c119e9c 677
eb544433 678 0xc0026900,
3ce0a23d
JG
679 0x00000096,
680 0x80000000,
3ce0a23d 681 0x20002000,
8c119e9c 682
3ce0a23d
JG
683 0xc0026900,
684 0x000000b6,
685 0x00000000,
686 0x3f800000,
8c119e9c 687
eb544433 688 0xc0026900,
3ce0a23d
JG
689 0x00000098,
690 0x80000000,
3ce0a23d 691 0x20002000,
8c119e9c 692
3ce0a23d
JG
693 0xc0026900,
694 0x000000b8,
695 0x00000000,
696 0x3f800000,
8c119e9c 697
3ce0a23d
JG
698 0xc0016900,
699 0x0000009a,
700 0x80000000,
3ce0a23d 701 0x20002000,
8c119e9c 702
3ce0a23d
JG
703 0xc0026900,
704 0x000000ba,
705 0x00000000,
706 0x3f800000,
8c119e9c 707
eb544433 708 0xc0026900,
3ce0a23d
JG
709 0x0000009c,
710 0x80000000,
3ce0a23d 711 0x20002000,
8c119e9c 712
3ce0a23d
JG
713 0xc0026900,
714 0x000000bc,
715 0x00000000,
716 0x3f800000,
8c119e9c 717
eb544433 718 0xc0026900,
3ce0a23d
JG
719 0x0000009e,
720 0x80000000,
3ce0a23d 721 0x20002000,
8c119e9c 722
3ce0a23d
JG
723 0xc0026900,
724 0x000000be,
725 0x00000000,
726 0x3f800000,
8c119e9c 727
eb544433 728 0xc0026900,
3ce0a23d
JG
729 0x000000a0,
730 0x80000000,
3ce0a23d 731 0x20002000,
8c119e9c 732
3ce0a23d
JG
733 0xc0026900,
734 0x000000c0,
735 0x00000000,
736 0x3f800000,
8c119e9c 737
eb544433 738 0xc0026900,
3ce0a23d
JG
739 0x000000a2,
740 0x80000000,
3ce0a23d 741 0x20002000,
8c119e9c 742
3ce0a23d
JG
743 0xc0026900,
744 0x000000c2,
745 0x00000000,
746 0x3f800000,
8c119e9c 747
eb544433 748 0xc0026900,
3ce0a23d
JG
749 0x000000a4,
750 0x80000000,
3ce0a23d 751 0x20002000,
8c119e9c 752
3ce0a23d
JG
753 0xc0026900,
754 0x000000c4,
755 0x00000000,
756 0x3f800000,
8c119e9c 757
eb544433 758 0xc0026900,
3ce0a23d
JG
759 0x000000a6,
760 0x80000000,
3ce0a23d 761 0x20002000,
8c119e9c 762
3ce0a23d
JG
763 0xc0026900,
764 0x000000c6,
765 0x00000000,
766 0x3f800000,
8c119e9c 767
eb544433 768 0xc0026900,
3ce0a23d
JG
769 0x000000a8,
770 0x80000000,
3ce0a23d 771 0x20002000,
8c119e9c 772
3ce0a23d
JG
773 0xc0026900,
774 0x000000c8,
775 0x00000000,
776 0x3f800000,
8c119e9c 777
eb544433 778 0xc0026900,
3ce0a23d
JG
779 0x000000aa,
780 0x80000000,
3ce0a23d 781 0x20002000,
8c119e9c 782
3ce0a23d
JG
783 0xc0026900,
784 0x000000ca,
785 0x00000000,
786 0x3f800000,
8c119e9c 787
eb544433 788 0xc0026900,
3ce0a23d
JG
789 0x000000ac,
790 0x80000000,
3ce0a23d 791 0x20002000,
8c119e9c 792
3ce0a23d
JG
793 0xc0026900,
794 0x000000cc,
795 0x00000000,
796 0x3f800000,
8c119e9c 797
eb544433 798 0xc0026900,
3ce0a23d
JG
799 0x000000ae,
800 0x80000000,
3ce0a23d 801 0x20002000,
8c119e9c 802
3ce0a23d
JG
803 0xc0026900,
804 0x000000ce,
805 0x00000000,
806 0x3f800000,
8c119e9c 807
eb544433 808 0xc0026900,
3ce0a23d
JG
809 0x000000b0,
810 0x80000000,
3ce0a23d 811 0x20002000,
8c119e9c 812
3ce0a23d
JG
813 0xc0026900,
814 0x000000d0,
815 0x00000000,
816 0x3f800000,
8c119e9c 817
eb544433 818 0xc0026900,
3ce0a23d
JG
819 0x000000b2,
820 0x80000000,
3ce0a23d 821 0x20002000,
8c119e9c 822
3ce0a23d
JG
823 0xc0026900,
824 0x000000d2,
825 0x00000000,
826 0x3f800000,
8c119e9c 827
3ce0a23d
JG
828 0xc0016900,
829 0x00000293,
8c119e9c
AD
830 0x00514000, /* PA_SC_MODE_CNTL */
831
eb544433 832 0xc0026900,
3ce0a23d 833 0x00000300,
8c119e9c 834 0x00000000, /* PA_SC_LINE_CNTL */
8c119e9c
AD
835 0x00000000, /* PA_SC_AA_CONFIG */
836
3ce0a23d
JG
837 0xc0016900,
838 0x00000312,
8c119e9c
AD
839 0xffffffff, /* PA_SC_AA_MASK */
840
eb544433 841 0xc0026900,
3ce0a23d 842 0x00000307,
8c119e9c 843 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
3ce0a23d 844 0x00000000,
8c119e9c 845
3ce0a23d
JG
846 0xc0016900,
847 0x00000283,
8c119e9c
AD
848 0x00000000, /* PA_SC_LINE_STIPPLE */
849
3ce0a23d
JG
850 0xc0016900,
851 0x00000292,
8c119e9c
AD
852 0x00000000, /* PA_SC_MPASS_PS_CNTL */
853
3ce0a23d
JG
854 0xc0066900,
855 0x0000010f,
8c119e9c 856 0x00000000, /* PA_CL_VPORT_0_XSCALE */
3ce0a23d
JG
857 0x00000000,
858 0x00000000,
859 0x00000000,
860 0x00000000,
861 0x00000000,
8c119e9c 862
eb544433 863 0xc0026900,
3ce0a23d 864 0x00000207,
8c119e9c 865 0x00000000, /* PA_CL_VS_OUT_CNTL */
8c119e9c
AD
866 0x00000000, /* PA_CL_NANINF_CNTL */
867
3ce0a23d
JG
868 0xc0046900,
869 0x00000303,
8c119e9c 870 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
3ce0a23d
JG
871 0x3f800000,
872 0x3f800000,
873 0x3f800000,
8c119e9c 874
eb544433 875 0xc0026900,
3ce0a23d 876 0x00000280,
8c119e9c 877 0x00000000, /* PA_SU_POINT_SIZE */
8c119e9c
AD
878 0x00000000, /* PA_SU_POINT_MINMAX */
879
3ce0a23d
JG
880 0xc0016900,
881 0x0000037e,
8c119e9c
AD
882 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
883
3ce0a23d
JG
884 0xc0016900,
885 0x00000382,
8c119e9c
AD
886 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
887
3ce0a23d
JG
888 0xc0016900,
889 0x00000380,
8c119e9c
AD
890 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
891
3ce0a23d
JG
892 0xc0016900,
893 0x00000383,
8c119e9c
AD
894 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
895
3ce0a23d
JG
896 0xc0016900,
897 0x00000381,
8c119e9c
AD
898 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
899
3ce0a23d
JG
900 0xc0016900,
901 0x00000282,
8c119e9c
AD
902 0x00000008, /* PA_SU_LINE_CNTL */
903
3ce0a23d
JG
904 0xc0016900,
905 0x00000302,
8c119e9c
AD
906 0x0000002d, /* PA_SU_VTX_CNTL */
907
3ce0a23d
JG
908 0xc0016900,
909 0x0000037f,
8c119e9c
AD
910 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
911
3ce0a23d
JG
912 0xc0016900,
913 0x000001b2,
8c119e9c
AD
914 0x00000001, /* SPI_THREAD_GROUPING */
915
eb544433 916 0xc0046900,
3ce0a23d 917 0x000001b6,
8c119e9c 918 0x00000000, /* SPI_INPUT_Z */
8c119e9c 919 0x00000000, /* SPI_FOG_CNTL */
8c119e9c 920 0x00000000, /* SPI_FOG_FUNC_SCALE */
8c119e9c
AD
921 0x00000000, /* SPI_FOG_FUNC_BIAS */
922
3ce0a23d
JG
923 0xc0016900,
924 0x00000225,
8c119e9c
AD
925 0x00000000, /* SQ_PGM_START_FS */
926
3ce0a23d
JG
927 0xc0016900,
928 0x00000229,
8c119e9c
AD
929 0x00000000, /* SQ_PGM_RESOURCES_FS */
930
3ce0a23d
JG
931 0xc0016900,
932 0x00000237,
8c119e9c
AD
933 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
934
eb544433 935 0xc0036900,
3ce0a23d 936 0x00000100,
8c119e9c 937 0x00000800, /* VGT_MAX_VTX_INDX */
8c119e9c 938 0x00000000, /* VGT_MIN_VTX_INDX */
8c119e9c
AD
939 0x00000000, /* VGT_INDX_OFFSET */
940
eb544433 941 0xc0026900,
3ce0a23d 942 0x000002a8,
8c119e9c 943 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
8c119e9c
AD
944 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
945
3ce0a23d
JG
946 0xc0016900,
947 0x00000103,
8c119e9c
AD
948 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
949
3ce0a23d
JG
950 0xc0016900,
951 0x00000284,
8c119e9c
AD
952 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
953
3ce0a23d
JG
954 0xc0016900,
955 0x00000290,
8c119e9c
AD
956 0x00000000, /* VGT_GS_MODE */
957
eb544433 958 0xc00b6900,
3ce0a23d 959 0x00000285,
8c119e9c 960 0x00000000, /* VGT_HOS_CNTL */
8c119e9c 961 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
8c119e9c 962 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
8c119e9c 963 0x00000000, /* VGT_HOS_REUSE_DEPTH */
8c119e9c 964 0x00000000, /* VGT_GROUP_PRIM_TYPE */
8c119e9c 965 0x00000000, /* VGT_GROUP_FIRST_DECR */
8c119e9c 966 0x00000000, /* VGT_GROUP_DECR */
8c119e9c 967 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
8c119e9c 968 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
8c119e9c 969 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
8c119e9c
AD
970 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
971
3ce0a23d
JG
972 0xc0016900,
973 0x000002a1,
8c119e9c
AD
974 0x00000000, /* VGT_PRIMITIVEID_EN */
975
3ce0a23d
JG
976 0xc0016900,
977 0x000002a5,
8c119e9c
AD
978 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
979
eb544433 980 0xc0036900,
3ce0a23d 981 0x000002ac,
8c119e9c 982 0x00000000, /* VGT_STRMOUT_EN */
8c119e9c 983 0x00000000, /* VGT_REUSE_OFF */
8c119e9c
AD
984 0x00000000, /* VGT_VTX_CNT_EN */
985
3ce0a23d
JG
986 0xc0016900,
987 0x000002c8,
8c119e9c
AD
988 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
989
3ce0a23d
JG
990 0xc0016900,
991 0x00000206,
8c119e9c
AD
992 0x00000100, /* PA_CL_VTE_CNTL */
993
3ce0a23d
JG
994 0xc0016900,
995 0x00000204,
8c119e9c
AD
996 0x00010000, /* PA_CL_CLIP_CNTL */
997
998 0xc0036e00, /* SET_SAMPLER */
3ce0a23d
JG
999 0x00000000,
1000 0x00000012,
1001 0x00000000,
1002 0x00000000,
8c119e9c 1003
3ce0a23d
JG
1004 0xc0016900,
1005 0x0000008f,
8c119e9c
AD
1006 0x0000000f, /* CB_SHADER_MASK */
1007
3ce0a23d
JG
1008 0xc0016900,
1009 0x000001e8,
8c119e9c
AD
1010 0x00000001, /* CB_SHADER_CONTROL */
1011
3ce0a23d
JG
1012 0xc0016900,
1013 0x00000202,
8c119e9c
AD
1014 0x00cc0000, /* CB_COLOR_CONTROL */
1015
3ce0a23d
JG
1016 0xc0016900,
1017 0x00000205,
8c119e9c
AD
1018 0x00000244, /* PA_SU_SC_MODE_CNTL */
1019
3ce0a23d
JG
1020 0xc0016900,
1021 0x00000203,
8c119e9c
AD
1022 0x00000210, /* DB_SHADER_CNTL */
1023
3ce0a23d
JG
1024 0xc0016900,
1025 0x000001b1,
8c119e9c
AD
1026 0x00000000, /* SPI_VS_OUT_CONFIG */
1027
3ce0a23d
JG
1028 0xc0016900,
1029 0x00000185,
8c119e9c
AD
1030 0x00000000, /* SPI_VS_OUT_ID_0 */
1031
eb544433 1032 0xc0026900,
3ce0a23d 1033 0x000001b3,
8c119e9c 1034 0x00000001, /* SPI_PS_IN_CONTROL_0 */
8c119e9c
AD
1035 0x00000000, /* SPI_PS_IN_CONTROL_1 */
1036
3ce0a23d
JG
1037 0xc0016900,
1038 0x00000191,
8c119e9c
AD
1039 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
1040
3ce0a23d
JG
1041 0xc0016900,
1042 0x000001b5,
8c119e9c 1043 0x00000000, /* SPI_INTERP_CONTROL_0 */
3ce0a23d
JG
1044};
1045
1046/* same for r6xx/r7xx */
1047const u32 r6xx_vs[] =
1048{
1049 0x00000004,
1050 0x81000000,
1051 0x0000203c,
1052 0x94000b08,
1053 0x00004000,
1054 0x14200b1a,
1055 0x00000000,
1056 0x00000000,
1057 0x3c000000,
1058 0x68cd1000,
1059 0x00080000,
1060 0x00000000,
1061};
1062
1063const u32 r6xx_ps[] =
1064{
1065 0x00000002,
1066 0x80800000,
1067 0x00000000,
1068 0x94200688,
1069 0x00000010,
1070 0x000d1000,
1071 0xb0800000,
1072 0x00000000,
1073};
1074
1075const u32 r6xx_ps_size = ARRAY_SIZE(r6xx_ps);
1076const u32 r6xx_vs_size = ARRAY_SIZE(r6xx_vs);
1077const u32 r6xx_default_size = ARRAY_SIZE(r6xx_default_state);
1078const u32 r7xx_default_size = ARRAY_SIZE(r7xx_default_state);