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