]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/gpu/drm/radeon/r600_blit_shaders.c
drivers/gpu/drm: Update WARN uses
[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
3ce0a23d
JG
99 0xc0016900,
100 0x00000200,
8c119e9c
AD
101 0x00000000, /* DB_DEPTH_CONTROL */
102
eb544433 103 0xc0026900,
3ce0a23d 104 0x00000343,
8c119e9c 105 0x00000060, /* DB_RENDER_CONTROL */
8c119e9c
AD
106 0x00000040, /* DB_RENDER_OVERRIDE */
107
3ce0a23d
JG
108 0xc0016900,
109 0x00000351,
8c119e9c
AD
110 0x0000aa00, /* DB_ALPHA_TO_MASK */
111
43a7d2d1 112 0xc00f6900,
d0623a3e
AD
113 0x00000100,
114 0x00000800, /* VGT_MAX_VTX_INDX */
115 0x00000000, /* VGT_MIN_VTX_INDX */
116 0x00000000, /* VGT_INDX_OFFSET */
d0623a3e 117 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
d0623a3e 118 0x00000000, /* SX_ALPHA_TEST_CONTROL */
8c119e9c 119 0x00000000, /* CB_BLEND_RED */
3ce0a23d
JG
120 0x00000000,
121 0x00000000,
122 0x00000000,
8c119e9c 123 0x00000000, /* CB_FOG_RED */
3ce0a23d
JG
124 0x00000000,
125 0x00000000,
d0623a3e
AD
126 0x00000000, /* DB_STENCILREFMASK */
127 0x00000000, /* DB_STENCILREFMASK_BF */
d0623a3e
AD
128 0x00000000, /* SX_ALPHA_REF */
129
3ce0a23d
JG
130 0xc0046900,
131 0x0000030c,
8c119e9c 132 0x01000000, /* CB_CLRCMP_CNTL */
3ce0a23d
JG
133 0x00000000,
134 0x00000000,
135 0x00000000,
8c119e9c 136
3ce0a23d
JG
137 0xc0046900,
138 0x00000048,
8c119e9c 139 0x3f800000, /* CB_CLEAR_RED */
3ce0a23d
JG
140 0x00000000,
141 0x3f800000,
142 0x3f800000,
8c119e9c 143
3ce0a23d
JG
144 0xc0016900,
145 0x00000080,
8c119e9c
AD
146 0x00000000, /* PA_SC_WINDOW_OFFSET */
147
eb544433 148 0xc00a6900,
3ce0a23d 149 0x00000083,
8c119e9c 150 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
eb544433 151 0x00000000, /* PA_SC_CLIPRECT_0_TL */
3ce0a23d 152 0x20002000,
3ce0a23d 153 0x00000000,
3ce0a23d 154 0x20002000,
3ce0a23d 155 0x00000000,
3ce0a23d 156 0x20002000,
3ce0a23d 157 0x00000000,
3ce0a23d 158 0x20002000,
8c119e9c
AD
159 0x00000000, /* PA_SC_EDGERULE */
160
363c6a16 161 0xc0406900,
3ce0a23d 162 0x00000094,
8c119e9c 163 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
8c119e9c 164 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
8c119e9c 165 0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
3ce0a23d 166 0x20002000,
3ce0a23d 167 0x80000000,
3ce0a23d 168 0x20002000,
3ce0a23d 169 0x80000000,
3ce0a23d 170 0x20002000,
3ce0a23d 171 0x80000000,
3ce0a23d 172 0x20002000,
3ce0a23d 173 0x80000000,
3ce0a23d 174 0x20002000,
3ce0a23d 175 0x80000000,
3ce0a23d 176 0x20002000,
3ce0a23d 177 0x80000000,
3ce0a23d 178 0x20002000,
3ce0a23d 179 0x80000000,
3ce0a23d 180 0x20002000,
3ce0a23d 181 0x80000000,
3ce0a23d 182 0x20002000,
3ce0a23d 183 0x80000000,
3ce0a23d 184 0x20002000,
3ce0a23d 185 0x80000000,
3ce0a23d 186 0x20002000,
3ce0a23d 187 0x80000000,
3ce0a23d 188 0x20002000,
3ce0a23d 189 0x80000000,
3ce0a23d 190 0x20002000,
3ce0a23d 191 0x80000000,
3ce0a23d 192 0x20002000,
3ce0a23d 193 0x80000000,
3ce0a23d 194 0x20002000,
363c6a16
AD
195 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
196 0x3f800000,
197 0x00000000,
198 0x3f800000,
199 0x00000000,
200 0x3f800000,
201 0x00000000,
202 0x3f800000,
203 0x00000000,
204 0x3f800000,
205 0x00000000,
206 0x3f800000,
207 0x00000000,
208 0x3f800000,
209 0x00000000,
210 0x3f800000,
211 0x00000000,
212 0x3f800000,
213 0x00000000,
214 0x3f800000,
215 0x00000000,
216 0x3f800000,
217 0x00000000,
218 0x3f800000,
219 0x00000000,
220 0x3f800000,
221 0x00000000,
222 0x3f800000,
223 0x00000000,
224 0x3f800000,
3ce0a23d
JG
225 0x00000000,
226 0x3f800000,
8c119e9c 227
43a7d2d1 228 0xc0026900,
3ce0a23d 229 0x00000292,
8c119e9c 230 0x00000000, /* PA_SC_MPASS_PS_CNTL */
d0623a3e
AD
231 0x00004010, /* PA_SC_MODE_CNTL */
232
43a7d2d1 233 0xc0096900,
d0623a3e
AD
234 0x00000300,
235 0x00000000, /* PA_SC_LINE_CNTL */
236 0x00000000, /* PA_SC_AA_CONFIG */
d0623a3e 237 0x0000002d, /* PA_SU_VTX_CNTL */
8c119e9c 238 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
3ce0a23d
JG
239 0x3f800000,
240 0x3f800000,
241 0x3f800000,
d0623a3e
AD
242 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
243 0x00000000,
244
245 0xc0016900,
246 0x00000312,
247 0xffffffff, /* PA_SC_AA_MASK */
8c119e9c 248
43a7d2d1 249 0xc0066900,
3ce0a23d 250 0x0000037e,
8c119e9c 251 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
d0623a3e 252 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
8c119e9c 253 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
8c119e9c 254 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
d0623a3e 255 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
d0623a3e 256 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
8c119e9c 257
eb544433 258 0xc0046900,
3ce0a23d 259 0x000001b6,
8c119e9c 260 0x00000000, /* SPI_INPUT_Z */
8c119e9c 261 0x00000000, /* SPI_FOG_CNTL */
8c119e9c 262 0x00000000, /* SPI_FOG_FUNC_SCALE */
8c119e9c
AD
263 0x00000000, /* SPI_FOG_FUNC_BIAS */
264
3ce0a23d
JG
265 0xc0016900,
266 0x00000225,
8c119e9c
AD
267 0x00000000, /* SQ_PGM_START_FS */
268
3ce0a23d
JG
269 0xc0016900,
270 0x00000229,
8c119e9c
AD
271 0x00000000, /* SQ_PGM_RESOURCES_FS */
272
3ce0a23d
JG
273 0xc0016900,
274 0x00000237,
8c119e9c
AD
275 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
276
eb544433 277 0xc0026900,
3ce0a23d 278 0x000002a8,
8c119e9c 279 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
8c119e9c
AD
280 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
281
43a7d2d1 282 0xc0116900,
d0623a3e
AD
283 0x00000280,
284 0x00000000, /* PA_SU_POINT_SIZE */
285 0x00000000, /* PA_SU_POINT_MINMAX */
d0623a3e 286 0x00000008, /* PA_SU_LINE_CNTL */
d0623a3e 287 0x00000000, /* PA_SC_LINE_STIPPLE */
d0623a3e 288 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
8c119e9c 289 0x00000000, /* VGT_HOS_CNTL */
8c119e9c 290 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
8c119e9c 291 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
8c119e9c 292 0x00000000, /* VGT_HOS_REUSE_DEPTH */
8c119e9c 293 0x00000000, /* VGT_GROUP_PRIM_TYPE */
8c119e9c 294 0x00000000, /* VGT_GROUP_FIRST_DECR */
8c119e9c 295 0x00000000, /* VGT_GROUP_DECR */
8c119e9c 296 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
8c119e9c 297 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
8c119e9c 298 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
8c119e9c 299 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
d0623a3e
AD
300 0x00000000, /* VGT_GS_MODE */
301
3ce0a23d
JG
302 0xc0016900,
303 0x000002a1,
8c119e9c
AD
304 0x00000000, /* VGT_PRIMITIVEID_EN */
305
3ce0a23d
JG
306 0xc0016900,
307 0x000002a5,
8c119e9c
AD
308 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
309
eb544433 310 0xc0036900,
3ce0a23d 311 0x000002ac,
8c119e9c 312 0x00000000, /* VGT_STRMOUT_EN */
8c119e9c 313 0x00000000, /* VGT_REUSE_OFF */
8c119e9c
AD
314 0x00000000, /* VGT_VTX_CNT_EN */
315
3ce0a23d
JG
316 0xc0016900,
317 0x000002c8,
8c119e9c
AD
318 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
319
43a7d2d1 320 0xc0076900,
d0623a3e
AD
321 0x00000202,
322 0x00cc0000, /* CB_COLOR_CONTROL */
d0623a3e 323 0x00000210, /* DB_SHADER_CNTL */
8c119e9c 324 0x00010000, /* PA_CL_CLIP_CNTL */
d0623a3e 325 0x00000244, /* PA_SU_SC_MODE_CNTL */
d0623a3e 326 0x00000100, /* PA_CL_VTE_CNTL */
d0623a3e
AD
327 0x00000000, /* PA_CL_VS_OUT_CNTL */
328 0x00000000, /* PA_CL_NANINF_CNTL */
329
43a7d2d1 330 0xc0026900,
d0623a3e
AD
331 0x0000008e,
332 0x0000000f, /* CB_TARGET_MASK */
8c119e9c
AD
333 0x0000000f, /* CB_SHADER_MASK */
334
3ce0a23d
JG
335 0xc0016900,
336 0x000001e8,
8c119e9c
AD
337 0x00000001, /* CB_SHADER_CONTROL */
338
3ce0a23d 339 0xc0016900,
d0623a3e
AD
340 0x00000185,
341 0x00000000, /* SPI_VS_OUT_ID_0 */
8c119e9c 342
3ce0a23d 343 0xc0016900,
d0623a3e
AD
344 0x00000191,
345 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
8c119e9c 346
43a7d2d1 347 0xc0056900,
3ce0a23d 348 0x000001b1,
8c119e9c 349 0x00000000, /* SPI_VS_OUT_CONFIG */
d0623a3e 350 0x00000000, /* SPI_THREAD_GROUPING */
8c119e9c 351 0x00000001, /* SPI_PS_IN_CONTROL_0 */
8c119e9c 352 0x00000000, /* SPI_PS_IN_CONTROL_1 */
8c119e9c 353 0x00000000, /* SPI_INTERP_CONTROL_0 */
d0623a3e
AD
354
355 0xc0036e00, /* SET_SAMPLER */
356 0x00000000,
357 0x00000012,
358 0x00000000,
359 0x00000000,
3ce0a23d
JG
360};
361
362const u32 r7xx_default_state[] =
363{
8c119e9c 364 0xc0012800, /* CONTEXT_CONTROL */
3ce0a23d
JG
365 0x80000000,
366 0x80000000,
8c119e9c 367
3ce0a23d
JG
368 0xc0016800,
369 0x00000010,
8c119e9c
AD
370 0x00008000, /* WAIT_UNTIL */
371
3ce0a23d
JG
372 0xc0016800,
373 0x00000542,
8c119e9c
AD
374 0x07000002, /* TA_CNTL_AUX */
375
3ce0a23d
JG
376 0xc0016800,
377 0x000005c5,
8c119e9c
AD
378 0x00000000, /* VC_ENHANCE */
379
3ce0a23d
JG
380 0xc0016800,
381 0x00000363,
8c119e9c
AD
382 0x00004000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
383
3ce0a23d
JG
384 0xc0016800,
385 0x0000060c,
8c119e9c
AD
386 0x00000000, /* DB_DEBUG */
387
3ce0a23d
JG
388 0xc0016800,
389 0x0000060e,
8c119e9c
AD
390 0x00420204, /* DB_WATERMARKS */
391
eb544433 392 0xc0026f00,
3ce0a23d 393 0x00000000,
8c119e9c 394 0x00000000, /* SQ_VTX_BASE_VTX_LOC */
8c119e9c
AD
395 0x00000000, /* SQ_VTX_START_INST_LOC */
396
3ce0a23d
JG
397 0xc0096900,
398 0x0000022a,
8c119e9c 399 0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
3ce0a23d
JG
400 0x00000000,
401 0x00000000,
402 0x00000000,
403 0x00000000,
404 0x00000000,
405 0x00000000,
406 0x00000000,
407 0x00000000,
8c119e9c 408
3ce0a23d
JG
409 0xc0016900,
410 0x00000004,
8c119e9c
AD
411 0x00000000, /* DB_DEPTH_INFO */
412
eb544433 413 0xc0026900,
3ce0a23d 414 0x0000000a,
8c119e9c 415 0x00000000, /* DB_STENCIL_CLEAR */
8c119e9c
AD
416 0x00000000, /* DB_DEPTH_CLEAR */
417
3ce0a23d
JG
418 0xc0016900,
419 0x00000200,
8c119e9c
AD
420 0x00000000, /* DB_DEPTH_CONTROL */
421
eb544433 422 0xc0026900,
3ce0a23d 423 0x00000343,
8c119e9c 424 0x00000060, /* DB_RENDER_CONTROL */
8c119e9c
AD
425 0x00000000, /* DB_RENDER_OVERRIDE */
426
3ce0a23d
JG
427 0xc0016900,
428 0x00000351,
8c119e9c
AD
429 0x0000aa00, /* DB_ALPHA_TO_MASK */
430
43a7d2d1 431 0xc0096900,
d0623a3e
AD
432 0x00000100,
433 0x00000800, /* VGT_MAX_VTX_INDX */
434 0x00000000, /* VGT_MIN_VTX_INDX */
435 0x00000000, /* VGT_INDX_OFFSET */
d0623a3e 436 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
d0623a3e 437 0x00000000, /* SX_ALPHA_TEST_CONTROL */
8c119e9c 438 0x00000000, /* CB_BLEND_RED */
3ce0a23d
JG
439 0x00000000,
440 0x00000000,
441 0x00000000,
8c119e9c 442
43a7d2d1 443 0xc0036900,
d0623a3e
AD
444 0x0000010c,
445 0x00000000, /* DB_STENCILREFMASK */
446 0x00000000, /* DB_STENCILREFMASK_BF */
d0623a3e
AD
447 0x00000000, /* SX_ALPHA_REF */
448
3ce0a23d 449 0xc0046900,
8c119e9c 450 0x0000030c, /* CB_CLRCMP_CNTL */
3ce0a23d
JG
451 0x01000000,
452 0x00000000,
453 0x00000000,
454 0x00000000,
8c119e9c 455
3ce0a23d
JG
456 0xc0016900,
457 0x00000080,
8c119e9c
AD
458 0x00000000, /* PA_SC_WINDOW_OFFSET */
459
eb544433 460 0xc00a6900,
3ce0a23d 461 0x00000083,
8c119e9c 462 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
eb544433 463 0x00000000, /* PA_SC_CLIPRECT_0_TL */
3ce0a23d 464 0x20002000,
3ce0a23d 465 0x00000000,
3ce0a23d 466 0x20002000,
3ce0a23d 467 0x00000000,
3ce0a23d 468 0x20002000,
3ce0a23d 469 0x00000000,
3ce0a23d 470 0x20002000,
8c119e9c
AD
471 0xaaaaaaaa, /* PA_SC_EDGERULE */
472
363c6a16 473 0xc0406900,
3ce0a23d 474 0x00000094,
8c119e9c 475 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
8c119e9c 476 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
363c6a16
AD
477 0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
478 0x20002000,
3ce0a23d 479 0x80000000,
3ce0a23d 480 0x20002000,
3ce0a23d 481 0x80000000,
3ce0a23d 482 0x20002000,
3ce0a23d 483 0x80000000,
3ce0a23d 484 0x20002000,
3ce0a23d 485 0x80000000,
3ce0a23d 486 0x20002000,
3ce0a23d 487 0x80000000,
3ce0a23d 488 0x20002000,
3ce0a23d 489 0x80000000,
3ce0a23d 490 0x20002000,
3ce0a23d 491 0x80000000,
3ce0a23d 492 0x20002000,
3ce0a23d 493 0x80000000,
3ce0a23d 494 0x20002000,
3ce0a23d 495 0x80000000,
3ce0a23d 496 0x20002000,
3ce0a23d 497 0x80000000,
3ce0a23d 498 0x20002000,
3ce0a23d 499 0x80000000,
3ce0a23d 500 0x20002000,
3ce0a23d 501 0x80000000,
3ce0a23d 502 0x20002000,
3ce0a23d 503 0x80000000,
3ce0a23d 504 0x20002000,
3ce0a23d 505 0x80000000,
3ce0a23d 506 0x20002000,
363c6a16
AD
507 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
508 0x3f800000,
509 0x00000000,
510 0x3f800000,
511 0x00000000,
512 0x3f800000,
513 0x00000000,
514 0x3f800000,
515 0x00000000,
516 0x3f800000,
517 0x00000000,
518 0x3f800000,
519 0x00000000,
520 0x3f800000,
521 0x00000000,
522 0x3f800000,
523 0x00000000,
524 0x3f800000,
525 0x00000000,
526 0x3f800000,
527 0x00000000,
528 0x3f800000,
529 0x00000000,
530 0x3f800000,
531 0x00000000,
532 0x3f800000,
533 0x00000000,
534 0x3f800000,
3ce0a23d
JG
535 0x00000000,
536 0x3f800000,
3ce0a23d
JG
537 0x00000000,
538 0x3f800000,
8c119e9c 539
43a7d2d1 540 0xc0026900,
3ce0a23d 541 0x00000292,
8c119e9c 542 0x00000000, /* PA_SC_MPASS_PS_CNTL */
d0623a3e
AD
543 0x00514000, /* PA_SC_MODE_CNTL */
544
43a7d2d1 545 0xc0096900,
d0623a3e
AD
546 0x00000300,
547 0x00000000, /* PA_SC_LINE_CNTL */
548 0x00000000, /* PA_SC_AA_CONFIG */
d0623a3e 549 0x0000002d, /* PA_SU_VTX_CNTL */
8c119e9c 550 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
3ce0a23d
JG
551 0x3f800000,
552 0x3f800000,
553 0x3f800000,
d0623a3e
AD
554 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
555 0x00000000,
556
557 0xc0016900,
558 0x00000312,
559 0xffffffff, /* PA_SC_AA_MASK */
8c119e9c 560
43a7d2d1 561 0xc0066900,
3ce0a23d 562 0x0000037e,
8c119e9c 563 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
d0623a3e 564 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
8c119e9c 565 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
8c119e9c 566 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
d0623a3e 567 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
d0623a3e 568 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
8c119e9c 569
eb544433 570 0xc0046900,
3ce0a23d 571 0x000001b6,
8c119e9c 572 0x00000000, /* SPI_INPUT_Z */
8c119e9c 573 0x00000000, /* SPI_FOG_CNTL */
8c119e9c 574 0x00000000, /* SPI_FOG_FUNC_SCALE */
8c119e9c
AD
575 0x00000000, /* SPI_FOG_FUNC_BIAS */
576
3ce0a23d
JG
577 0xc0016900,
578 0x00000225,
8c119e9c
AD
579 0x00000000, /* SQ_PGM_START_FS */
580
3ce0a23d
JG
581 0xc0016900,
582 0x00000229,
8c119e9c
AD
583 0x00000000, /* SQ_PGM_RESOURCES_FS */
584
3ce0a23d
JG
585 0xc0016900,
586 0x00000237,
8c119e9c
AD
587 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
588
eb544433 589 0xc0026900,
3ce0a23d 590 0x000002a8,
8c119e9c 591 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
8c119e9c
AD
592 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
593
43a7d2d1 594 0xc0116900,
d0623a3e
AD
595 0x00000280,
596 0x00000000, /* PA_SU_POINT_SIZE */
597 0x00000000, /* PA_SU_POINT_MINMAX */
d0623a3e 598 0x00000008, /* PA_SU_LINE_CNTL */
d0623a3e 599 0x00000000, /* PA_SC_LINE_STIPPLE */
d0623a3e 600 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
8c119e9c 601 0x00000000, /* VGT_HOS_CNTL */
8c119e9c 602 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
8c119e9c 603 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
8c119e9c 604 0x00000000, /* VGT_HOS_REUSE_DEPTH */
8c119e9c 605 0x00000000, /* VGT_GROUP_PRIM_TYPE */
8c119e9c 606 0x00000000, /* VGT_GROUP_FIRST_DECR */
8c119e9c 607 0x00000000, /* VGT_GROUP_DECR */
8c119e9c 608 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
8c119e9c 609 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
8c119e9c 610 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
8c119e9c 611 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
d0623a3e
AD
612 0x00000000, /* VGT_GS_MODE */
613
3ce0a23d
JG
614 0xc0016900,
615 0x000002a1,
8c119e9c
AD
616 0x00000000, /* VGT_PRIMITIVEID_EN */
617
3ce0a23d
JG
618 0xc0016900,
619 0x000002a5,
8c119e9c
AD
620 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
621
eb544433 622 0xc0036900,
3ce0a23d 623 0x000002ac,
8c119e9c 624 0x00000000, /* VGT_STRMOUT_EN */
8c119e9c 625 0x00000000, /* VGT_REUSE_OFF */
8c119e9c
AD
626 0x00000000, /* VGT_VTX_CNT_EN */
627
3ce0a23d
JG
628 0xc0016900,
629 0x000002c8,
8c119e9c
AD
630 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
631
43a7d2d1 632 0xc0076900,
d0623a3e
AD
633 0x00000202,
634 0x00cc0000, /* CB_COLOR_CONTROL */
d0623a3e 635 0x00000210, /* DB_SHADER_CNTL */
8c119e9c 636 0x00010000, /* PA_CL_CLIP_CNTL */
d0623a3e 637 0x00000244, /* PA_SU_SC_MODE_CNTL */
d0623a3e 638 0x00000100, /* PA_CL_VTE_CNTL */
d0623a3e
AD
639 0x00000000, /* PA_CL_VS_OUT_CNTL */
640 0x00000000, /* PA_CL_NANINF_CNTL */
641
43a7d2d1 642 0xc0026900,
d0623a3e
AD
643 0x0000008e,
644 0x0000000f, /* CB_TARGET_MASK */
8c119e9c
AD
645 0x0000000f, /* CB_SHADER_MASK */
646
3ce0a23d
JG
647 0xc0016900,
648 0x000001e8,
8c119e9c
AD
649 0x00000001, /* CB_SHADER_CONTROL */
650
3ce0a23d 651 0xc0016900,
d0623a3e
AD
652 0x00000185,
653 0x00000000, /* SPI_VS_OUT_ID_0 */
8c119e9c 654
3ce0a23d 655 0xc0016900,
d0623a3e
AD
656 0x00000191,
657 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
8c119e9c 658
43a7d2d1 659 0xc0056900,
3ce0a23d 660 0x000001b1,
8c119e9c 661 0x00000000, /* SPI_VS_OUT_CONFIG */
d0623a3e 662 0x00000001, /* SPI_THREAD_GROUPING */
8c119e9c 663 0x00000001, /* SPI_PS_IN_CONTROL_0 */
8c119e9c 664 0x00000000, /* SPI_PS_IN_CONTROL_1 */
8c119e9c 665 0x00000000, /* SPI_INTERP_CONTROL_0 */
d0623a3e
AD
666
667 0xc0036e00, /* SET_SAMPLER */
668 0x00000000,
669 0x00000012,
670 0x00000000,
671 0x00000000,
3ce0a23d
JG
672};
673
674/* same for r6xx/r7xx */
675const u32 r6xx_vs[] =
676{
677 0x00000004,
678 0x81000000,
679 0x0000203c,
680 0x94000b08,
681 0x00004000,
682 0x14200b1a,
683 0x00000000,
684 0x00000000,
685 0x3c000000,
686 0x68cd1000,
687 0x00080000,
688 0x00000000,
689};
690
691const u32 r6xx_ps[] =
692{
693 0x00000002,
694 0x80800000,
695 0x00000000,
696 0x94200688,
697 0x00000010,
698 0x000d1000,
699 0xb0800000,
700 0x00000000,
701};
702
703const u32 r6xx_ps_size = ARRAY_SIZE(r6xx_ps);
704const u32 r6xx_vs_size = ARRAY_SIZE(r6xx_vs);
705const u32 r6xx_default_size = ARRAY_SIZE(r6xx_default_state);
706const u32 r7xx_default_size = ARRAY_SIZE(r7xx_default_state);