Rev 1430 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1430 | Rev 1963 | ||
---|---|---|---|
1 | /* |
1 | /* |
2 | * Copyright 2005 Nicolai Haehnle et al. |
2 | * Copyright 2005 Nicolai Haehnle et al. |
3 | * Copyright 2008 Advanced Micro Devices, Inc. |
3 | * Copyright 2008 Advanced Micro Devices, Inc. |
4 | * Copyright 2009 Jerome Glisse. |
4 | * Copyright 2009 Jerome Glisse. |
5 | * |
5 | * |
6 | * Permission is hereby granted, free of charge, to any person obtaining a |
6 | * Permission is hereby granted, free of charge, to any person obtaining a |
7 | * copy of this software and associated documentation files (the "Software"), |
7 | * copy of this software and associated documentation files (the "Software"), |
8 | * to deal in the Software without restriction, including without limitation |
8 | * to deal in the Software without restriction, including without limitation |
9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
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 |
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: |
11 | * Software is furnished to do so, subject to the following conditions: |
12 | * |
12 | * |
13 | * The above copyright notice and this permission notice shall be included in |
13 | * The above copyright notice and this permission notice shall be included in |
14 | * all copies or substantial portions of the Software. |
14 | * all copies or substantial portions of the Software. |
15 | * |
15 | * |
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
19 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR |
19 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR |
20 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
20 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
21 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
21 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
22 | * OTHER DEALINGS IN THE SOFTWARE. |
22 | * OTHER DEALINGS IN THE SOFTWARE. |
23 | * |
23 | * |
24 | * Authors: Nicolai Haehnle |
24 | * Authors: Nicolai Haehnle |
25 | * Jerome Glisse |
25 | * Jerome Glisse |
26 | */ |
26 | */ |
27 | #ifndef _R300_REG_H_ |
27 | #ifndef _R300_REG_H_ |
28 | #define _R300_REG_H_ |
28 | #define _R300_REG_H_ |
29 | 29 | ||
30 | #define R300_SURF_TILE_MACRO (1<<16) |
30 | #define R300_SURF_TILE_MACRO (1<<16) |
31 | #define R300_SURF_TILE_MICRO (2<<16) |
31 | #define R300_SURF_TILE_MICRO (2<<16) |
32 | #define R300_SURF_TILE_BOTH (3<<16) |
32 | #define R300_SURF_TILE_BOTH (3<<16) |
33 | 33 | ||
34 | 34 | ||
35 | #define R300_MC_INIT_MISC_LAT_TIMER 0x180 |
35 | #define R300_MC_INIT_MISC_LAT_TIMER 0x180 |
36 | # define R300_MC_MISC__MC_CPR_INIT_LAT_SHIFT 0 |
36 | # define R300_MC_MISC__MC_CPR_INIT_LAT_SHIFT 0 |
37 | # define R300_MC_MISC__MC_VF_INIT_LAT_SHIFT 4 |
37 | # define R300_MC_MISC__MC_VF_INIT_LAT_SHIFT 4 |
38 | # define R300_MC_MISC__MC_DISP0R_INIT_LAT_SHIFT 8 |
38 | # define R300_MC_MISC__MC_DISP0R_INIT_LAT_SHIFT 8 |
39 | # define R300_MC_MISC__MC_DISP1R_INIT_LAT_SHIFT 12 |
39 | # define R300_MC_MISC__MC_DISP1R_INIT_LAT_SHIFT 12 |
40 | # define R300_MC_MISC__MC_FIXED_INIT_LAT_SHIFT 16 |
40 | # define R300_MC_MISC__MC_FIXED_INIT_LAT_SHIFT 16 |
41 | # define R300_MC_MISC__MC_E2R_INIT_LAT_SHIFT 20 |
41 | # define R300_MC_MISC__MC_E2R_INIT_LAT_SHIFT 20 |
42 | # define R300_MC_MISC__MC_SAME_PAGE_PRIO_SHIFT 24 |
42 | # define R300_MC_MISC__MC_SAME_PAGE_PRIO_SHIFT 24 |
43 | # define R300_MC_MISC__MC_GLOBW_INIT_LAT_SHIFT 28 |
43 | # define R300_MC_MISC__MC_GLOBW_INIT_LAT_SHIFT 28 |
44 | 44 | ||
45 | #define R300_MC_INIT_GFX_LAT_TIMER 0x154 |
45 | #define R300_MC_INIT_GFX_LAT_TIMER 0x154 |
46 | # define R300_MC_MISC__MC_G3D0R_INIT_LAT_SHIFT 0 |
46 | # define R300_MC_MISC__MC_G3D0R_INIT_LAT_SHIFT 0 |
47 | # define R300_MC_MISC__MC_G3D1R_INIT_LAT_SHIFT 4 |
47 | # define R300_MC_MISC__MC_G3D1R_INIT_LAT_SHIFT 4 |
48 | # define R300_MC_MISC__MC_G3D2R_INIT_LAT_SHIFT 8 |
48 | # define R300_MC_MISC__MC_G3D2R_INIT_LAT_SHIFT 8 |
49 | # define R300_MC_MISC__MC_G3D3R_INIT_LAT_SHIFT 12 |
49 | # define R300_MC_MISC__MC_G3D3R_INIT_LAT_SHIFT 12 |
50 | # define R300_MC_MISC__MC_TX0R_INIT_LAT_SHIFT 16 |
50 | # define R300_MC_MISC__MC_TX0R_INIT_LAT_SHIFT 16 |
51 | # define R300_MC_MISC__MC_TX1R_INIT_LAT_SHIFT 20 |
51 | # define R300_MC_MISC__MC_TX1R_INIT_LAT_SHIFT 20 |
52 | # define R300_MC_MISC__MC_GLOBR_INIT_LAT_SHIFT 24 |
52 | # define R300_MC_MISC__MC_GLOBR_INIT_LAT_SHIFT 24 |
53 | # define R300_MC_MISC__MC_GLOBW_FULL_LAT_SHIFT 28 |
53 | # define R300_MC_MISC__MC_GLOBW_FULL_LAT_SHIFT 28 |
54 | 54 | ||
55 | /* |
55 | /* |
56 | * This file contains registers and constants for the R300. They have been |
56 | * This file contains registers and constants for the R300. They have been |
57 | * found mostly by examining command buffers captured using glxtest, as well |
57 | * found mostly by examining command buffers captured using glxtest, as well |
58 | * as by extrapolating some known registers and constants from the R200. |
58 | * as by extrapolating some known registers and constants from the R200. |
59 | * I am fairly certain that they are correct unless stated otherwise |
59 | * I am fairly certain that they are correct unless stated otherwise |
60 | * in comments. |
60 | * in comments. |
61 | */ |
61 | */ |
62 | 62 | ||
63 | #define R300_SE_VPORT_XSCALE 0x1D98 |
63 | #define R300_SE_VPORT_XSCALE 0x1D98 |
64 | #define R300_SE_VPORT_XOFFSET 0x1D9C |
64 | #define R300_SE_VPORT_XOFFSET 0x1D9C |
65 | #define R300_SE_VPORT_YSCALE 0x1DA0 |
65 | #define R300_SE_VPORT_YSCALE 0x1DA0 |
66 | #define R300_SE_VPORT_YOFFSET 0x1DA4 |
66 | #define R300_SE_VPORT_YOFFSET 0x1DA4 |
67 | #define R300_SE_VPORT_ZSCALE 0x1DA8 |
67 | #define R300_SE_VPORT_ZSCALE 0x1DA8 |
68 | #define R300_SE_VPORT_ZOFFSET 0x1DAC |
68 | #define R300_SE_VPORT_ZOFFSET 0x1DAC |
69 | 69 | ||
70 | 70 | ||
71 | /* |
71 | /* |
72 | * Vertex Array Processing (VAP) Control |
72 | * Vertex Array Processing (VAP) Control |
73 | * Stolen from r200 code from Christoph Brill (It's a guess!) |
73 | * Stolen from r200 code from Christoph Brill (It's a guess!) |
74 | */ |
74 | */ |
75 | #define R300_VAP_CNTL 0x2080 |
75 | #define R300_VAP_CNTL 0x2080 |
76 | 76 | ||
77 | /* This register is written directly and also starts data section |
77 | /* This register is written directly and also starts data section |
78 | * in many 3d CP_PACKET3's |
78 | * in many 3d CP_PACKET3's |
79 | */ |
79 | */ |
80 | #define R300_VAP_VF_CNTL 0x2084 |
80 | #define R300_VAP_VF_CNTL 0x2084 |
81 | # define R300_VAP_VF_CNTL__PRIM_TYPE__SHIFT 0 |
81 | # define R300_VAP_VF_CNTL__PRIM_TYPE__SHIFT 0 |
82 | # define R300_VAP_VF_CNTL__PRIM_NONE (0<<0) |
82 | # define R300_VAP_VF_CNTL__PRIM_NONE (0<<0) |
83 | # define R300_VAP_VF_CNTL__PRIM_POINTS (1<<0) |
83 | # define R300_VAP_VF_CNTL__PRIM_POINTS (1<<0) |
84 | # define R300_VAP_VF_CNTL__PRIM_LINES (2<<0) |
84 | # define R300_VAP_VF_CNTL__PRIM_LINES (2<<0) |
85 | # define R300_VAP_VF_CNTL__PRIM_LINE_STRIP (3<<0) |
85 | # define R300_VAP_VF_CNTL__PRIM_LINE_STRIP (3<<0) |
86 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLES (4<<0) |
86 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLES (4<<0) |
87 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN (5<<0) |
87 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN (5<<0) |
88 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP (6<<0) |
88 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP (6<<0) |
89 | # define R300_VAP_VF_CNTL__PRIM_LINE_LOOP (12<<0) |
89 | # define R300_VAP_VF_CNTL__PRIM_LINE_LOOP (12<<0) |
90 | # define R300_VAP_VF_CNTL__PRIM_QUADS (13<<0) |
90 | # define R300_VAP_VF_CNTL__PRIM_QUADS (13<<0) |
91 | # define R300_VAP_VF_CNTL__PRIM_QUAD_STRIP (14<<0) |
91 | # define R300_VAP_VF_CNTL__PRIM_QUAD_STRIP (14<<0) |
92 | # define R300_VAP_VF_CNTL__PRIM_POLYGON (15<<0) |
92 | # define R300_VAP_VF_CNTL__PRIM_POLYGON (15<<0) |
93 | 93 | ||
94 | # define R300_VAP_VF_CNTL__PRIM_WALK__SHIFT 4 |
94 | # define R300_VAP_VF_CNTL__PRIM_WALK__SHIFT 4 |
95 | /* State based - direct writes to registers trigger vertex |
95 | /* State based - direct writes to registers trigger vertex |
96 | generation */ |
96 | generation */ |
97 | # define R300_VAP_VF_CNTL__PRIM_WALK_STATE_BASED (0<<4) |
97 | # define R300_VAP_VF_CNTL__PRIM_WALK_STATE_BASED (0<<4) |
98 | # define R300_VAP_VF_CNTL__PRIM_WALK_INDICES (1<<4) |
98 | # define R300_VAP_VF_CNTL__PRIM_WALK_INDICES (1<<4) |
99 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_LIST (2<<4) |
99 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_LIST (2<<4) |
100 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_EMBEDDED (3<<4) |
100 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_EMBEDDED (3<<4) |
101 | 101 | ||
102 | /* I don't think I saw these three used.. */ |
102 | /* I don't think I saw these three used.. */ |
103 | # define R300_VAP_VF_CNTL__COLOR_ORDER__SHIFT 6 |
103 | # define R300_VAP_VF_CNTL__COLOR_ORDER__SHIFT 6 |
104 | # define R300_VAP_VF_CNTL__TCL_OUTPUT_CTL_ENA__SHIFT 9 |
104 | # define R300_VAP_VF_CNTL__TCL_OUTPUT_CTL_ENA__SHIFT 9 |
105 | # define R300_VAP_VF_CNTL__PROG_STREAM_ENA__SHIFT 10 |
105 | # define R300_VAP_VF_CNTL__PROG_STREAM_ENA__SHIFT 10 |
106 | 106 | ||
107 | /* index size - when not set the indices are assumed to be 16 bit */ |
107 | /* index size - when not set the indices are assumed to be 16 bit */ |
108 | # define R300_VAP_VF_CNTL__INDEX_SIZE_32bit (1<<11) |
108 | # define R300_VAP_VF_CNTL__INDEX_SIZE_32bit (1<<11) |
109 | /* number of vertices */ |
109 | /* number of vertices */ |
110 | # define R300_VAP_VF_CNTL__NUM_VERTICES__SHIFT 16 |
110 | # define R300_VAP_VF_CNTL__NUM_VERTICES__SHIFT 16 |
111 | 111 | ||
112 | /* BEGIN: Wild guesses */ |
112 | /* BEGIN: Wild guesses */ |
113 | #define R300_VAP_OUTPUT_VTX_FMT_0 0x2090 |
113 | #define R300_VAP_OUTPUT_VTX_FMT_0 0x2090 |
114 | # define R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT (1<<0) |
114 | # define R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT (1<<0) |
115 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT (1<<1) |
115 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT (1<<1) |
116 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT (1<<2) /* GUESS */ |
116 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT (1<<2) /* GUESS */ |
117 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT (1<<3) /* GUESS */ |
117 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT (1<<3) /* GUESS */ |
118 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_3_PRESENT (1<<4) /* GUESS */ |
118 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_3_PRESENT (1<<4) /* GUESS */ |
119 | # define R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT (1<<16) /* GUESS */ |
119 | # define R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT (1<<16) /* GUESS */ |
120 | 120 | ||
121 | #define R300_VAP_OUTPUT_VTX_FMT_1 0x2094 |
121 | #define R300_VAP_OUTPUT_VTX_FMT_1 0x2094 |
122 | /* each of the following is 3 bits wide, specifies number |
122 | /* each of the following is 3 bits wide, specifies number |
123 | of components */ |
123 | of components */ |
124 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_0_COMP_CNT_SHIFT 0 |
124 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_0_COMP_CNT_SHIFT 0 |
125 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_1_COMP_CNT_SHIFT 3 |
125 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_1_COMP_CNT_SHIFT 3 |
126 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_2_COMP_CNT_SHIFT 6 |
126 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_2_COMP_CNT_SHIFT 6 |
127 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_3_COMP_CNT_SHIFT 9 |
127 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_3_COMP_CNT_SHIFT 9 |
128 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_4_COMP_CNT_SHIFT 12 |
128 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_4_COMP_CNT_SHIFT 12 |
129 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_5_COMP_CNT_SHIFT 15 |
129 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_5_COMP_CNT_SHIFT 15 |
130 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_6_COMP_CNT_SHIFT 18 |
130 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_6_COMP_CNT_SHIFT 18 |
131 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 |
131 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 |
132 | /* END: Wild guesses */ |
132 | /* END: Wild guesses */ |
133 | 133 | ||
134 | #define R300_SE_VTE_CNTL 0x20b0 |
134 | #define R300_SE_VTE_CNTL 0x20b0 |
135 | # define R300_VPORT_X_SCALE_ENA 0x00000001 |
135 | # define R300_VPORT_X_SCALE_ENA 0x00000001 |
136 | # define R300_VPORT_X_OFFSET_ENA 0x00000002 |
136 | # define R300_VPORT_X_OFFSET_ENA 0x00000002 |
137 | # define R300_VPORT_Y_SCALE_ENA 0x00000004 |
137 | # define R300_VPORT_Y_SCALE_ENA 0x00000004 |
138 | # define R300_VPORT_Y_OFFSET_ENA 0x00000008 |
138 | # define R300_VPORT_Y_OFFSET_ENA 0x00000008 |
139 | # define R300_VPORT_Z_SCALE_ENA 0x00000010 |
139 | # define R300_VPORT_Z_SCALE_ENA 0x00000010 |
140 | # define R300_VPORT_Z_OFFSET_ENA 0x00000020 |
140 | # define R300_VPORT_Z_OFFSET_ENA 0x00000020 |
141 | # define R300_VTX_XY_FMT 0x00000100 |
141 | # define R300_VTX_XY_FMT 0x00000100 |
142 | # define R300_VTX_Z_FMT 0x00000200 |
142 | # define R300_VTX_Z_FMT 0x00000200 |
143 | # define R300_VTX_W0_FMT 0x00000400 |
143 | # define R300_VTX_W0_FMT 0x00000400 |
144 | # define R300_VTX_W0_NORMALIZE 0x00000800 |
144 | # define R300_VTX_W0_NORMALIZE 0x00000800 |
145 | # define R300_VTX_ST_DENORMALIZED 0x00001000 |
145 | # define R300_VTX_ST_DENORMALIZED 0x00001000 |
146 | 146 | ||
147 | /* BEGIN: Vertex data assembly - lots of uncertainties */ |
147 | /* BEGIN: Vertex data assembly - lots of uncertainties */ |
148 | 148 | ||
149 | /* gap */ |
149 | /* gap */ |
150 | 150 | ||
151 | #define R300_VAP_CNTL_STATUS 0x2140 |
151 | #define R300_VAP_CNTL_STATUS 0x2140 |
152 | # define R300_VC_NO_SWAP (0 << 0) |
152 | # define R300_VC_NO_SWAP (0 << 0) |
153 | # define R300_VC_16BIT_SWAP (1 << 0) |
153 | # define R300_VC_16BIT_SWAP (1 << 0) |
154 | # define R300_VC_32BIT_SWAP (2 << 0) |
154 | # define R300_VC_32BIT_SWAP (2 << 0) |
155 | # define R300_VAP_TCL_BYPASS (1 << 8) |
155 | # define R300_VAP_TCL_BYPASS (1 << 8) |
156 | 156 | ||
157 | /* gap */ |
157 | /* gap */ |
158 | 158 | ||
159 | /* Where do we get our vertex data? |
159 | /* Where do we get our vertex data? |
160 | * |
160 | * |
161 | * Vertex data either comes either from immediate mode registers or from |
161 | * Vertex data either comes either from immediate mode registers or from |
162 | * vertex arrays. |
162 | * vertex arrays. |
163 | * There appears to be no mixed mode (though we can force the pitch of |
163 | * There appears to be no mixed mode (though we can force the pitch of |
164 | * vertex arrays to 0, effectively reusing the same element over and over |
164 | * vertex arrays to 0, effectively reusing the same element over and over |
165 | * again). |
165 | * again). |
166 | * |
166 | * |
167 | * Immediate mode is controlled by the INPUT_CNTL registers. I am not sure |
167 | * Immediate mode is controlled by the INPUT_CNTL registers. I am not sure |
168 | * if these registers influence vertex array processing. |
168 | * if these registers influence vertex array processing. |
169 | * |
169 | * |
170 | * Vertex arrays are controlled via the 3D_LOAD_VBPNTR packet3. |
170 | * Vertex arrays are controlled via the 3D_LOAD_VBPNTR packet3. |
171 | * |
171 | * |
172 | * In both cases, vertex attributes are then passed through INPUT_ROUTE. |
172 | * In both cases, vertex attributes are then passed through INPUT_ROUTE. |
173 | * |
173 | * |
174 | * Beginning with INPUT_ROUTE_0_0 is a list of WORDs that route vertex data |
174 | * Beginning with INPUT_ROUTE_0_0 is a list of WORDs that route vertex data |
175 | * into the vertex processor's input registers. |
175 | * into the vertex processor's input registers. |
176 | * The first word routes the first input, the second word the second, etc. |
176 | * The first word routes the first input, the second word the second, etc. |
177 | * The corresponding input is routed into the register with the given index. |
177 | * The corresponding input is routed into the register with the given index. |
178 | * The list is ended by a word with INPUT_ROUTE_END set. |
178 | * The list is ended by a word with INPUT_ROUTE_END set. |
179 | * |
179 | * |
180 | * Always set COMPONENTS_4 in immediate mode. |
180 | * Always set COMPONENTS_4 in immediate mode. |
181 | */ |
181 | */ |
182 | 182 | ||
183 | #define R300_VAP_INPUT_ROUTE_0_0 0x2150 |
183 | #define R300_VAP_INPUT_ROUTE_0_0 0x2150 |
184 | # define R300_INPUT_ROUTE_COMPONENTS_1 (0 << 0) |
184 | # define R300_INPUT_ROUTE_COMPONENTS_1 (0 << 0) |
185 | # define R300_INPUT_ROUTE_COMPONENTS_2 (1 << 0) |
185 | # define R300_INPUT_ROUTE_COMPONENTS_2 (1 << 0) |
186 | # define R300_INPUT_ROUTE_COMPONENTS_3 (2 << 0) |
186 | # define R300_INPUT_ROUTE_COMPONENTS_3 (2 << 0) |
187 | # define R300_INPUT_ROUTE_COMPONENTS_4 (3 << 0) |
187 | # define R300 |