blob: 56a87c9f76e883746785c08ac4cb1274cb1c3877 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
|
GLINT State Transition Strategy
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
All Rights Reserved.
Permission is granted to make and distribute verbatim copies
of this document provided the copyright notice and this permission
notice are preserved on all copies.
$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.1 1999/06/14 07:31:50 dawes Exp $
GLINT State Transition Strategy
Direct Rendering requires a coordinated method of state management
across all drivers accessing this device. This document defines the
expected behavior of all drivers participating in direct rendering with
this device.
Currently only the GMX2000 supports direct rendering.
Section 1) State Transition Types
The direct rendering document entitled "state-mgmt.txt" gives a device
independent overview on the different types of state transitions. This
section gives a more detailed description of GLINT specific hardware state.
No context switch--no state saves or restores will be done for transitions,
however the device can be busy executing commands from previous accesses to
the device.
X context switch--the intersection of 2D and 3D state will be saved
and restored. This is the state marked as DDX/3DClient in Appendix A.
The device will be synced and idle after this switch.
3D context switch--all 3D state will be saved and restored. 3D state is
defined as all registered owned by the 3DClient driver. See Appendix A
for more details. The device will be synced and idle after this switch.
The registers owned by the DRM kernel module and submodules are not
managed by context switches.
Section 2) VT Switching and DGA Access
VT Switching away from the X Server or client access to the device
framebuffer via DGA require the device to be locked away from 3D direct
rendering accesses. The X Server will hold the lock on behalf of these
services until access is restored.
Section 3) Potential Optimizations
Lighten the number of registers required for context switches by using a
mechanism to determine whether stipple or pattern registers need to be
saved/restored. This optimization has not been done for the initial
direct rendering infrastructure sample implementation.
Appendix A: GMX2000 Register Ownership
driver column contains:
DDX - DDX driver manages register
DRM - DRM or DRM subdriver manages register
3DClient - 3D Client Driver manges register
DDX/3DClient, DDX/DRM, 3DClient/DRM - register access is shared
if the RO (read only) column is marked with a *, then no writes are
permitted to this register, and thus no drivers own it.
primary and secondary columns contain the default values after
initialization. primary is the master rasterizer, secondary is the
slave rasterizer.
Name offset primary secondary RO driver
------------------------------------------------------------------------------
ResetStatus o=0000 0x00000000 0x00000000 DDX/DRM
IntEnable o=0008 0x00000000 0x00000000 DRM
IntFlags o=0010 0x00000000 0x00000018 DRM
InFIFOSpace o=0018 0x00000000 0x00000021 *
OutFIFOWords o=0020 0x00000000 0x00000000 *
DMAAddress o=0028 0x00000000 0x00000000 DRM
DMACount o=0030 0x00000000 0x00000000 DRM
ErrorFlags o=0038 0x00000000 0x00000002 DRM
VClkCtl o=0040 0x00000000 0x00000000 DDX
TestRegister o=0048 0x00000000 0x00000000 DDX
Aperture0 o=0050 0x00000000 0x00000000 DDX
Aperture1 o=0058 0x00000000 0x00000000 DDX
DMAControl o=0060 0x00000000 0x00000000 DRM
FIFODis o=0068 0x00000000 0x00000001 DDX
LBMemoryCtl o=1000 0x00000000 0x770883ff DDX
LBMemoryEDO o=1008 0x00000000 0x77080000 DDX
FBMemoryCtl o=1800 0x00000000 0x63c00800 DDX
FBModeSel o=1808 0x00000000 0x00000907 DDX
FBGCWrMask o=1810 0x00000000 0xffffffff *
FBGCColorLower o=1818 0x00000000 0x00828282 *
FBTXMemCtl o=1820 0x00000000 0x00000002 DDX
FBWrMask o=1830 0x00000000 0xffffffff *
FBGCColorUpper o=1838 0x00000000 0x00828282 *
VTGHLimit o=3000 0x00000000 0x000000c8 DDX
VTGHSyncStart o=3008 0x00ffffff 0x00000006 DDX
VTGHSyncEnd o=3010 0x00000000 0x00000016 DDX
VTGHBlankEnd o=3018 0x00ffffff 0x00000028 DDX
VTGVLimit o=3020 0x00000000 0x000001fb DDX
VTGVSyncStart o=3028 0x00ffffff 0x00000004 DDX
VTGVSyncEnd o=3030 0x00000000 0x0000000a DDX
VTGVBlankEnd o=3038 0x00ffffff 0x0000001b DDX
VTGHGateStart o=3040 0x00000000 0x00000027 DDX
VTGHGateEnd o=3048 0x00ffffff 0x000000c7 DDX
VTGVGateStart o=3050 0x00000000 0x0000001a DDX
VTGVGateEnd o=3058 0x00ffffff 0x0000001b DDX
VTGPolarity o=3060 0x00000000 0x000000ba DDX
VTGFrameRowAddr o=3068 0x00ffffff 0x00000000 DDX
VTGVLineNumber o=3070 0x00000000 0x00000079 DDX
VTGSerialClk o=3078 0x00ffffff 0x00000002 DDX
VTGModeCtl o=3080 0x00000000 0x00000000 DDX
GInFIFOSpace o=0018 0x00000000 *
GDMAAddress o=0028 0x00000000 DRM
GDMACount o=0030 0x00000000 DRM
GDMAControl o=0060 0x00000000 DRM
GOutDMA o=0080 0x00000000 DRM
GOutDMACount o=0088 0x00000000 DRM
GResetStatus o=0800 0x00000000 DRM
GIntEnable o=0808 0x00000000 DRM
GIntFlags o=0810 0x00000000 DRM
GErrorFlags o=0838 0x00000000 DRM
GTestRegister o=0848 0x00000000 DDX
GFIFODis o=0868 0x00000000 DDX
GChipConfig o=0870 0x00000000 DDX
GCSRAperture o=0878 0x00000000 DDX
GPageTableAddr o=0c00 0x00000000 DRM
GPageTableLength o=0c08 0x00000000 DRM
GDelayTimer o=0c38 0x00000000 DRM
GCommandMode o=0c40 0x00000000 DRM
GCommandIntEnable o=0c48 0x00000000 DRM
GCommandIntFlags o=0c50 0x00000000 DRM
GCommandErrorFlags o=0c58 0x00000000 DRM
GCommandStatus o=0c60 0x00000000 *
GCommandFaultingAddr o=0c68 0x00000000 *
GVertexFaultingAddr o=0c70 0x00000000 *
GWriteFaultingAddr o=0c88 0x00000000 *
GFeedbackSelectCount o=0c98 0x00000000 *
GGammaProcessorMode o=0cb8 0x00000000 DDX
GVGAShadow o=0d00 0x00000000 DDX
GMultGLINTAperture o=0d08 0x00000000 DDX
GMultGLINT1 o=0d10 0x00000000 DDX
GMultGLINT2 o=0d18 0x00000000 DDX
StartXDom t=0000 undefined undefined DDX/3DClient
dXDom t=0001 undefined undefined DDX/3DClient
StartXSub t=0002 undefined undefined DDX/3DClient
dXSub t=0003 undefined undefined DDX/3DClient
StartY t=0004 undefined undefined DDX/3DClient
dY t=0005 undefined undefined DDX/3DClient
GLINTCount t=0006 undefined undefined DDX/3DClient
PointTable0 t=0010 undefined undefined DDX/3DClient
PointTable1 t=0011 undefined undefined DDX/3DClient
PointTable2 t=0012 undefined undefined DDX/3DClient
PointTable3 t=0013 undefined undefined DDX/3DClient
RasterizerMode t=0014 undefined undefined DDX/3DClient
YLimits t=0015 undefined undefined DDX/3DClient
ScanLineOwnership t=0016 0x00000001 0x00000005 DDX
PixelSize t=0018 undefined undefined DDX/3DClient
ScissorMode t=0030 undefined undefined DDX/3DClient
ScissorMinXY t=0031 undefined undefined DDX/3DClient
ScissorMaxXY t=0032 undefined undefined DDX/3DClient
ScreenSize t=0033 undefined undefined DDX/3DClient
AreaStippleMode t=0034 undefined undefined DDX/3DClient
LineStippleMode t=0035 undefined undefined DDX/3DClient
LoadLineStippleCounters t=0036 undefined undefined DDX/3DClient
WindowOrigin t=0039 undefined undefined DDX/3DClient
AreaStipplePattern0 t=0040 undefined undefined DDX/3DClient
AreaStipplePattern1 t=0041 undefined undefined DDX/3DClient
AreaStipplePattern2 t=0042 undefined undefined DDX/3DClient
AreaStipplePattern3 t=0043 undefined undefined DDX/3DClient
AreaStipplePattern4 t=0044 undefined undefined DDX/3DClient
AreaStipplePattern5 t=0045 undefined undefined DDX/3DClient
AreaStipplePattern6 t=0046 undefined undefined DDX/3DClient
AreaStipplePattern7 t=0047 undefined undefined DDX/3DClient
AreaStipplePattern8 t=0048 undefined undefined DDX/3DClient
AreaStipplePattern9 t=0049 undefined undefined DDX/3DClient
AreaStipplePattern10 t=004a undefined undefined DDX/3DClient
AreaStipplePattern11 t=004b undefined undefined DDX/3DClient
AreaStipplePattern12 t=004c undefined undefined DDX/3DClient
AreaStipplePattern13 t=004d undefined undefined DDX/3DClient
AreaStipplePattern14 t=004e undefined undefined DDX/3DClient
AreaStipplePattern15 t=004f undefined undefined DDX/3DClient
AreaStipplePattern16 t=0050 undefined undefined DDX/3DClient
AreaStipplePattern17 t=0051 undefined undefined DDX/3DClient
AreaStipplePattern18 t=0052 undefined undefined DDX/3DClient
AreaStipplePattern19 t=0053 undefined undefined DDX/3DClient
AreaStipplePattern20 t=0054 undefined undefined DDX/3DClient
AreaStipplePattern21 t=0055 undefined undefined DDX/3DClient
AreaStipplePattern22 t=0056 undefined undefined DDX/3DClient
AreaStipplePattern23 t=0057 undefined undefined DDX/3DClient
AreaStipplePattern24 t=0058 undefined undefined DDX/3DClient
AreaStipplePattern25 t=0059 undefined undefined DDX/3DClient
AreaStipplePattern26 t=005a undefined undefined DDX/3DClient
AreaStipplePattern27 t=005b undefined undefined DDX/3DClient
AreaStipplePattern28 t=005c undefined undefined DDX/3DClient
AreaStipplePattern29 t=005d undefined undefined DDX/3DClient
AreaStipplePattern30 t=005e undefined undefined DDX/3DClient
AreaStipplePattern31 t=005f undefined undefined DDX/3DClient
RouterMode t=0108 undefined undefined DDX/3DClient
TextureAddressMode t=0070 undefined undefined DDX/3DClient
SStart t=0071 undefined undefined 3DClient
dSdx t=0072 undefined undefined 3DClient
dSdyDom t=0073 undefined undefined 3DClient
TStart t=0074 undefined undefined 3DClient
dTdx t=0075 undefined undefined 3DClient
dTdyDom t=0076 undefined undefined 3DClient
QStart t=0077 undefined undefined 3DClient
dQdx t=0078 undefined undefined 3DClient
dQdyDom t=0079 undefined undefined 3DClient
LOD t=007a undefined undefined 3DClient
dSdy t=007b undefined undefined 3DClient
dTdy t=007c undefined undefined 3DClient
dQdy t=007d undefined undefined 3DClient
TextureReadMode t=0090 undefined undefined DDX/3DClient
TextureFormat t=0091 undefined undefined 3DClient
TextureCacheControl t=0092 undefined undefined 3DClient
GLINTBorderColor t=0095 undefined undefined 3DClient
TexelLUTIndex t=0098 undefined undefined 3DClient
TexelLUTData t=0099 undefined undefined 3DClient
TexelLUTAddress t=009a undefined undefined 3DClient
TexelLUTTransfer t=009b undefined undefined 3DClient
TextureFilterMode t=009c undefined undefined 3DClient
TextureChromaUpper t=009d undefined undefined 3DClient
TextureChromaLower t=009e undefined undefined 3DClient
TxBaseAddr0 t=00a0 undefined undefined 3DClient
TxBaseAddr1 t=00a1 undefined undefined 3DClient
TxBaseAddr2 t=00a2 undefined undefined 3DClient
TxBaseAddr3 t=00a3 undefined undefined 3DClient
TxBaseAddr4 t=00a4 undefined undefined 3DClient
TxBaseAddr5 t=00a5 undefined undefined 3DClient
TxBaseAddr6 t=00a6 undefined undefined 3DClient
TxBaseAddr7 t=00a7 undefined undefined 3DClient
TxBaseAddr8 t=00a8 undefined undefined 3DClient
TxBaseAddr9 t=00a9 undefined undefined 3DClient
TxBaseAddr10 t=00aa undefined undefined 3DClient
TxBaseAddr11 t=00ab undefined undefined 3DClient
TexelLUT0 t=01d0 undefined undefined 3DClient
TexelLUT1 t=01d1 undefined undefined 3DClient
TexelLUT2 t=01d2 undefined undefined 3DClient
TexelLUT3 t=01d3 undefined undefined 3DClient
TexelLUT4 t=01d4 undefined undefined 3DClient
TexelLUT5 t=01d5 undefined undefined 3DClient
TexelLUT6 t=01d6 undefined undefined 3DClient
TexelLUT7 t=01d7 undefined undefined 3DClient
TexelLUT8 t=01d8 undefined undefined 3DClient
TexelLUT9 t=01d9 undefined undefined 3DClient
TexelLUT10 t=01da undefined undefined 3DClient
TexelLUT11 t=01db undefined undefined 3DClient
TexelLUT12 t=01dc undefined undefined 3DClient
TexelLUT13 t=01dd undefined undefined 3DClient
TexelLUT14 t=01de undefined undefined 3DClient
TexelLUT15 t=01df undefined undefined 3DClient
Texel0 t=00c0 undefined undefined 3DClient
Texel1 t=00c1 undefined undefined 3DClient
Texel2 t=00c2 undefined undefined 3DClient
Texel3 t=00c3 undefined undefined 3DClient
Texel4 t=00c4 undefined undefined 3DClient
Texel5 t=00c5 undefined undefined 3DClient
Texel6 t=00c6 undefined undefined 3DClient
Texel7 t=00c7 undefined undefined 3DClient
Interp0 t=00c8 undefined undefined 3DClient
Interp1 t=00c9 undefined undefined 3DClient
Interp2 t=00ca undefined undefined 3DClient
Interp3 t=00cb undefined undefined 3DClient
Interp4 t=00cc undefined undefined 3DClient
TextureFilter t=00cd undefined undefined 3DClient
TextureColorMode t=00d0 undefined undefined DDX/3DClient
TextureEnvColor t=00d1 undefined undefined 3DClient
FogMode t=00d2 undefined undefined DDX/3DClient
FogColor t=00d3 undefined undefined 3DClient
FStart t=00d4 undefined undefined 3DClient
dFdx t=00d5 undefined undefined 3DClient
dFdyDom t=00d6 undefined undefined 3DClient
KsStart t=00d9 undefined undefined 3DClient
dKsdx t=00da undefined undefined 3DClient
dKsdyDom t=00db undefined undefined 3DClient
KdStart t=00dc undefined undefined 3DClient
dKdStart t=00dd undefined undefined 3DClient
dKddyDom t=00de undefined undefined 3DClient
RStart t=00f0 undefined undefined 3DClient
dRdx t=00f1 undefined undefined 3DClient
dRdyDom t=00f2 undefined undefined 3DClient
GStart t=00f3 undefined undefined 3DClient
dGdx t=00f4 undefined undefined 3DClient
dGdyDom t=00f5 undefined undefined 3DClient
BStart t=00f6 undefined undefined 3DClient
dBdx t=00f7 undefined undefined 3DClient
dBdyDom t=00f8 undefined undefined 3DClient
AStart t=00f9 undefined undefined 3DClient
dAdx t=00fa undefined undefined 3DClient
dAdyDom t=00fb undefined undefined 3DClient
ColorDDAMode t=00fc undefined undefined DDX/3DClient
ConstantColor t=00fd undefined undefined 3DClient
GLINTColor t=00fe undefined undefined DDX/3DClient
AlphaTestMode t=0100 undefined undefined DDX/3DClient
AntialiasMode t=0101 undefined undefined DDX/3DClient
AlphaBlendMode t=0102 undefined undefined DDX/3DClient
ChromaUpper t=01e1 undefined undefined 3DClient
ChromaLower t=01e2 undefined undefined 3DClient
ChromaTestMode t=01e3 undefined undefined 3DClient
DitherMode t=0103 undefined undefined DDX/3DClient
FBSoftwareWriteMask t=0104 undefined undefined DDX/3DClient
LogicalOpMode t=0105 undefined undefined DDX/3DClient
FBWriteData t=0106 undefined undefined DDX/3DClient
LBReadMode t=0110 undefined undefined DDX/3DClient
Partial Product bit 0-5 need by 3DClient
LBReadFormat t=0111 set by DDX set by DDX DDX
LBSourceOffset t=0112 undefined undefined DDX/3DClient
LBStencil t=0115 undefined undefined *
LBDepth t=0116 undefined undefined *
LBWindowBase t=0117 undefined undefined DDX/3DClient
LBWriteMode t=0118 undefined undefined DDX/3DClient
LBWriteFormat t=0119 set by DDX set by DDX DDX
TextureDownloadOffset t=011e undefined undefined DDX/3DClient
LBWindowOffset t=011f undefined undefined DDX/3DClient
GLINTWindow t=0130 undefined undefined DDX/3DClient
StencilMode t=0131 undefined undefined DDX/3DClient
StencilData t=0132 undefined undefined 3DClient
GLINTStencil t=0133 undefined undefined 3DClient
DepthMode t=0134 undefined undefined DDX/3DClient
GLINTDepth t=0135 undefined undefined DDX/3DClient
ZStartU t=0136 undefined undefined 3DClient
ZStartL t=0137 undefined undefined 3DClient
dZdxU t=0138 undefined undefined 3DClient
dZdxL t=0139 undefined undefined 3DClient
dZdyDomU t=013a undefined undefined 3DClient
dZdyDomL t=013b undefined undefined 3DClient
FastClearDepth t=013c undefined undefined 3DClient
FBReadMode t=0150 set by DDX set by DDX DDX/3DClient
Partial Product bit 0-5 need by 3DClient
LBReadFormat t=0111 set by DDX set by DDX DDX
FBSourceOffset t=0151 undefined undefined DDX/3DClient
FBPixelOffset t=0152 undefined undefined DDX/3DClient
FBWindowBase t=0156 undefined undefined DDX/3DClient
FBWriteMode t=0157 undefined undefined DDX/3DClient
FBHardwareWriteMask t=0158 undefined undefined DDX/3DClient
FBBlockColor t=0159 undefined undefined DDX/3DClient
PatternRamMode t=015f undefined undefined DDX/3DClient
PatternRamData0 t=0160 undefined undefined DDX/3DClient
PatternRamData1 t=0161 undefined undefined DDX/3DClient
PatternRamData2 t=0162 undefined undefined DDX/3DClient
PatternRamData3 t=0163 undefined undefined DDX/3DClient
PatternRamData4 t=0164 undefined undefined DDX/3DClient
PatternRamData5 t=0165 undefined undefined DDX/3DClient
PatternRamData6 t=0166 undefined undefined DDX/3DClient
PatternRamData7 t=0167 undefined undefined DDX/3DClient
PatternRamData8 t=0168 undefined undefined DDX/3DClient
PatternRamData9 t=0169 undefined undefined DDX/3DClient
PatternRamData10 t=016a undefined undefined DDX/3DClient
PatternRamData11 t=016b undefined undefined DDX/3DClient
PatternRamData12 t=016c undefined undefined DDX/3DClient
PatternRamData13 t=016d undefined undefined DDX/3DClient
PatternRamData14 t=016e undefined undefined DDX/3DClient
PatternRamData15 t=016f undefined undefined DDX/3DClient
PatternRamData16 t=0170 undefined undefined DDX/3DClient
PatternRamData17 t=0171 undefined undefined DDX/3DClient
PatternRamData18 t=0172 undefined undefined DDX/3DClient
PatternRamData19 t=0173 undefined undefined DDX/3DClient
PatternRamData20 t=0174 undefined undefined DDX/3DClient
PatternRamData21 t=0175 undefined undefined DDX/3DClient
PatternRamData22 t=0176 undefined undefined DDX/3DClient
PatternRamData23 t=0177 undefined undefined DDX/3DClient
PatternRamData24 t=0178 undefined undefined DDX/3DClient
PatternRamData25 t=0179 undefined undefined DDX/3DClient
PatternRamData26 t=017a undefined undefined DDX/3DClient
PatternRamData27 t=017b undefined undefined DDX/3DClient
PatternRamData28 t=017c undefined undefined DDX/3DClient
PatternRamData29 t=017d undefined undefined DDX/3DClient
PatternRamData30 t=017e undefined undefined DDX/3DClient
PatternRamData31 t=017f undefined undefined DDX/3DClient
FBBlockColorU t=018d undefined undefined DDX/3DClient
FBBlockColorL t=018e undefined undefined DDX/3DClient
FilterMode t=0180 undefined undefined DDX/3DClient
StatisticMode t=0181 undefined undefined DDX/3DClient
MinRegion t=0182 undefined undefined 3DClient
MaxRegion t=0183 undefined undefined 3DClient
KsRStart t=0190 undefined undefined 3DClient
dKsRdx t=0191 undefined undefined 3DClient
dKsRdyDom t=0192 undefined undefined 3DClient
KsGStart t=0193 undefined undefined 3DClient
dKsGdx t=0194 undefined undefined 3DClient
dKsGdyDom t=0195 undefined undefined 3DClient
KsBStart t=0196 undefined undefined 3DClient
dKsBdx t=0197 undefined undefined 3DClient
dKsBdyDom t=0198 undefined undefined 3DClient
KdRStart t=01a0 undefined undefined 3DClient
dKdRdx t=01a1 undefined undefined 3DClient
dKdRdyDom t=01a2 undefined undefined 3DClient
KdGStart t=01a3 undefined undefined 3DClient
dKdGdx t=01a4 undefined undefined 3DClient
dKdGdyDom t=01a5 undefined undefined 3DClient
KdBStart t=01a6 undefined undefined 3DClient
dKdBdx t=01a7 undefined undefined 3DClient
dKdBdyDom t=01a8 undefined undefined 3DClient
All Gamma State is undefined and owned by 3DClient driver except for:
BroadcastMask o=026f 0x00000003 DDX/3DClient
All TI RAMDAC State is owned by DDX driver.
|