brintos

brintos / linux-shallow public Read only

0
0
Text · 7.4 KiB · 1dca73d Raw
320 lines · c
1/*2 * Copyright 2010 Advanced Micro Devices, Inc.3 *4 * Permission is hereby granted, free of charge, to any person obtaining a5 * copy of this software and associated documentation files (the "Software"),6 * to deal in the Software without restriction, including without limitation7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,8 * and/or sell copies of the Software, and to permit persons to whom the9 * Software is furnished to do so, subject to the following conditions:10 *11 * The above copyright notice and this permission notice (including the next12 * paragraph) shall be included in all copies or substantial portions of the13 * Software.14 *15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL18 * THE COPYRIGHT HOLDER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR19 * 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 OTHER21 * DEALINGS IN THE SOFTWARE.22 *23 * Authors:24 *     Alex Deucher <alexander.deucher@amd.com>25 */26 27#ifndef CAYMAN_BLIT_SHADERS_H28#define CAYMAN_BLIT_SHADERS_H29 30/*31 * evergreen cards need to use the 3D engine to blit data which requires32 * quite a bit of hw state setup.  Rather than pull the whole 3D driver33 * (which normally generates the 3D state) into the DRM, we opt to use34 * statically generated state tables.  The register state and shaders35 * were hand generated to support blitting functionality.  See the 3D36 * driver or documentation for descriptions of the registers and37 * shader instructions.38 */39static const u32 cayman_default_state[] = {40	0xc0066900,41	0x00000000,42	0x00000060, /* DB_RENDER_CONTROL */43	0x00000000, /* DB_COUNT_CONTROL */44	0x00000000, /* DB_DEPTH_VIEW */45	0x0000002a, /* DB_RENDER_OVERRIDE */46	0x00000000, /* DB_RENDER_OVERRIDE2 */47	0x00000000, /* DB_HTILE_DATA_BASE */48 49	0xc0026900,50	0x0000000a,51	0x00000000, /* DB_STENCIL_CLEAR */52	0x00000000, /* DB_DEPTH_CLEAR */53 54	0xc0036900,55	0x0000000f,56	0x00000000, /* DB_DEPTH_INFO */57	0x00000000, /* DB_Z_INFO */58	0x00000000, /* DB_STENCIL_INFO */59 60	0xc0016900,61	0x00000080,62	0x00000000, /* PA_SC_WINDOW_OFFSET */63 64	0xc00d6900,65	0x00000083,66	0x0000ffff, /* PA_SC_CLIPRECT_RULE */67	0x00000000, /* PA_SC_CLIPRECT_0_TL */68	0x20002000, /* PA_SC_CLIPRECT_0_BR */69	0x00000000,70	0x20002000,71	0x00000000,72	0x20002000,73	0x00000000,74	0x20002000,75	0xaaaaaaaa, /* PA_SC_EDGERULE */76	0x00000000, /* PA_SU_HARDWARE_SCREEN_OFFSET */77	0x0000000f, /* CB_TARGET_MASK */78	0x0000000f, /* CB_SHADER_MASK */79 80	0xc0226900,81	0x00000094,82	0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */83	0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */84	0x80000000,85	0x20002000,86	0x80000000,87	0x20002000,88	0x80000000,89	0x20002000,90	0x80000000,91	0x20002000,92	0x80000000,93	0x20002000,94	0x80000000,95	0x20002000,96	0x80000000,97	0x20002000,98	0x80000000,99	0x20002000,100	0x80000000,101	0x20002000,102	0x80000000,103	0x20002000,104	0x80000000,105	0x20002000,106	0x80000000,107	0x20002000,108	0x80000000,109	0x20002000,110	0x80000000,111	0x20002000,112	0x80000000,113	0x20002000,114	0x00000000, /* PA_SC_VPORT_ZMIN_0 */115	0x3f800000, /* PA_SC_VPORT_ZMAX_0 */116 117	0xc0016900,118	0x000000d4,119	0x00000000, /* SX_MISC */120 121	0xc0026900,122	0x000000d9,123	0x00000000, /* CP_RINGID */124	0x00000000, /* CP_VMID */125 126	0xc0096900,127	0x00000100,128	0x00ffffff, /* VGT_MAX_VTX_INDX */129	0x00000000, /* VGT_MIN_VTX_INDX */130	0x00000000, /* VGT_INDX_OFFSET */131	0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */132	0x00000000, /* SX_ALPHA_TEST_CONTROL */133	0x00000000, /* CB_BLEND_RED */134	0x00000000, /* CB_BLEND_GREEN */135	0x00000000, /* CB_BLEND_BLUE */136	0x00000000, /* CB_BLEND_ALPHA */137 138	0xc0016900,139	0x00000187,140	0x00000100, /* SPI_VS_OUT_ID_0 */141 142	0xc0026900,143	0x00000191,144	0x00000100, /* SPI_PS_INPUT_CNTL_0 */145	0x00000101, /* SPI_PS_INPUT_CNTL_1 */146 147	0xc0016900,148	0x000001b1,149	0x00000000, /* SPI_VS_OUT_CONFIG */150 151	0xc0106900,152	0x000001b3,153	0x20000001, /* SPI_PS_IN_CONTROL_0 */154	0x00000000, /* SPI_PS_IN_CONTROL_1 */155	0x00000000, /* SPI_INTERP_CONTROL_0 */156	0x00000000, /* SPI_INPUT_Z */157	0x00000000, /* SPI_FOG_CNTL */158	0x00100000, /* SPI_BARYC_CNTL */159	0x00000000, /* SPI_PS_IN_CONTROL_2 */160	0x00000000, /* SPI_COMPUTE_INPUT_CNTL */161	0x00000000, /* SPI_COMPUTE_NUM_THREAD_X */162	0x00000000, /* SPI_COMPUTE_NUM_THREAD_Y */163	0x00000000, /* SPI_COMPUTE_NUM_THREAD_Z */164	0x00000000, /* SPI_GPR_MGMT */165	0x00000000, /* SPI_LDS_MGMT */166	0x00000000, /* SPI_STACK_MGMT */167	0x00000000, /* SPI_WAVE_MGMT_1 */168	0x00000000, /* SPI_WAVE_MGMT_2 */169 170	0xc0016900,171	0x000001e0,172	0x00000000, /* CB_BLEND0_CONTROL */173 174	0xc00e6900,175	0x00000200,176	0x00000000, /* DB_DEPTH_CONTROL */177	0x00000000, /* DB_EQAA */178	0x00cc0010, /* CB_COLOR_CONTROL */179	0x00000210, /* DB_SHADER_CONTROL */180	0x00010000, /* PA_CL_CLIP_CNTL */181	0x00000004, /* PA_SU_SC_MODE_CNTL */182	0x00000100, /* PA_CL_VTE_CNTL */183	0x00000000, /* PA_CL_VS_OUT_CNTL */184	0x00000000, /* PA_CL_NANINF_CNTL */185	0x00000000, /* PA_SU_LINE_STIPPLE_CNTL */186	0x00000000, /* PA_SU_LINE_STIPPLE_SCALE */187	0x00000000, /* PA_SU_PRIM_FILTER_CNTL */188	0x00000000, /*  */189	0x00000000, /*  */190 191	0xc0026900,192	0x00000229,193	0x00000000, /* SQ_PGM_START_FS */194	0x00000000,195 196	0xc0016900,197	0x0000023b,198	0x00000000, /* SQ_LDS_ALLOC_PS */199 200	0xc0066900,201	0x00000240,202	0x00000000, /* SQ_ESGS_RING_ITEMSIZE */203	0x00000000,204	0x00000000,205	0x00000000,206	0x00000000,207	0x00000000,208 209	0xc0046900,210	0x00000247,211	0x00000000, /* SQ_GS_VERT_ITEMSIZE */212	0x00000000,213	0x00000000,214	0x00000000,215 216	0xc0116900,217	0x00000280,218	0x00000000, /* PA_SU_POINT_SIZE */219	0x00000000, /* PA_SU_POINT_MINMAX */220	0x00000008, /* PA_SU_LINE_CNTL */221	0x00000000, /* PA_SC_LINE_STIPPLE */222	0x00000000, /* VGT_OUTPUT_PATH_CNTL */223	0x00000000, /* VGT_HOS_CNTL */224	0x00000000,225	0x00000000,226	0x00000000,227	0x00000000,228	0x00000000,229	0x00000000,230	0x00000000,231	0x00000000,232	0x00000000,233	0x00000000,234	0x00000000, /* VGT_GS_MODE */235 236	0xc0026900,237	0x00000292,238	0x00000000, /* PA_SC_MODE_CNTL_0 */239	0x00000000, /* PA_SC_MODE_CNTL_1 */240 241	0xc0016900,242	0x000002a1,243	0x00000000, /* VGT_PRIMITIVEID_EN */244 245	0xc0016900,246	0x000002a5,247	0x00000000, /* VGT_MULTI_PRIM_IB_RESET_EN */248 249	0xc0026900,250	0x000002a8,251	0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */252	0x00000000,253 254	0xc0026900,255	0x000002ad,256	0x00000000, /* VGT_REUSE_OFF */257	0x00000000,258 259	0xc0016900,260	0x000002d5,261	0x00000000, /* VGT_SHADER_STAGES_EN */262 263	0xc0016900,264	0x000002dc,265	0x0000aa00, /* DB_ALPHA_TO_MASK */266 267	0xc0066900,268	0x000002de,269	0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */270	0x00000000,271	0x00000000,272	0x00000000,273	0x00000000,274	0x00000000,275 276	0xc0026900,277	0x000002e5,278	0x00000000, /* VGT_STRMOUT_CONFIG */279	0x00000000,280 281	0xc01b6900,282	0x000002f5,283	0x76543210, /* PA_SC_CENTROID_PRIORITY_0 */284	0xfedcba98, /* PA_SC_CENTROID_PRIORITY_1 */285	0x00000000, /* PA_SC_LINE_CNTL */286	0x00000000, /* PA_SC_AA_CONFIG */287	0x00000005, /* PA_SU_VTX_CNTL */288	0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */289	0x3f800000, /* PA_CL_GB_VERT_DISC_ADJ */290	0x3f800000, /* PA_CL_GB_HORZ_CLIP_ADJ */291	0x3f800000, /* PA_CL_GB_HORZ_DISC_ADJ */292	0x00000000, /* PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0 */293	0x00000000,294	0x00000000,295	0x00000000,296	0x00000000,297	0x00000000,298	0x00000000,299	0x00000000,300	0x00000000,301	0x00000000,302	0x00000000,303	0x00000000,304	0x00000000,305	0x00000000,306	0x00000000,307	0x00000000,308	0xffffffff, /* PA_SC_AA_MASK_X0Y0_X1Y0 */309	0xffffffff,310 311	0xc0026900,312	0x00000316,313	0x0000000e, /* VGT_VERTEX_REUSE_BLOCK_CNTL */314	0x00000010, /*  */315};316 317static const u32 cayman_default_size = ARRAY_SIZE(cayman_default_state);318 319#endif320