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