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