r600_blit_shaders.c 18 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078
  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. */
  26. #include <linux/types.h>
  27. #include <linux/kernel.h>
  28. /*
  29. * R6xx+ cards need to use the 3D engine to blit data which requires
  30. * quite a bit of hw state setup. Rather than pull the whole 3D driver
  31. * (which normally generates the 3D state) into the DRM, we opt to use
  32. * statically generated state tables. The regsiter state and shaders
  33. * were hand generated to support blitting functionality. See the 3D
  34. * driver or documentation for descriptions of the registers and
  35. * shader instructions.
  36. */
  37. const u32 r6xx_default_state[] =
  38. {
  39. 0xc0002400, /* START_3D_CMDBUF */
  40. 0x00000000,
  41. 0xc0012800, /* CONTEXT_CONTROL */
  42. 0x80000000,
  43. 0x80000000,
  44. 0xc0016800,
  45. 0x00000010,
  46. 0x00008000, /* WAIT_UNTIL */
  47. 0xc0016800,
  48. 0x00000542,
  49. 0x07000003, /* TA_CNTL_AUX */
  50. 0xc0016800,
  51. 0x000005c5,
  52. 0x00000000, /* VC_ENHANCE */
  53. 0xc0016800,
  54. 0x00000363,
  55. 0x00000000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
  56. 0xc0016800,
  57. 0x0000060c,
  58. 0x82000000, /* DB_DEBUG */
  59. 0xc0016800,
  60. 0x0000060e,
  61. 0x01020204, /* DB_WATERMARKS */
  62. 0xc0026f00,
  63. 0x00000000,
  64. 0x00000000, /* SQ_VTX_BASE_VTX_LOC */
  65. 0x00000000, /* SQ_VTX_START_INST_LOC */
  66. 0xc0096900,
  67. 0x0000022a,
  68. 0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
  69. 0x00000000,
  70. 0x00000000,
  71. 0x00000000,
  72. 0x00000000,
  73. 0x00000000,
  74. 0x00000000,
  75. 0x00000000,
  76. 0x00000000,
  77. 0xc0016900,
  78. 0x00000004,
  79. 0x00000000, /* DB_DEPTH_INFO */
  80. 0xc0026900,
  81. 0x0000000a,
  82. 0x00000000, /* DB_STENCIL_CLEAR */
  83. 0x00000000, /* DB_DEPTH_CLEAR */
  84. 0xc0026900,
  85. 0x0000010c,
  86. 0x00000000, /* DB_STENCILREFMASK */
  87. 0x00000000, /* DB_STENCILREFMASK_BF */
  88. 0xc0016900,
  89. 0x00000200,
  90. 0x00000000, /* DB_DEPTH_CONTROL */
  91. 0xc0026900,
  92. 0x00000343,
  93. 0x00000060, /* DB_RENDER_CONTROL */
  94. 0x00000040, /* DB_RENDER_OVERRIDE */
  95. 0xc0016900,
  96. 0x00000351,
  97. 0x0000aa00, /* DB_ALPHA_TO_MASK */
  98. 0xc0016900,
  99. 0x00000104,
  100. 0x00000000, /* SX_ALPHA_TEST_CONTROL */
  101. 0xc0016900,
  102. 0x0000010e,
  103. 0x00000000, /* SX_ALPHA_REF */
  104. 0xc0076900,
  105. 0x00000105,
  106. 0x00000000, /* CB_BLEND_RED */
  107. 0x00000000,
  108. 0x00000000,
  109. 0x00000000,
  110. 0x00000000, /* CB_FOG_RED */
  111. 0x00000000,
  112. 0x00000000,
  113. 0xc0046900,
  114. 0x0000030c,
  115. 0x01000000, /* CB_CLRCMP_CNTL */
  116. 0x00000000,
  117. 0x00000000,
  118. 0x00000000,
  119. 0xc0046900,
  120. 0x00000048,
  121. 0x3f800000, /* CB_CLEAR_RED */
  122. 0x00000000,
  123. 0x3f800000,
  124. 0x3f800000,
  125. 0xc0016900,
  126. 0x0000008e,
  127. 0x0000000f, /* CB_TARGET_MASK */
  128. 0xc0016900,
  129. 0x00000080,
  130. 0x00000000, /* PA_SC_WINDOW_OFFSET */
  131. 0xc00a6900,
  132. 0x00000083,
  133. 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
  134. 0x00000000, /* PA_SC_CLIPRECT_0_TL */
  135. 0x20002000,
  136. 0x00000000,
  137. 0x20002000,
  138. 0x00000000,
  139. 0x20002000,
  140. 0x00000000,
  141. 0x20002000,
  142. 0x00000000, /* PA_SC_EDGERULE */
  143. 0xc0026900,
  144. 0x00000094,
  145. 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
  146. 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
  147. 0xc0026900,
  148. 0x000000b4,
  149. 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
  150. 0x3f800000,
  151. 0xc0026900,
  152. 0x00000096,
  153. 0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
  154. 0x20002000,
  155. 0xc0026900,
  156. 0x000000b6,
  157. 0x00000000,
  158. 0x3f800000,
  159. 0xc0026900,
  160. 0x00000098,
  161. 0x80000000,
  162. 0x20002000,
  163. 0xc0026900,
  164. 0x000000b8,
  165. 0x00000000,
  166. 0x3f800000,
  167. 0xc0026900,
  168. 0x0000009a,
  169. 0x80000000,
  170. 0x20002000,
  171. 0xc0026900,
  172. 0x000000ba,
  173. 0x00000000,
  174. 0x3f800000,
  175. 0xc0026900,
  176. 0x0000009c,
  177. 0x80000000,
  178. 0x20002000,
  179. 0xc0026900,
  180. 0x000000bc,
  181. 0x00000000,
  182. 0x3f800000,
  183. 0xc0026900,
  184. 0x0000009e,
  185. 0x80000000,
  186. 0x20002000,
  187. 0xc0026900,
  188. 0x000000be,
  189. 0x00000000,
  190. 0x3f800000,
  191. 0xc0026900,
  192. 0x000000a0,
  193. 0x80000000,
  194. 0x20002000,
  195. 0xc0026900,
  196. 0x000000c0,
  197. 0x00000000,
  198. 0x3f800000,
  199. 0xc0026900,
  200. 0x000000a2,
  201. 0x80000000,
  202. 0x20002000,
  203. 0xc0026900,
  204. 0x000000c2,
  205. 0x00000000,
  206. 0x3f800000,
  207. 0xc0026900,
  208. 0x000000a4,
  209. 0x80000000,
  210. 0x20002000,
  211. 0xc0026900,
  212. 0x000000c4,
  213. 0x00000000,
  214. 0x3f800000,
  215. 0xc0026900,
  216. 0x000000a6,
  217. 0x80000000,
  218. 0x20002000,
  219. 0xc0026900,
  220. 0x000000c6,
  221. 0x00000000,
  222. 0x3f800000,
  223. 0xc0026900,
  224. 0x000000a8,
  225. 0x80000000,
  226. 0x20002000,
  227. 0xc0026900,
  228. 0x000000c8,
  229. 0x00000000,
  230. 0x3f800000,
  231. 0xc0026900,
  232. 0x000000aa,
  233. 0x80000000,
  234. 0x20002000,
  235. 0xc0026900,
  236. 0x000000ca,
  237. 0x00000000,
  238. 0x3f800000,
  239. 0xc0026900,
  240. 0x000000ac,
  241. 0x80000000,
  242. 0x20002000,
  243. 0xc0026900,
  244. 0x000000cc,
  245. 0x00000000,
  246. 0x3f800000,
  247. 0xc0026900,
  248. 0x000000ae,
  249. 0x80000000,
  250. 0x20002000,
  251. 0xc0026900,
  252. 0x000000ce,
  253. 0x00000000,
  254. 0x3f800000,
  255. 0xc0026900,
  256. 0x000000b0,
  257. 0x80000000,
  258. 0x20002000,
  259. 0xc0026900,
  260. 0x000000d0,
  261. 0x00000000,
  262. 0x3f800000,
  263. 0xc0026900,
  264. 0x000000b2,
  265. 0x80000000,
  266. 0x20002000,
  267. 0xc0026900,
  268. 0x000000d2,
  269. 0x00000000,
  270. 0x3f800000,
  271. 0xc0016900,
  272. 0x00000293,
  273. 0x00004010, /* PA_SC_MODE_CNTL */
  274. 0xc0026900,
  275. 0x00000300,
  276. 0x00000000, /* PA_SC_LINE_CNTL */
  277. 0x00000000, /* PA_SC_AA_CONFIG */
  278. 0xc0016900,
  279. 0x00000312,
  280. 0xffffffff, /* PA_SC_AA_MASK */
  281. 0xc0026900,
  282. 0x00000307,
  283. 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
  284. 0x00000000,
  285. 0xc0016900,
  286. 0x00000283,
  287. 0x00000000, /* PA_SC_LINE_STIPPLE */
  288. 0xc0016900,
  289. 0x00000292,
  290. 0x00000000, /* PA_SC_MPASS_PS_CNTL */
  291. 0xc0066900,
  292. 0x0000010f,
  293. 0x00000000, /* PA_CL_VPORT_0_XSCALE */
  294. 0x00000000,
  295. 0x00000000,
  296. 0x00000000,
  297. 0x00000000,
  298. 0x00000000,
  299. 0xc0026900,
  300. 0x00000207,
  301. 0x00000000, /* PA_CL_VS_OUT_CNTL */
  302. 0x00000000, /* PA_CL_NANINF_CNTL */
  303. 0xc0046900,
  304. 0x00000303,
  305. 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
  306. 0x3f800000,
  307. 0x3f800000,
  308. 0x3f800000,
  309. 0xc0026900,
  310. 0x00000280,
  311. 0x00000000, /* PA_SU_POINT_SIZE */
  312. 0x00000000, /* PA_SU_POINT_MINMAX */
  313. 0xc0016900,
  314. 0x0000037e,
  315. 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
  316. 0xc0016900,
  317. 0x00000382,
  318. 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
  319. 0xc0016900,
  320. 0x00000380,
  321. 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
  322. 0xc0016900,
  323. 0x00000383,
  324. 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
  325. 0xc0016900,
  326. 0x00000381,
  327. 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
  328. 0xc0016900,
  329. 0x00000282,
  330. 0x00000008, /* PA_SU_LINE_CNTL */
  331. 0xc0016900,
  332. 0x00000302,
  333. 0x0000002d, /* PA_SU_VTX_CNTL */
  334. 0xc0016900,
  335. 0x0000037f,
  336. 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
  337. 0xc0016900,
  338. 0x000001b2,
  339. 0x00000000, /* SPI_THREAD_GROUPING */
  340. 0xc0046900,
  341. 0x000001b6,
  342. 0x00000000, /* SPI_INPUT_Z */
  343. 0x00000000, /* SPI_FOG_CNTL */
  344. 0x00000000, /* SPI_FOG_FUNC_SCALE */
  345. 0x00000000, /* SPI_FOG_FUNC_BIAS */
  346. 0xc0016900,
  347. 0x00000225,
  348. 0x00000000, /* SQ_PGM_START_FS */
  349. 0xc0016900,
  350. 0x00000229,
  351. 0x00000000, /* SQ_PGM_RESOURCES_FS */
  352. 0xc0016900,
  353. 0x00000237,
  354. 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
  355. 0xc0036900,
  356. 0x00000100,
  357. 0x00000800, /* VGT_MAX_VTX_INDX */
  358. 0x00000000, /* VGT_MIN_VTX_INDX */
  359. 0x00000000, /* VGT_INDX_OFFSET */
  360. 0xc0026900,
  361. 0x000002a8,
  362. 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
  363. 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
  364. 0xc0016900,
  365. 0x00000103,
  366. 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
  367. 0xc0016900,
  368. 0x00000284,
  369. 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
  370. 0xc0016900,
  371. 0x00000290,
  372. 0x00000000, /* VGT_GS_MODE */
  373. 0xc0016900,
  374. 0x00000285,
  375. 0x00000000, /* VGT_HOS_CNTL */
  376. 0xc00a6900,
  377. 0x00000286,
  378. 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
  379. 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
  380. 0x00000000, /* VGT_HOS_REUSE_DEPTH */
  381. 0x00000000, /* VGT_GROUP_PRIM_TYPE */
  382. 0x00000000, /* VGT_GROUP_FIRST_DECR */
  383. 0x00000000, /* VGT_GROUP_DECR */
  384. 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
  385. 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
  386. 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
  387. 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
  388. 0xc0016900,
  389. 0x000002a1,
  390. 0x00000000, /* VGT_PRIMITIVEID_EN */
  391. 0xc0016900,
  392. 0x000002a5,
  393. 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
  394. 0xc0036900,
  395. 0x000002ac,
  396. 0x00000000, /* VGT_STRMOUT_EN */
  397. 0x00000000, /* VGT_REUSE_OFF */
  398. 0x00000000, /* VGT_VTX_CNT_EN */
  399. 0xc0016900,
  400. 0x000002c8,
  401. 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
  402. 0xc0016900,
  403. 0x00000206,
  404. 0x00000100, /* PA_CL_VTE_CNTL */
  405. 0xc0016900,
  406. 0x00000204,
  407. 0x00010000, /* PA_CL_CLIP_CNTL */
  408. 0xc0036e00, /* SET_SAMPLER */
  409. 0x00000000,
  410. 0x00000012,
  411. 0x00000000,
  412. 0x00000000,
  413. 0xc0016900,
  414. 0x0000008f,
  415. 0x0000000f, /* CB_SHADER_MASK */
  416. 0xc0016900,
  417. 0x000001e8,
  418. 0x00000001, /* CB_SHADER_CONTROL */
  419. 0xc0016900,
  420. 0x00000202,
  421. 0x00cc0000, /* CB_COLOR_CONTROL */
  422. 0xc0016900,
  423. 0x00000205,
  424. 0x00000244, /* PA_SU_SC_MODE_CNTL */
  425. 0xc0016900,
  426. 0x00000203,
  427. 0x00000210, /* DB_SHADER_CNTL */
  428. 0xc0016900,
  429. 0x000001b1,
  430. 0x00000000, /* SPI_VS_OUT_CONFIG */
  431. 0xc0016900,
  432. 0x00000185,
  433. 0x00000000, /* SPI_VS_OUT_ID_0 */
  434. 0xc0026900,
  435. 0x000001b3,
  436. 0x00000001, /* SPI_PS_IN_CONTROL_0 */
  437. 0x00000000, /* SPI_PS_IN_CONTROL_1 */
  438. 0xc0016900,
  439. 0x00000191,
  440. 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
  441. 0xc0016900,
  442. 0x000001b5,
  443. 0x00000000, /* SPI_INTERP_CONTROL_0 */
  444. };
  445. const u32 r7xx_default_state[] =
  446. {
  447. 0xc0012800, /* CONTEXT_CONTROL */
  448. 0x80000000,
  449. 0x80000000,
  450. 0xc0016800,
  451. 0x00000010,
  452. 0x00008000, /* WAIT_UNTIL */
  453. 0xc0016800,
  454. 0x00000542,
  455. 0x07000002, /* TA_CNTL_AUX */
  456. 0xc0016800,
  457. 0x000005c5,
  458. 0x00000000, /* VC_ENHANCE */
  459. 0xc0016800,
  460. 0x00000363,
  461. 0x00004000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
  462. 0xc0016800,
  463. 0x0000060c,
  464. 0x00000000, /* DB_DEBUG */
  465. 0xc0016800,
  466. 0x0000060e,
  467. 0x00420204, /* DB_WATERMARKS */
  468. 0xc0026f00,
  469. 0x00000000,
  470. 0x00000000, /* SQ_VTX_BASE_VTX_LOC */
  471. 0x00000000, /* SQ_VTX_START_INST_LOC */
  472. 0xc0096900,
  473. 0x0000022a,
  474. 0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
  475. 0x00000000,
  476. 0x00000000,
  477. 0x00000000,
  478. 0x00000000,
  479. 0x00000000,
  480. 0x00000000,
  481. 0x00000000,
  482. 0x00000000,
  483. 0xc0016900,
  484. 0x00000004,
  485. 0x00000000, /* DB_DEPTH_INFO */
  486. 0xc0026900,
  487. 0x0000000a,
  488. 0x00000000, /* DB_STENCIL_CLEAR */
  489. 0x00000000, /* DB_DEPTH_CLEAR */
  490. 0xc0026900,
  491. 0x0000010c,
  492. 0x00000000, /* DB_STENCILREFMASK */
  493. 0x00000000, /* DB_STENCILREFMASK_BF */
  494. 0xc0016900,
  495. 0x00000200,
  496. 0x00000000, /* DB_DEPTH_CONTROL */
  497. 0xc0026900,
  498. 0x00000343,
  499. 0x00000060, /* DB_RENDER_CONTROL */
  500. 0x00000000, /* DB_RENDER_OVERRIDE */
  501. 0xc0016900,
  502. 0x00000351,
  503. 0x0000aa00, /* DB_ALPHA_TO_MASK */
  504. 0xc0016900,
  505. 0x00000104,
  506. 0x00000000, /* SX_ALPHA_TEST_CONTROL */
  507. 0xc0016900,
  508. 0x0000010e,
  509. 0x00000000, /* SX_ALPHA_REF */
  510. 0xc0046900,
  511. 0x00000105,
  512. 0x00000000, /* CB_BLEND_RED */
  513. 0x00000000,
  514. 0x00000000,
  515. 0x00000000,
  516. 0xc0046900,
  517. 0x0000030c, /* CB_CLRCMP_CNTL */
  518. 0x01000000,
  519. 0x00000000,
  520. 0x00000000,
  521. 0x00000000,
  522. 0xc0016900,
  523. 0x0000008e,
  524. 0x0000000f, /* CB_TARGET_MASK */
  525. 0xc0016900,
  526. 0x00000080,
  527. 0x00000000, /* PA_SC_WINDOW_OFFSET */
  528. 0xc00a6900,
  529. 0x00000083,
  530. 0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
  531. 0x00000000, /* PA_SC_CLIPRECT_0_TL */
  532. 0x20002000,
  533. 0x00000000,
  534. 0x20002000,
  535. 0x00000000,
  536. 0x20002000,
  537. 0x00000000,
  538. 0x20002000,
  539. 0xaaaaaaaa, /* PA_SC_EDGERULE */
  540. 0xc0026900,
  541. 0x00000094,
  542. 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
  543. 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
  544. 0xc0026900,
  545. 0x000000b4,
  546. 0x00000000, /* PA_SC_VPORT_ZMIN_0 */
  547. 0x3f800000,
  548. 0xc0026900,
  549. 0x00000096,
  550. 0x80000000,
  551. 0x20002000,
  552. 0xc0026900,
  553. 0x000000b6,
  554. 0x00000000,
  555. 0x3f800000,
  556. 0xc0026900,
  557. 0x00000098,
  558. 0x80000000,
  559. 0x20002000,
  560. 0xc0026900,
  561. 0x000000b8,
  562. 0x00000000,
  563. 0x3f800000,
  564. 0xc0016900,
  565. 0x0000009a,
  566. 0x80000000,
  567. 0x20002000,
  568. 0xc0026900,
  569. 0x000000ba,
  570. 0x00000000,
  571. 0x3f800000,
  572. 0xc0026900,
  573. 0x0000009c,
  574. 0x80000000,
  575. 0x20002000,
  576. 0xc0026900,
  577. 0x000000bc,
  578. 0x00000000,
  579. 0x3f800000,
  580. 0xc0026900,
  581. 0x0000009e,
  582. 0x80000000,
  583. 0x20002000,
  584. 0xc0026900,
  585. 0x000000be,
  586. 0x00000000,
  587. 0x3f800000,
  588. 0xc0026900,
  589. 0x000000a0,
  590. 0x80000000,
  591. 0x20002000,
  592. 0xc0026900,
  593. 0x000000c0,
  594. 0x00000000,
  595. 0x3f800000,
  596. 0xc0026900,
  597. 0x000000a2,
  598. 0x80000000,
  599. 0x20002000,
  600. 0xc0026900,
  601. 0x000000c2,
  602. 0x00000000,
  603. 0x3f800000,
  604. 0xc0026900,
  605. 0x000000a4,
  606. 0x80000000,
  607. 0x20002000,
  608. 0xc0026900,
  609. 0x000000c4,
  610. 0x00000000,
  611. 0x3f800000,
  612. 0xc0026900,
  613. 0x000000a6,
  614. 0x80000000,
  615. 0x20002000,
  616. 0xc0026900,
  617. 0x000000c6,
  618. 0x00000000,
  619. 0x3f800000,
  620. 0xc0026900,
  621. 0x000000a8,
  622. 0x80000000,
  623. 0x20002000,
  624. 0xc0026900,
  625. 0x000000c8,
  626. 0x00000000,
  627. 0x3f800000,
  628. 0xc0026900,
  629. 0x000000aa,
  630. 0x80000000,
  631. 0x20002000,
  632. 0xc0026900,
  633. 0x000000ca,
  634. 0x00000000,
  635. 0x3f800000,
  636. 0xc0026900,
  637. 0x000000ac,
  638. 0x80000000,
  639. 0x20002000,
  640. 0xc0026900,
  641. 0x000000cc,
  642. 0x00000000,
  643. 0x3f800000,
  644. 0xc0026900,
  645. 0x000000ae,
  646. 0x80000000,
  647. 0x20002000,
  648. 0xc0026900,
  649. 0x000000ce,
  650. 0x00000000,
  651. 0x3f800000,
  652. 0xc0026900,
  653. 0x000000b0,
  654. 0x80000000,
  655. 0x20002000,
  656. 0xc0026900,
  657. 0x000000d0,
  658. 0x00000000,
  659. 0x3f800000,
  660. 0xc0026900,
  661. 0x000000b2,
  662. 0x80000000,
  663. 0x20002000,
  664. 0xc0026900,
  665. 0x000000d2,
  666. 0x00000000,
  667. 0x3f800000,
  668. 0xc0016900,
  669. 0x00000293,
  670. 0x00514000, /* PA_SC_MODE_CNTL */
  671. 0xc0026900,
  672. 0x00000300,
  673. 0x00000000, /* PA_SC_LINE_CNTL */
  674. 0x00000000, /* PA_SC_AA_CONFIG */
  675. 0xc0016900,
  676. 0x00000312,
  677. 0xffffffff, /* PA_SC_AA_MASK */
  678. 0xc0026900,
  679. 0x00000307,
  680. 0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
  681. 0x00000000,
  682. 0xc0016900,
  683. 0x00000283,
  684. 0x00000000, /* PA_SC_LINE_STIPPLE */
  685. 0xc0016900,
  686. 0x00000292,
  687. 0x00000000, /* PA_SC_MPASS_PS_CNTL */
  688. 0xc0066900,
  689. 0x0000010f,
  690. 0x00000000, /* PA_CL_VPORT_0_XSCALE */
  691. 0x00000000,
  692. 0x00000000,
  693. 0x00000000,
  694. 0x00000000,
  695. 0x00000000,
  696. 0xc0026900,
  697. 0x00000207,
  698. 0x00000000, /* PA_CL_VS_OUT_CNTL */
  699. 0x00000000, /* PA_CL_NANINF_CNTL */
  700. 0xc0046900,
  701. 0x00000303,
  702. 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
  703. 0x3f800000,
  704. 0x3f800000,
  705. 0x3f800000,
  706. 0xc0026900,
  707. 0x00000280,
  708. 0x00000000, /* PA_SU_POINT_SIZE */
  709. 0x00000000, /* PA_SU_POINT_MINMAX */
  710. 0xc0016900,
  711. 0x0000037e,
  712. 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
  713. 0xc0016900,
  714. 0x00000382,
  715. 0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
  716. 0xc0016900,
  717. 0x00000380,
  718. 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
  719. 0xc0016900,
  720. 0x00000383,
  721. 0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
  722. 0xc0016900,
  723. 0x00000381,
  724. 0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
  725. 0xc0016900,
  726. 0x00000282,
  727. 0x00000008, /* PA_SU_LINE_CNTL */
  728. 0xc0016900,
  729. 0x00000302,
  730. 0x0000002d, /* PA_SU_VTX_CNTL */
  731. 0xc0016900,
  732. 0x0000037f,
  733. 0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
  734. 0xc0016900,
  735. 0x000001b2,
  736. 0x00000001, /* SPI_THREAD_GROUPING */
  737. 0xc0046900,
  738. 0x000001b6,
  739. 0x00000000, /* SPI_INPUT_Z */
  740. 0x00000000, /* SPI_FOG_CNTL */
  741. 0x00000000, /* SPI_FOG_FUNC_SCALE */
  742. 0x00000000, /* SPI_FOG_FUNC_BIAS */
  743. 0xc0016900,
  744. 0x00000225,
  745. 0x00000000, /* SQ_PGM_START_FS */
  746. 0xc0016900,
  747. 0x00000229,
  748. 0x00000000, /* SQ_PGM_RESOURCES_FS */
  749. 0xc0016900,
  750. 0x00000237,
  751. 0x00000000, /* SQ_PGM_CF_OFFSET_FS */
  752. 0xc0036900,
  753. 0x00000100,
  754. 0x00000800, /* VGT_MAX_VTX_INDX */
  755. 0x00000000, /* VGT_MIN_VTX_INDX */
  756. 0x00000000, /* VGT_INDX_OFFSET */
  757. 0xc0026900,
  758. 0x000002a8,
  759. 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
  760. 0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
  761. 0xc0016900,
  762. 0x00000103,
  763. 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
  764. 0xc0016900,
  765. 0x00000284,
  766. 0x00000000, /* VGT_OUTPUT_PATH_CNTL */
  767. 0xc0016900,
  768. 0x00000290,
  769. 0x00000000, /* VGT_GS_MODE */
  770. 0xc00b6900,
  771. 0x00000285,
  772. 0x00000000, /* VGT_HOS_CNTL */
  773. 0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
  774. 0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
  775. 0x00000000, /* VGT_HOS_REUSE_DEPTH */
  776. 0x00000000, /* VGT_GROUP_PRIM_TYPE */
  777. 0x00000000, /* VGT_GROUP_FIRST_DECR */
  778. 0x00000000, /* VGT_GROUP_DECR */
  779. 0x00000000, /* VGT_GROUP_VECT_0_CNTL */
  780. 0x00000000, /* VGT_GROUP_VECT_1_CNTL */
  781. 0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
  782. 0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
  783. 0xc0016900,
  784. 0x000002a1,
  785. 0x00000000, /* VGT_PRIMITIVEID_EN */
  786. 0xc0016900,
  787. 0x000002a5,
  788. 0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
  789. 0xc0036900,
  790. 0x000002ac,
  791. 0x00000000, /* VGT_STRMOUT_EN */
  792. 0x00000000, /* VGT_REUSE_OFF */
  793. 0x00000000, /* VGT_VTX_CNT_EN */
  794. 0xc0016900,
  795. 0x000002c8,
  796. 0x00000000, /* VGT_STRMOUT_BUFFER_EN */
  797. 0xc0016900,
  798. 0x00000206,
  799. 0x00000100, /* PA_CL_VTE_CNTL */
  800. 0xc0016900,
  801. 0x00000204,
  802. 0x00010000, /* PA_CL_CLIP_CNTL */
  803. 0xc0036e00, /* SET_SAMPLER */
  804. 0x00000000,
  805. 0x00000012,
  806. 0x00000000,
  807. 0x00000000,
  808. 0xc0016900,
  809. 0x0000008f,
  810. 0x0000000f, /* CB_SHADER_MASK */
  811. 0xc0016900,
  812. 0x000001e8,
  813. 0x00000001, /* CB_SHADER_CONTROL */
  814. 0xc0016900,
  815. 0x00000202,
  816. 0x00cc0000, /* CB_COLOR_CONTROL */
  817. 0xc0016900,
  818. 0x00000205,
  819. 0x00000244, /* PA_SU_SC_MODE_CNTL */
  820. 0xc0016900,
  821. 0x00000203,
  822. 0x00000210, /* DB_SHADER_CNTL */
  823. 0xc0016900,
  824. 0x000001b1,
  825. 0x00000000, /* SPI_VS_OUT_CONFIG */
  826. 0xc0016900,
  827. 0x00000185,
  828. 0x00000000, /* SPI_VS_OUT_ID_0 */
  829. 0xc0026900,
  830. 0x000001b3,
  831. 0x00000001, /* SPI_PS_IN_CONTROL_0 */
  832. 0x00000000, /* SPI_PS_IN_CONTROL_1 */
  833. 0xc0016900,
  834. 0x00000191,
  835. 0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
  836. 0xc0016900,
  837. 0x000001b5,
  838. 0x00000000, /* SPI_INTERP_CONTROL_0 */
  839. };
  840. /* same for r6xx/r7xx */
  841. const u32 r6xx_vs[] =
  842. {
  843. 0x00000004,
  844. 0x81000000,
  845. 0x0000203c,
  846. 0x94000b08,
  847. 0x00004000,
  848. 0x14200b1a,
  849. 0x00000000,
  850. 0x00000000,
  851. 0x3c000000,
  852. 0x68cd1000,
  853. 0x00080000,
  854. 0x00000000,
  855. };
  856. const u32 r6xx_ps[] =
  857. {
  858. 0x00000002,
  859. 0x80800000,
  860. 0x00000000,
  861. 0x94200688,
  862. 0x00000010,
  863. 0x000d1000,
  864. 0xb0800000,
  865. 0x00000000,
  866. };
  867. const u32 r6xx_ps_size = ARRAY_SIZE(r6xx_ps);
  868. const u32 r6xx_vs_size = ARRAY_SIZE(r6xx_vs);
  869. const u32 r6xx_default_size = ARRAY_SIZE(r6xx_default_state);
  870. const u32 r7xx_default_size = ARRAY_SIZE(r7xx_default_state);