2ea5cd213c707079c338ce6d445e2495cbceb56c
[profile/ivi/mesa.git] / src / mesa / drivers / dri / r600 / evergreen_chip.h
1 /*
2  * Copyright (C) 2008-2010  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 shall be included
12  * in all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17  * THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20  */
21
22 /*
23  * Authors:
24  *   Richard Li <RichardZ.Li@amd.com>, <richardradeon@gmail.com> 
25  */
26
27 #ifndef _EVERGREEN_CHIP_H_
28 #define _EVERGREEN_CHIP_H_
29
30 #include "r700_chip.h"
31
32 #define EVERGREEN_MAX_DX9_CONSTS      256
33 #define EVERGREEN_MAX_SHADER_EXPORTS  32
34 #define EVERGREEN_MAX_VIEWPORTS       16
35
36 typedef struct _EVERGREEN_VIEWPORT_STATE
37 {
38         union UINT_FLOAT PA_SC_VPORT_SCISSOR_0_TL;   ////0,1         // = 0x28250, // DIFF 
39     union UINT_FLOAT PA_SC_VPORT_SCISSOR_0_BR;   ////0,1         // = 0x28254, // DIFF 
40         union UINT_FLOAT PA_SC_VPORT_ZMIN_0; ////0                        // = 0x282D0, // SAME 
41     union UINT_FLOAT PA_SC_VPORT_ZMAX_0; ////0                        // = 0x282D4, // SAME 
42         union UINT_FLOAT PA_CL_VPORT_XSCALE;    ////                 // = 0x2843C, // SAME 
43     union UINT_FLOAT PA_CL_VPORT_XOFFSET;   ////                 // = 0x28440, // SAME 
44     union UINT_FLOAT PA_CL_VPORT_YSCALE;    ////                 // = 0x28444, // SAME 
45     union UINT_FLOAT PA_CL_VPORT_YOFFSET;   ////                 // = 0x28448, // SAME 
46     union UINT_FLOAT PA_CL_VPORT_ZSCALE;    ////                 // = 0x2844C, // SAME 
47     union UINT_FLOAT PA_CL_VPORT_ZOFFSET;   ////                 // = 0x28450, // SAME 
48         GLboolean                         enabled;
49         GLboolean                         dirty;
50 } EVERGREEN_VIEWPORT_STATE;
51
52 #define EVERGREEN_MAX_UCP             6
53
54 typedef struct _EVERGREEN_UCP_STATE
55 {
56         union UINT_FLOAT PA_CL_UCP_0_X;                              // = 0x285BC, // SAME 0x28E20 
57     union UINT_FLOAT PA_CL_UCP_0_Y;                              // = 0x285C0, // SAME 0x28E24 
58     union UINT_FLOAT PA_CL_UCP_0_Z;                              // = 0x285C4, // SAME 0x28E28 
59     union UINT_FLOAT PA_CL_UCP_0_W;                              // = 0x285C8, // SAME 0x28E2C 
60         GLboolean                         enabled;
61         GLboolean                         dirty;
62 } EVERGREEN_UCP_STATE;
63
64 #define EVERGREEN_MAX_RENDER_TARGETS  12
65
66 typedef struct _EVERGREEN_RENDER_TARGET_STATE
67 {
68         union UINT_FLOAT CB_COLOR0_BASE;   ////0                          // = 0x28C60, // SAME 0x28040 
69     union UINT_FLOAT CB_COLOR0_PITCH;  ////0                          // = 0x28C64, // 
70     union UINT_FLOAT CB_COLOR0_SLICE;  ////0                          // = 0x28C68, // 
71     union UINT_FLOAT CB_COLOR0_VIEW;   ////0                          // = 0x28C6C, // SAME 0x28080 
72     union UINT_FLOAT CB_COLOR0_INFO;   ////0,1,2,3,4,5,6,78,9,10,11                          // = 0x28C70, // DIFF 0x280A0 
73     union UINT_FLOAT CB_COLOR0_ATTRIB; ////0                          // = 0x28C74, // 
74     union UINT_FLOAT CB_COLOR0_DIM;                              // = 0x28C78, // 
75     union UINT_FLOAT CB_COLOR0_CMASK;  ////0                          // = 0x28C7C, // 
76     union UINT_FLOAT CB_COLOR0_CMASK_SLICE; ////0                     // = 0x28C80, // 
77     union UINT_FLOAT CB_COLOR0_FMASK; ////0                           // = 0x28C84, // 
78     union UINT_FLOAT CB_COLOR0_FMASK_SLICE;  ////0                    // = 0x28C88, // 
79     union UINT_FLOAT CB_COLOR0_CLEAR_WORD0;                      // = 0x28C8C, // 
80     union UINT_FLOAT CB_COLOR0_CLEAR_WORD1;                      // = 0x28C90, // 
81     union UINT_FLOAT CB_COLOR0_CLEAR_WORD2;                      // = 0x28C94, // 
82     union UINT_FLOAT CB_COLOR0_CLEAR_WORD3;                      // = 0x28C98, //
83         GLboolean                         enabled;
84         GLboolean                         dirty;
85 } EVERGREEN_RENDER_TARGET_STATE;
86
87 typedef struct _EVERGREEN_CONFIG
88 {
89     union UINT_FLOAT                SPI_CONFIG_CNTL;              // = 0x9100,  // DIFF
90     union UINT_FLOAT                SPI_CONFIG_CNTL_1;            // = 0x913C,  // DIFF
91     union UINT_FLOAT                CP_PERFMON_CNTL;              // = 0x87FC,  // SAME
92     union UINT_FLOAT                SQ_MS_FIFO_SIZES;             // = 0x8CF0,  // SAME
93
94         union UINT_FLOAT                SQ_CONFIG;                    // = 0x8C00,  // DIFF 
95         union UINT_FLOAT                SQ_GPR_RESOURCE_MGMT_1;       // = 0x8C04,  // SAME 
96         union UINT_FLOAT                SQ_GPR_RESOURCE_MGMT_2;       // = 0x8C08,  // SAME 
97     union UINT_FLOAT                    SQ_GPR_RESOURCE_MGMT_3;       // = 0x8C0C,  //
98
99         union UINT_FLOAT                SQ_THREAD_RESOURCE_MGMT;      // = 0x8C18,  // SAME 0x8C0C 
100     union UINT_FLOAT                    SQ_THREAD_RESOURCE_MGMT_2;    // = 0x8C1C,  //
101         union UINT_FLOAT                SQ_STACK_RESOURCE_MGMT_1;     // = 0x8C20,  // SAME 0x8C10 
102         union UINT_FLOAT                SQ_STACK_RESOURCE_MGMT_2;     // = 0x8C24,  // SAME 0x8C14 
103     union UINT_FLOAT                    SQ_STACK_RESOURCE_MGMT_3;     // = 0x8C28,  //
104
105     union UINT_FLOAT                    SQ_DYN_GPR_CNTL_PS_FLUSH_REQ; // = 0x8D8C,  // DIFF
106     union UINT_FLOAT                    SQ_LDS_RESOURCE_MGMT;         // = 0x8E2C,  //            
107     union UINT_FLOAT                    VGT_CACHE_INVALIDATION;       // = 0x88C4,  // DIFF
108     union UINT_FLOAT                    VGT_GS_VERTEX_REUSE;          // = 0x88D4,  // SAME
109     union UINT_FLOAT                    PA_SC_FORCE_EOV_MAX_CNTS;     // = 0x8B24,  // SAME
110     union UINT_FLOAT                    PA_SC_LINE_STIPPLE_STATE;     // = 0x8B10,  // SAME
111     union UINT_FLOAT                    PA_CL_ENHANCE;                // = 0x8A14,  // SAME
112 } EVERGREEN_CONFIG;
113
114 typedef struct _EVERGREEN_PS_RES
115 {
116         union            UINT_FLOAT SQ_PGM_START_PS; ////                           // = 0x28840, // SAME       
117         GLboolean        dirty;
118
119     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_0;                    // = 0x28940, // SAME 
120     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_1;                    // = 0x28944, // SAME 
121     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_2;                    // = 0x28948, // SAME 
122     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_3;                    // = 0x2894C, // SAME 
123     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_4;                    // = 0x28950, // SAME 
124     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_5;                    // = 0x28954, // SAME 
125     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_6;                    // = 0x28958, // SAME 
126     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_7;                    // = 0x2895C, // SAME 
127     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_8;                    // = 0x28960, // SAME 
128     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_9;                    // = 0x28964, // SAME 
129     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_10;                   // = 0x28968, // SAME 
130     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_11;                   // = 0x2896C, // SAME 
131     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_12;                   // = 0x28970, // SAME 
132     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_13;                   // = 0x28974, // SAME 
133     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_14;                   // = 0x28978, // SAME 
134     union UINT_FLOAT SQ_ALU_CONST_CACHE_PS_15;                   // = 0x2897C, // SAME 
135
136         int              num_consts;
137         union UINT_FLOAT consts[EVERGREEN_MAX_DX9_CONSTS][4];
138 } EVERGREEN_PS_RES;
139
140 typedef struct _EVERGREEN_VS_RES
141 {
142         union UINT_FLOAT SQ_PGM_START_VS;               ////             // = 0x2885C, // SAME 0x28858  
143     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_VS_0; ////             // = 0x28180, //?
144     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_0;       ////             // = 0x28980, // SAME 
145
146     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_1;                    // = 0x28984, // SAME 
147     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_2;                    // = 0x28988, // SAME 
148     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_3;                    // = 0x2898C, // SAME 
149     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_4;                    // = 0x28990, // SAME 
150     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_5;                    // = 0x28994, // SAME 
151     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_6;                    // = 0x28998, // SAME 
152     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_7;                    // = 0x2899C, // SAME 
153     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_8;                    // = 0x289A0, // SAME 
154     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_9;                    // = 0x289A4, // SAME 
155     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_10;                   // = 0x289A8, // SAME 
156     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_11;                   // = 0x289AC, // SAME 
157     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_12;                   // = 0x289B0, // SAME 
158     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_13;                   // = 0x289B4, // SAME 
159     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_14;                   // = 0x289B8, // SAME 
160     union UINT_FLOAT SQ_ALU_CONST_CACHE_VS_15;                   // = 0x289BC, // SAME
161
162         GLboolean        dirty;
163         int              num_consts;
164         union UINT_FLOAT consts[EVERGREEN_MAX_DX9_CONSTS][4];
165 } EVERGREEN_VS_RES;
166
167 typedef struct _EVERGREEN_CHIP_CONTEXT 
168 {
169 /* Registers from PA block: */
170     union UINT_FLOAT PA_SC_SCREEN_SCISSOR_TL;  ////                  // = 0x28030, // DIFF 
171     union UINT_FLOAT PA_SC_SCREEN_SCISSOR_BR;  ////                  // = 0x28034, // DIFF 
172     union UINT_FLOAT PA_SC_WINDOW_OFFSET;      ////                  // = 0x28200, // DIFF 
173     union UINT_FLOAT PA_SC_WINDOW_SCISSOR_TL;  ////                  // = 0x28204, // DIFF 
174     union UINT_FLOAT PA_SC_WINDOW_SCISSOR_BR;  ////                  // = 0x28208, // DIFF 
175     union UINT_FLOAT PA_SC_CLIPRECT_RULE;      ////                  // = 0x2820C, // SAME 
176     union UINT_FLOAT PA_SC_CLIPRECT_0_TL;      ////                  // = 0x28210, // DIFF 
177     union UINT_FLOAT PA_SC_CLIPRECT_0_BR;      ////                  // = 0x28214, // DIFF 
178     union UINT_FLOAT PA_SC_CLIPRECT_1_TL; ////                   // = 0x28218, // DIFF 
179     union UINT_FLOAT PA_SC_CLIPRECT_1_BR; ////                   // = 0x2821C, // DIFF 
180     union UINT_FLOAT PA_SC_CLIPRECT_2_TL; ////                   // = 0x28220, // DIFF 
181     union UINT_FLOAT PA_SC_CLIPRECT_2_BR; ////                   // = 0x28224, // DIFF 
182     union UINT_FLOAT PA_SC_CLIPRECT_3_TL; ////                   // = 0x28228, // DIFF 
183     union UINT_FLOAT PA_SC_CLIPRECT_3_BR; ////                   // = 0x2822C, // DIFF 
184     union UINT_FLOAT PA_SC_EDGERULE;                             // = 0x28230, // SAME 
185     union UINT_FLOAT PA_SU_HARDWARE_SCREEN_OFFSET;               // = 0x28234, // 
186     union UINT_FLOAT PA_SC_GENERIC_SCISSOR_TL; ////              // = 0x28240, // DIFF 
187     union UINT_FLOAT PA_SC_GENERIC_SCISSOR_BR; ////              // = 0x28244, // DIFF
188     
189     EVERGREEN_VIEWPORT_STATE viewport[EVERGREEN_MAX_VIEWPORTS];    
190     EVERGREEN_UCP_STATE      ucp[EVERGREEN_MAX_UCP];
191
192     union UINT_FLOAT PA_CL_POINT_X_RAD;                          // = 0x287D4, // SAME 0x28E10 
193     union UINT_FLOAT PA_CL_POINT_Y_RAD;                          // = 0x287D8, // SAME 0x28E14 
194     union UINT_FLOAT PA_CL_POINT_SIZE;                           // = 0x287DC, // SAME 0x28E18 
195     union UINT_FLOAT PA_CL_POINT_CULL_RAD;                       // = 0x287E0, // SAME 0x28E1C 
196     union UINT_FLOAT PA_CL_CLIP_CNTL;   ////                         // = 0x28810, // SAME 
197     union UINT_FLOAT PA_SU_SC_MODE_CNTL; ////                        // = 0x28814, // SAME 
198     union UINT_FLOAT PA_CL_VTE_CNTL;   ////                          // = 0x28818, // SAME 
199     union UINT_FLOAT PA_CL_VS_OUT_CNTL; ////                         // = 0x2881C, // SAME 
200     union UINT_FLOAT PA_CL_NANINF_CNTL;  ////                        // = 0x28820, // SAME 
201     union UINT_FLOAT PA_SU_LINE_STIPPLE_CNTL;                    // = 0x28824, // 
202     union UINT_FLOAT PA_SU_LINE_STIPPLE_SCALE;                   // = 0x28828, // 
203     union UINT_FLOAT PA_SU_PRIM_FILTER_CNTL;                     // = 0x2882C, // 
204     union UINT_FLOAT PA_SU_POINT_SIZE; ////                          // = 0x28A00, // SAME 
205     union UINT_FLOAT PA_SU_POINT_MINMAX;  ////                       // = 0x28A04, // SAME 
206     union UINT_FLOAT PA_SU_LINE_CNTL;    ////                        // = 0x28A08, // SAME 
207     union UINT_FLOAT PA_SC_LINE_STIPPLE;                         // = 0x28A0C, // SAME 
208     union UINT_FLOAT PA_SC_MODE_CNTL_0; ////                         // = 0x28A48, // 
209     union UINT_FLOAT PA_SC_MODE_CNTL_1; ////                         // = 0x28A4C, // 
210     union UINT_FLOAT PA_SU_POLY_OFFSET_DB_FMT_CNTL; ////             // = 0x28B78, // SAME 0x28DF8 
211     union UINT_FLOAT PA_SU_POLY_OFFSET_CLAMP; ////                   // = 0x28B7C, // SAME 0x28DFC 
212     union UINT_FLOAT PA_SU_POLY_OFFSET_FRONT_SCALE;////              // = 0x28B80, // SAME 0x28E00 
213     union UINT_FLOAT PA_SU_POLY_OFFSET_FRONT_OFFSET; ////            // = 0x28B84, // SAME 0x28E04 
214     union UINT_FLOAT PA_SU_POLY_OFFSET_BACK_SCALE;  ////             // = 0x28B88, // SAME 0x28E08 
215     union UINT_FLOAT PA_SU_POLY_OFFSET_BACK_OFFSET; ////             // = 0x28B8C, // SAME 0x28E0C 
216     union UINT_FLOAT PA_SC_LINE_CNTL; ////                           // = 0x28C00, // DIFF 
217     union UINT_FLOAT PA_SC_AA_CONFIG; ////                           // = 0x28C04, // SAME 
218     union UINT_FLOAT PA_SU_VTX_CNTL;  ////                           // = 0x28C08, // SAME 
219     union UINT_FLOAT PA_CL_GB_VERT_CLIP_ADJ; ////                    // = 0x28C0C, // SAME 
220     union UINT_FLOAT PA_CL_GB_VERT_DISC_ADJ; ////                    // = 0x28C10, // SAME 
221     union UINT_FLOAT PA_CL_GB_HORZ_CLIP_ADJ; ////                    // = 0x28C14, // SAME 
222     union UINT_FLOAT PA_CL_GB_HORZ_DISC_ADJ; ////                    // = 0x28C18, // SAME 
223     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_0; ////                    // = 0x28C1C, // 
224     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_1; ////                    // = 0x28C20, // 
225     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_2; ////                    // = 0x28C24, // 
226     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_3; ////                    // = 0x28C28, // 
227     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_4; ////                    // = 0x28C2C, // 
228     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_5; ////                    // = 0x28C30, // 
229     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_6; ////                    // = 0x28C34, // 
230     union UINT_FLOAT PA_SC_AA_SAMPLE_LOCS_7; ////                    // = 0x28C38, // 
231     union UINT_FLOAT PA_SC_AA_MASK;   ////                           // = 0x28C3C, // SAME 0x28C48 
232
233 /* Registers from VGT block: */
234     union UINT_FLOAT VGT_INDEX_TYPE;                             // =  0x895C, // SAME
235     union UINT_FLOAT VGT_PRIMITIVE_TYPE;                         // =  0x8958, // SAME
236     union UINT_FLOAT VGT_MAX_VTX_INDX;   ////                    // = 0x28400, // SAME 
237     union UINT_FLOAT VGT_MIN_VTX_INDX;   ////                    // = 0x28404, // SAME 
238     union UINT_FLOAT VGT_INDX_OFFSET;    ////                    // = 0x28408, // SAME 
239     union UINT_FLOAT VGT_MULTI_PRIM_IB_RESET_INDX;               // = 0x2840C, // SAME         
240          
241     union UINT_FLOAT VGT_DRAW_INITIATOR;                         // = 0x287F0, // SAME 
242     union UINT_FLOAT VGT_IMMED_DATA;                             // = 0x287F4, // SAME 
243      
244     union UINT_FLOAT VGT_OUTPUT_PATH_CNTL; ////                      // = 0x28A10, // DIFF 
245     union UINT_FLOAT VGT_HOS_CNTL;                               // = 0x28A14, // SAME 
246     union UINT_FLOAT VGT_HOS_MAX_TESS_LEVEL;                     // = 0x28A18, // SAME 
247     union UINT_FLOAT VGT_HOS_MIN_TESS_LEVEL;                     // = 0x28A1C, // SAME 
248     union UINT_FLOAT VGT_HOS_REUSE_DEPTH;                        // = 0x28A20, // SAME 
249     union UINT_FLOAT VGT_GROUP_PRIM_TYPE;                        // = 0x28A24, // SAME 
250     union UINT_FLOAT VGT_GROUP_FIRST_DECR;                       // = 0x28A28, // SAME 
251     union UINT_FLOAT VGT_GROUP_DECR;                             // = 0x28A2C, // SAME 
252     union UINT_FLOAT VGT_GROUP_VECT_0_CNTL;                      // = 0x28A30, // SAME 
253     union UINT_FLOAT VGT_GROUP_VECT_1_CNTL;                      // = 0x28A34, // SAME 
254     union UINT_FLOAT VGT_GROUP_VECT_0_FMT_CNTL;                  // = 0x28A38, // SAME 
255     union UINT_FLOAT VGT_GROUP_VECT_1_FMT_CNTL;                  // = 0x28A3C, // SAME 
256     union UINT_FLOAT VGT_GS_MODE; ////                               // = 0x28A40, // DIFF 
257        
258     union UINT_FLOAT VGT_PRIMITIVEID_EN;   ////                  // = 0x28A84, // SAME 
259     union UINT_FLOAT VGT_DMA_NUM_INSTANCES;  ////                // = 0x28A88, // SAME 
260     union UINT_FLOAT VGT_EVENT_INITIATOR;                        // = 0x28A90, // SAME 
261     union UINT_FLOAT VGT_MULTI_PRIM_IB_RESET_EN;                 // = 0x28A94, // SAME 
262     union UINT_FLOAT VGT_INSTANCE_STEP_RATE_0; ////                  // = 0x28AA0, // SAME 
263     union UINT_FLOAT VGT_INSTANCE_STEP_RATE_1; ////                  // = 0x28AA4, // SAME 
264     union UINT_FLOAT VGT_REUSE_OFF; ////                             // = 0x28AB4, // SAME 
265     union UINT_FLOAT VGT_VTX_CNT_EN; ////                            // = 0x28AB8, // SAME 
266     
267     union UINT_FLOAT VGT_SHADER_STAGES_EN;  ////                     // = 0x28B54, //
268  
269     union UINT_FLOAT VGT_STRMOUT_CONFIG; ////                        // = 0x28B94, // 
270     union UINT_FLOAT VGT_STRMOUT_BUFFER_CONFIG;  ////                // = 0x28B98, // 
271     union UINT_FLOAT VGT_VERTEX_REUSE_BLOCK_CNTL;////                // = 0x28C58, // SAME 
272     union UINT_FLOAT VGT_OUT_DEALLOC_CNTL;  ////                     // = 0x28C5C, // SAME 
273
274 /* Registers from SQ block: */     
275     union UINT_FLOAT SQ_VTX_SEMANTIC_0;    ////                      // = 0x28380, // SAME
276     union UINT_FLOAT SQ_VTX_SEMANTIC_1;    ////                      // = 0x28384, // SAME
277     union UINT_FLOAT SQ_VTX_SEMANTIC_2;    ////                      // = 0x28388, // SAME
278     union UINT_FLOAT SQ_VTX_SEMANTIC_3;    ////                      // = 0x2838C, // SAME
279     union UINT_FLOAT SQ_VTX_SEMANTIC_4;    ////                      // = 0x28390, // SAME
280     union UINT_FLOAT SQ_VTX_SEMANTIC_5;    ////                      // = 0x28394, // SAME
281     union UINT_FLOAT SQ_VTX_SEMANTIC_6;    ////                      // = 0x28398, // SAME 
282     union UINT_FLOAT SQ_VTX_SEMANTIC_7;    ////                      // = 0x2839C, // SAME 
283     union UINT_FLOAT SQ_VTX_SEMANTIC_8;    ////                      // = 0x283A0, // SAME 
284     union UINT_FLOAT SQ_VTX_SEMANTIC_9;    ////                      // = 0x283A4, // SAME 
285     union UINT_FLOAT SQ_VTX_SEMANTIC_10;   ////                      // = 0x283A8, // SAME 
286     union UINT_FLOAT SQ_VTX_SEMANTIC_11;   ////                      // = 0x283AC, // SAME 
287     union UINT_FLOAT SQ_VTX_SEMANTIC_12;   ////                      // = 0x283B0, // SAME 
288     union UINT_FLOAT SQ_VTX_SEMANTIC_13;   ////                      // = 0x283B4, // SAME 
289     union UINT_FLOAT SQ_VTX_SEMANTIC_14;   ////                      // = 0x283B8, // SAME 
290     union UINT_FLOAT SQ_VTX_SEMANTIC_15;   ////                      // = 0x283BC, // SAME 
291     union UINT_FLOAT SQ_VTX_SEMANTIC_16;   ////                      // = 0x283C0, // SAME 
292     union UINT_FLOAT SQ_VTX_SEMANTIC_17;   ////                      // = 0x283C4, // SAME 
293     union UINT_FLOAT SQ_VTX_SEMANTIC_18;   ////                      // = 0x283C8, // SAME 
294     union UINT_FLOAT SQ_VTX_SEMANTIC_19;   ////                      // = 0x283CC, // SAME 
295     union UINT_FLOAT SQ_VTX_SEMANTIC_20;   ////                      // = 0x283D0, // SAME 
296     union UINT_FLOAT SQ_VTX_SEMANTIC_21;   ////                      // = 0x283D4, // SAME 
297     union UINT_FLOAT SQ_VTX_SEMANTIC_22;   ////                      // = 0x283D8, // SAME 
298     union UINT_FLOAT SQ_VTX_SEMANTIC_23;   ////                      // = 0x283DC, // SAME 
299     union UINT_FLOAT SQ_VTX_SEMANTIC_24;   ////                      // = 0x283E0, // SAME 
300     union UINT_FLOAT SQ_VTX_SEMANTIC_25;   ////                      // = 0x283E4, // SAME 
301     union UINT_FLOAT SQ_VTX_SEMANTIC_26;   ////                      // = 0x283E8, // SAME 
302     union UINT_FLOAT SQ_VTX_SEMANTIC_27;   ////                      // = 0x283EC, // SAME 
303     union UINT_FLOAT SQ_VTX_SEMANTIC_28;   ////                      // = 0x283F0, // SAME 
304     union UINT_FLOAT SQ_VTX_SEMANTIC_29;   ////                      // = 0x283F4, // SAME 
305     union UINT_FLOAT SQ_VTX_SEMANTIC_30;   ////                      // = 0x283F8, // SAME 
306     union UINT_FLOAT SQ_VTX_SEMANTIC_31;   ////                      // = 0x283FC, // SAME     
307     union UINT_FLOAT SQ_DYN_GPR_RESOURCE_LIMIT_1;////                // = 0x28838, // 
308     
309     union UINT_FLOAT SQ_PGM_RESOURCES_PS;  ////                      // = 0x28844, // DIFF 0x28850 
310     union UINT_FLOAT SQ_PGM_RESOURCES_2_PS; ////                     // = 0x28848, // 
311     union UINT_FLOAT SQ_PGM_EXPORTS_PS; ////                         // = 0x2884C, // SAME 0x28854 
312     
313     union UINT_FLOAT SQ_PGM_RESOURCES_VS;////                        // = 0x28860, // DIFF 0x28868 
314     union UINT_FLOAT SQ_PGM_RESOURCES_2_VS;  ////                    // = 0x28864, // 
315     union UINT_FLOAT SQ_PGM_START_GS; ////                           // = 0x28874, // SAME 0x2886C 
316     union UINT_FLOAT SQ_PGM_RESOURCES_GS; ////                       // = 0x28878, // DIFF 0x2887C 
317     union UINT_FLOAT SQ_PGM_RESOURCES_2_GS; ////                     // = 0x2887C, // 
318     union UINT_FLOAT SQ_PGM_START_ES;  ////                          // = 0x2888C, // SAME 0x28880 
319     union UINT_FLOAT SQ_PGM_RESOURCES_ES; ////                       // = 0x28890, // DIFF 
320     union UINT_FLOAT SQ_PGM_RESOURCES_2_ES; ////                     // = 0x28894, // 
321     union UINT_FLOAT SQ_PGM_START_FS; ////                           // = 0x288A4, // SAME 0x28894 
322     union UINT_FLOAT SQ_PGM_RESOURCES_FS;  ////                      // = 0x288A8, // DIFF 0x288A4 
323     union UINT_FLOAT SQ_PGM_START_HS;                            // = 0x288B8, // 
324     union UINT_FLOAT SQ_PGM_RESOURCES_HS;                        // = 0x288BC, // 
325     union UINT_FLOAT SQ_PGM_RESOURCES_2_HS;////                      // = 0x288C0, // 
326     union UINT_FLOAT SQ_PGM_START_LS;                            // = 0x288D0, // 
327     union UINT_FLOAT SQ_PGM_RESOURCES_LS;                        // = 0x288D4, // 
328     union UINT_FLOAT SQ_PGM_RESOURCES_2_LS;  ////                    // = 0x288D8, //         
329     union UINT_FLOAT SQ_LDS_ALLOC_PS; ////                           // = 0x288EC, //         
330     union UINT_FLOAT SQ_ESGS_RING_ITEMSIZE; ////                     // = 0x28900, // SAME 0x288A8 
331     union UINT_FLOAT SQ_GSVS_RING_ITEMSIZE; ////                     // = 0x28904, // SAME 0x288AC 
332     union UINT_FLOAT SQ_ESTMP_RING_ITEMSIZE;  ////                   // = 0x28908, // SAME 0x288B0 
333     union UINT_FLOAT SQ_GSTMP_RING_ITEMSIZE;  ////                   // = 0x2890C, // SAME 0x288B4 
334     union UINT_FLOAT SQ_VSTMP_RING_ITEMSIZE;  ////                   // = 0x28910, // SAME 0x288B8 
335     union UINT_FLOAT SQ_PSTMP_RING_ITEMSIZE;  ////                   // = 0x28914, // SAME 0x288BC 
336     union UINT_FLOAT SQ_GS_VERT_ITEMSIZE;     ////                   // = 0x2891C, // SAME 0x288C8 
337     union UINT_FLOAT SQ_GS_VERT_ITEMSIZE_1;                      // = 0x28920, // 
338     union UINT_FLOAT SQ_GS_VERT_ITEMSIZE_2;                      // = 0x28924, // 
339     union UINT_FLOAT SQ_GS_VERT_ITEMSIZE_3;                      // = 0x28928, //             
340      
341     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_0;                    // = 0x289C0, // SAME 
342     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_1;                    // = 0x289C4, // SAME 
343     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_2;                    // = 0x289C8, // SAME 
344     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_3;                    // = 0x289CC, // SAME 
345     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_4;                    // = 0x289D0, // SAME 
346     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_5;                    // = 0x289D4, // SAME 
347     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_6;                    // = 0x289D8, // SAME 
348     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_7;                    // = 0x289DC, // SAME 
349     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_8;                    // = 0x289E0, // SAME 
350     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_9;                    // = 0x289E4, // SAME 
351     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_10;                   // = 0x289E8, // SAME 
352     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_11;                   // = 0x289EC, // SAME 
353     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_12;                   // = 0x289F0, // SAME 
354     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_13;                   // = 0x289F4, // SAME 
355     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_14;                   // = 0x289F8, // SAME 
356     union UINT_FLOAT SQ_ALU_CONST_CACHE_GS_15;                   // = 0x289FC, // SAME 
357     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_0;                    // = 0x28F00, // 
358     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_1;                    // = 0x28F04, // 
359     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_2;                    // = 0x28F08, // 
360     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_3;                    // = 0x28F0C, // 
361     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_4;                    // = 0x28F10, // 
362     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_5;                    // = 0x28F14, // 
363     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_6;                    // = 0x28F18, // 
364     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_7;                    // = 0x28F1C, // 
365     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_8;                    // = 0x28F20, // 
366     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_9;                    // = 0x28F24, // 
367     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_10;                   // = 0x28F28, // 
368     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_11;                   // = 0x28F2C, // 
369     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_12;                   // = 0x28F30, // 
370     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_13;                   // = 0x28F34, // 
371     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_14;                   // = 0x28F38, // 
372     union UINT_FLOAT SQ_ALU_CONST_CACHE_HS_15;                   // = 0x28F3C, // 
373     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_0;                    // = 0x28F40, // 
374     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_1;                    // = 0x28F44, // 
375     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_2;                    // = 0x28F48, // 
376     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_3;                    // = 0x28F4C, // 
377     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_4;                    // = 0x28F50, // 
378     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_5;                    // = 0x28F54, // 
379     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_6;                    // = 0x28F58, // 
380     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_7;                    // = 0x28F5C, // 
381     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_8;                    // = 0x28F60, // 
382     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_9;                    // = 0x28F64, // 
383     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_10;                   // = 0x28F68, // 
384     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_11;                   // = 0x28F6C, // 
385     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_12;                   // = 0x28F70, // 
386     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_13;                   // = 0x28F74, // 
387     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_14;                   // = 0x28F78, // 
388     union UINT_FLOAT SQ_ALU_CONST_CACHE_LS_15;                   // = 0x28F7C, // 
389     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_0;              // = 0x28F80, // 
390     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_1;              // = 0x28F84, // 
391     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_2;              // = 0x28F88, // 
392     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_3;              // = 0x28F8C, // 
393     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_4;              // = 0x28F90, // 
394     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_5;              // = 0x28F94, // 
395     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_6;              // = 0x28F98, // 
396     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_7;              // = 0x28F9C, // 
397     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_8;              // = 0x28FA0, // 
398     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_9;              // = 0x28FA4, // 
399     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_10;             // = 0x28FA8, // 
400     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_11;             // = 0x28FAC, // 
401     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_12;             // = 0x28FB0, // 
402     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_13;             // = 0x28FB4, // 
403     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_14;             // = 0x28FB8, // 
404     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_HS_15;             // = 0x28FBC, // 
405     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_0;              // = 0x28FC0, // 
406     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_1;              // = 0x28FC4, // 
407     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_2;              // = 0x28FC8, // 
408     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_3;              // = 0x28FCC, // 
409     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_4;              // = 0x28FD0, // 
410     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_5;              // = 0x28FD4, // 
411     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_6;              // = 0x28FD8, // 
412     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_7;              // = 0x28FDC, // 
413     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_8;              // = 0x28FE0, // 
414     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_9;              // = 0x28FE4, // 
415     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_10;             // = 0x28FE8, // 
416     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_11;             // = 0x28FEC, // 
417     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_12;             // = 0x28FF0, // 
418     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_13;             // = 0x28FF4, // 
419     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_14;             // = 0x28FF8, // 
420     union UINT_FLOAT SQ_ALU_CONST_BUFFER_SIZE_LS_15;             // = 0x28FFC, // 
421
422     EVERGREEN_PS_RES ps;
423     EVERGREEN_VS_RES vs;
424
425 /* Registers from SPI block: */
426     union UINT_FLOAT SPI_VS_OUT_ID_0;     ////                   // = 0x2861C, // SAME 0x28614 
427     union UINT_FLOAT SPI_VS_OUT_ID_1;     ////                   // = 0x28620, // SAME 0x28618 
428     union UINT_FLOAT SPI_VS_OUT_ID_2;     ////                   // = 0x28624, // SAME 0x2861C 
429     union UINT_FLOAT SPI_VS_OUT_ID_3;     ////                   // = 0x28628, // SAME 0x28620 
430     union UINT_FLOAT SPI_VS_OUT_ID_4;     ////                   // = 0x2862C, // SAME 0x28624 
431     union UINT_FLOAT SPI_VS_OUT_ID_5;     ////                   // = 0x28630, // SAME 0x28628 
432     union UINT_FLOAT SPI_VS_OUT_ID_6;     ////                   // = 0x28634, // SAME 0x2862C 
433     union UINT_FLOAT SPI_VS_OUT_ID_7;     ////                   // = 0x28638, // SAME 0x28630 
434     union UINT_FLOAT SPI_VS_OUT_ID_8;     ////                   // = 0x2863C, // SAME 0x28634 
435     union UINT_FLOAT SPI_VS_OUT_ID_9;     ////                   // = 0x28640, // SAME 0x28638 
436     union UINT_FLOAT SPI_PS_INPUT_CNTL[32];     ////                   // = 0x28644, // SAME 
437     
438     union UINT_FLOAT SPI_VS_OUT_CONFIG;  ////                        // = 0x286C4, // SAME 
439     union UINT_FLOAT SPI_THREAD_GROUPING; ////                       // = 0x286C8, // DIFF 
440     union UINT_FLOAT SPI_PS_IN_CONTROL_0; ////                       // = 0x286CC, // SAME 
441     union UINT_FLOAT SPI_PS_IN_CONTROL_1; ////                       // = 0x286D0, // SAME 
442     union UINT_FLOAT SPI_INTERP_CONTROL_0;  ////                     // = 0x286D4, // SAME 
443     union UINT_FLOAT SPI_INPUT_Z;           ////                     // = 0x286D8, // SAME 
444     union UINT_FLOAT SPI_FOG_CNTL;          ////                     // = 0x286DC, // SAME 
445     union UINT_FLOAT SPI_BARYC_CNTL;  ////                           // = 0x286E0, // 
446     union UINT_FLOAT SPI_PS_IN_CONTROL_2; ////                       // = 0x286E4, // 
447     union UINT_FLOAT SPI_COMPUTE_INPUT_CNTL;                     // = 0x286E8, // 
448     union UINT_FLOAT SPI_COMPUTE_NUM_THREAD_X;                   // = 0x286EC, // 
449     union UINT_FLOAT SPI_COMPUTE_NUM_THREAD_Y;                   // = 0x286F0, // 
450     union UINT_FLOAT SPI_COMPUTE_NUM_THREAD_Z;                   // = 0x286F4, // 
451
452 /* Registers from SX block: */
453     union UINT_FLOAT SX_MISC;                                    // = 0x28350, // SAME 
454     union UINT_FLOAT SX_SURFACE_SYNC;                            // = 0x28354, // DIFF 
455     union UINT_FLOAT SX_ALPHA_TEST_CONTROL;  ////                // = 0x28410, // SAME 
456     union UINT_FLOAT SX_ALPHA_REF;                               // = 0x28438, // SAME 
457
458 /* Registers from DB block: */
459     union UINT_FLOAT DB_RENDER_CONTROL; ////                         // = 0x28000, // DIFF 0x28D0C 
460     union UINT_FLOAT DB_COUNT_CONTROL; ////                          // = 0x28004, // 
461     union UINT_FLOAT DB_DEPTH_VIEW;  ////                            // = 0x28008, // DIFF 0x28004 
462     union UINT_FLOAT DB_RENDER_OVERRIDE;   ////                      // = 0x2800C, // DIFF 0x28D10 
463     union UINT_FLOAT DB_RENDER_OVERRIDE2;  ////                      // = 0x28010, // 
464     union UINT_FLOAT DB_HTILE_DATA_BASE;   ////                      // = 0x28014, // SAME 
465     union UINT_FLOAT DB_STENCIL_CLEAR; ////                          // = 0x28028, // SAME 
466     union UINT_FLOAT DB_DEPTH_CLEAR; ////                            // = 0x2802C, // SAME 
467     union UINT_FLOAT DB_Z_INFO;   ////                               // = 0x28040, // 
468     union UINT_FLOAT DB_STENCIL_INFO;  ////                          // = 0x28044, // 
469     union UINT_FLOAT DB_Z_READ_BASE; ////                            // = 0x28048, // 
470     union UINT_FLOAT DB_STENCIL_READ_BASE;////                       // = 0x2804C, // 
471     union UINT_FLOAT DB_Z_WRITE_BASE;  ////                          // = 0x28050, // 
472     union UINT_FLOAT DB_STENCIL_WRITE_BASE; ////                     // = 0x28054, // 
473     union UINT_FLOAT DB_DEPTH_SIZE;   ////                           // = 0x28058, // DIFF 0x28000 
474     union UINT_FLOAT DB_DEPTH_SLICE; ////                            // = 0x2805C, // 
475     union UINT_FLOAT DB_STENCILREFMASK;                          // = 0x28430, // SAME 
476     union UINT_FLOAT DB_STENCILREFMASK_BF;                       // = 0x28434, // SAME 
477     union UINT_FLOAT DB_DEPTH_CONTROL;      ////                     // = 0x28800, // SAME 
478     union UINT_FLOAT DB_SHADER_CONTROL;////                          // = 0x2880C, // DIFF 
479     union UINT_FLOAT DB_HTILE_SURFACE;  ////                         // = 0x28ABC, // SAME 0x28D24 
480     union UINT_FLOAT DB_SRESULTS_COMPARE_STATE0; ////                // = 0x28AC0, // SAME 0x28D28 
481     union UINT_FLOAT DB_SRESULTS_COMPARE_STATE1; ////                // = 0x28AC4, // SAME 0x28D2C 
482     union UINT_FLOAT DB_PRELOAD_CONTROL; ////                        // = 0x28AC8, // SAME 0x28D30 
483     union UINT_FLOAT DB_ALPHA_TO_MASK; ////                          // = 0x28B70, // SAME 0x28D44 
484
485 /* Registers from CB block: */
486     union UINT_FLOAT CB_TARGET_MASK;  ////                       // = 0x28238, // SAME 
487     union UINT_FLOAT CB_SHADER_MASK;  ////                       // = 0x2823C, // SAME 
488     union UINT_FLOAT CB_BLEND_RED;   ////                            // = 0x28414, // SAME 
489     union UINT_FLOAT CB_BLEND_GREEN; ////                            // = 0x28418, // SAME 
490     union UINT_FLOAT CB_BLEND_BLUE;  ////                            // = 0x2841C, // SAME 
491     union UINT_FLOAT CB_BLEND_ALPHA;  ////                           // = 0x28420, // SAME 
492     union UINT_FLOAT CB_BLEND0_CONTROL; ////                         // = 0x28780, // DIFF 
493     union UINT_FLOAT CB_BLEND1_CONTROL;                          // = 0x28784, // DIFF 
494     union UINT_FLOAT CB_BLEND2_CONTROL;                          // = 0x28788, // DIFF 
495     union UINT_FLOAT CB_BLEND3_CONTROL;                          // = 0x2878C, // DIFF 
496     union UINT_FLOAT CB_BLEND4_CONTROL;                          // = 0x28790, // DIFF 
497     union UINT_FLOAT CB_BLEND5_CONTROL;                          // = 0x28794, // DIFF 
498     union UINT_FLOAT CB_BLEND6_CONTROL;                          // = 0x28798, // DIFF 
499     union UINT_FLOAT CB_BLEND7_CONTROL;                          // = 0x2879C, // DIFF 
500     union UINT_FLOAT CB_COLOR_CONTROL; ////                          // = 0x28808, // DIFF      
501     union UINT_FLOAT CB_CLRCMP_CONTROL; ////                         // = 0x28C40, // SAME 0x28C30 
502     union UINT_FLOAT CB_CLRCMP_SRC;  ////                            // = 0x28C44, // SAME 0x28C34 
503     union UINT_FLOAT CB_CLRCMP_DST;  ////                            // = 0x28C48, // SAME 0x28C38 
504     union UINT_FLOAT CB_CLRCMP_MSK;  ////                            // = 0x28C4C, // SAME 0x28C3C 
505     
506     EVERGREEN_RENDER_TARGET_STATE      render_target[EVERGREEN_MAX_RENDER_TARGETS];  
507     
508     radeonTexObj*    textures[R700_TEXTURE_NUMBERUNITS];
509
510     EVERGREEN_CONFIG evergreen_config;
511
512     GLboolean           bEnablePerspective;
513
514 } EVERGREEN_CHIP_CONTEXT;
515
516 #endif /* _EVERGREEN_CHIP_H_ */