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
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
|
/***************************************************************************
* Copyright (C) 2003-2006 by XGI Technology, Taiwan. *
* *
* All Rights Reserved. *
* *
* Permission is hereby granted, free of charge, to any person obtaining *
* a copy of this software and associated documentation files (the *
* "Software"), to deal in the Software without restriction, including *
* without limitation on the rights to use, copy, modify, merge, *
* publish, distribute, sublicense, and/or sell copies of the Software, *
* and to permit persons to whom the Software is furnished to do so, *
* subject to the following conditions: *
* *
* The above copyright notice and this permission notice (including the *
* next paragraph) shall be included in all copies or substantial *
* portions of the Software. *
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
* NON-INFRINGEMENT. IN NO EVENT SHALL XGI AND/OR *
* ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, *
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *
* DEALINGS IN THE SOFTWARE. *
***************************************************************************/
#ifndef _XGI_H_
#define _XGI_H_
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <fcntl.h>
#include <math.h>
#include <sys/mman.h>
/*#include <sys/ioctl.h>*/
#include "xf86str.h" /* ScrnInfoPtr */
#ifdef XSERVER_LIBPCIACCESS
#include <pciaccess.h>
#else
#include "xf86Pci.h" /* PCI config space */
#endif
#ifdef HAVE_XAA_H
#include "xaa.h" /* XAA and Cursor Support */
#endif
#include "xf86fbman.h"
#include "xf86Cursor.h"
#include "xf86DDC.h" /* DDC support */
#include "xf86xv.h" /* Xv support */
#include "shadowfb.h" /* RefreshAreaFuncPtr */
#include "xf86RamDac.h" /* RamDacRecPtr */
#include "xf86int10.h" /* xf86Int10InfoPtr */
#include "vbe.h" /* vbeInfoPtr */
#include "shadow.h" /* shadowBufPtr */
#include "vgaHW.h" /* VGAHWPTR */
#include "xf86.h" /* xf86Screens */
#define _XF86DRI_SERVER_
#include <GL/glxint.h>
#include "dri.h"
#include "compat-api.h"
/* Jong 09/06/2006; support dual view */
#define XGIDUALVIEW
#ifndef PCI_CHIP_0047
#define PCI_CHIP_0047 0x0047
#endif
#ifndef PCI_VENDOR_XGI
#define PCI_VENDOR_XGI 0x18CA
#endif
#define XGI_MMIO_SIZE 0x20000
#define XGI_CURSOR_BUF_SIZE (128 * 128 * 4)
#define MAX_VGA_MODE_NO 13
#define NTSC 14.31818
#define PAL 17.73448
#define __DEBUG_FUNC__
#ifdef __DEBUG_FUNC__
#define ENABLE_HW_SOLIDLINE (pXGI->EnableSolidLine)
#define ENABLE_HW_SOLIDFILL (pXGI->EnableSolidFill)
#define ENABLE_HW_SRC2SRC (pXGI->EnableSrc2Src)
#define ENABLE_HW_8X8PATTERN (pXGI->Enable8x8Pattern)
#define ENABLE_HW_8X8MONOPAT (pXGI->Enable8x8MonoPat)
#define ENABLE_HW_IMAGEWRITE (pXGI->EnableImageWrite)
#else
#define ENABLE_HW_SOLIDLINE 1
#define ENABLE_HW_SOLIDFILL 1
#define ENABLE_HW_SRC2SRC 1
#define ENABLE_HW_8X8PATTERN 1
#define ENABLE_HW_8X8MONOPAT 1
#define ENABLE_HW_IMAGEWRITE 1
#endif
/* Jong 07/26/2006; enable DPMS */
/* #define DPMSExtension */
/* Jong 09/21/2006; support dual view */
/* #define XGI_DUMP_DUALVIEW */
/* #define CURSOR_DEBUG */
/* #ifndef XGI_DUMP
#define XGI_DUMP
#endif */
/*#ifndef XGI_DEBUG
#define XGI_DEBUG
#endif*/
/* Jong 11/28/2006; enable XvExtension */
/* #define XvExtension */
#ifdef XGI_DEBUG
#define XGITRACE(x) \
do \
{ \
ErrorF("(**) %s(%d): ", XGI_NAME, pScrn->scrnIndex); \
ErrorF x; \
} while (0);
#else
#define XGITRACE(x)
#endif
/*
* XGI chipset Definitions
*/
/* Supported chipsets */
typedef enum {
XG47
} XGIChipType;
/*
* Child device define
* MAX device numbers
*/
#define MAX_DEVICE_NUM 4
#define LCD_DEVICE_INDEX 0
#define CRT_DEVICE_INDEX 1
#define TV_DEVICE_INDEX 2
#define DVI_DEVICE_INDEX 3
#define DEVICE_INDEX_FLAG 0x80000000
/* Jong 09/11/2006; use low nible of first byte */
#define ST_DISP_LCD 0x00000001
#define ST_DISP_CRT 0x00000002
#define ST_DISP_TV 0x00000004
#define ST_DISP_DVI 0x00000008
/* Jong 09/11/2006; use high nible of first byte */
#define ST_DISP_LCD_MV (ST_DISP_LCD << MAX_DEVICE_NUM)
#define ST_DISP_CRT_MV (ST_DISP_CRT << MAX_DEVICE_NUM)
#define ST_DISP_TV_MV (ST_DISP_TV << MAX_DEVICE_NUM)
#define ST_DISP_DVI_MV (ST_DISP_DVI << MAX_DEVICE_NUM)
#define ST_DISP_VID (1 << (2 * MAX_DEVICE_NUM))
#define ST_DISP_SINGLE ((1 << MAX_DEVICE_NUM) - 1)
#define ST_DISP_DUALVIEW (((1 << MAX_DEVICE_NUM) - 1) << MAX_DEVICE_NUM)
#define ST_DISP_MASK (ST_DISP_DUALVIEW | ST_DISP_SINGLE)
/* Define DevStatus
Two HWDeviceExtensions have different status. */
typedef unsigned long DEVSTATUS;
#define DEVST_MHS_DUALVIEW_ENABLE 0x00000001 /* DualView(MHS) enabled. */
/* For Set Mode */
#define DEVST_SIMULATE_MODE 0x00000010
#define DEVST_DOS_FULL_SCREEN 0x00000020
/* For Device */
#define DEVST_PANEL_EXPANSION 0x00000040 /*Full screen expansion mode */
#define DEVST_PANEL_CENTERING 0x00000080 /*Screen centering mode */
#define DEVST_PANEL_V_EXPANSION 0x00000100 /*Aspect ratio expansion mode */
#define DEVST_PANEL_EXPANSION_MASK (DEVST_PANEL_EXPANSION | DEVST_PANEL_CENTERING | DEVST_PANEL_V_EXPANSION)
#define DEVST_LCDTVONDESKTOP 0x00000200 /* LCD+TV when enter DOS full screen */
/* Misc */
#define DEVST_GAMMA_ENABLED 0x00000400
/* End DEVSTATUS */
/* Define HwStatus */
/* The current display adapter status */
typedef unsigned long HWSTATUS;
/*#define HWST_OVERLAY_PDEV_IDX_MASK 0x00000003*/ /* two bits for PdevIdx (0 to 3), support up to four indices */
/*#define HWST_OVERLAY_USED 0x00000004*/ /* overlay running */
/* Set / Use just in display driver */
/* Set / Use just in miniport */
#define HWST_RESUME_FROM_STANDBY 0x00010000 /* Resume From Standby */
#define HWST_NEED_INITIALIZE_DTV 0x00040000
#define HWST_POWER_BOOTRESUME 0x00100000
#define HWST_GE_DISABLED 0x20000000
/* End HwStatus */
/* Define GraCaps */
/* caps */
typedef unsigned long GRACAPS;
/* For HW (0 --- 11) */
#define GRACAPS_PANNING 0x00000001 /* Enable/Disable PANNING ablility */
#define GRACAPS_CURSOR64 0x00000002 /* Is hw support 32*32 bits cursor? Michael for Monterey */
#define GRACAPS_MMX 0x00000004 /* actually CPU's cap. */
#define GRACAPS_PCI_CMDLIST_OFF_BY_REG 0x00000008 /* PCI CommandList Off */
#define GRACAPS_GAMMA_BY_REG 0x00000010 /* Enable gamma correction */
#define GRACAPS_POWER_SAVING_ON_BY_REG 0x00000020 /* Enable Power Saving Mode */
/* For utility (12 --- 31) */
#define GRACAPS_MODE_FOR_EACH_USER 0x00001000 /* different resolution for each user */
#define GRACAPS_OVERLAY_FULLSCREEN 0x00002000 /* overlay fullscreen in secondary device under contain mode */
#define GRACAPS_HOTKEY_ROTATION 0x00004000 /* enable hotkey loop under rotation mode */
#define GRACAPS_SWAP_HEAD 0x00008000 /* swap head under MHS */
#define GRACAPS_HOTKEY_MHS 0x00020000 /* enable hotkey under MHS */
#define GRACAPS_LCDLID_CLOSED 0x00040000 /* close LCD when LCD lid closes */
#define GRACAPS_DISABLE_PANNING_BY_REG 0x00080000 /* If this bit set, we do not report modes bigger than device physical size on LCD & DVI */
#define GRACAPS_TABLET_PC_BY_REG 0x00100000 /* Tablet PC. */
#define GRACAPS_3D_TEXTURE_CAPS_BY_REG 0x00200000 /* Adjust texture capability */
#ifdef T_ROTATION
#define GRACAPS_ROTATION_BY_REG 0x00400000 /* Adjust texture capability */
#endif
#define GRACAPS_CONTROL_HSCB 0x00800000 /* If the Utility can adjust HSCB */
/* End GRACAPS */
/* Define HwCaps */
typedef unsigned long HWCAPS;
#define HWCAPS_NONE 0x00000000
/* For PCI configuration */
#define HWCAPS_AGP 0x00000001 /* AGP caps */
#define HWCAPS_INTERNALBUS_64 0x00000002 /* Force 64 Bits Internal Bus only */
#define HWCAPS_INTERNALBUS_128 0x00000004 /* Using 64/128 Bit Internal Bus */
#define HWCAPS_DUAL_PORT 0x00000008 /* Enable/Disable Dual Port */
#define HWCAPS_LOW_LEVEL_PRODUCT 0x00000010 /* Low level product (<= 32M video memory) */
/* For Device */
#define HWCAPS_CRT 0x00000100 /* support CRT output */
#define HWCAPS_LCD 0x00000200 /* LCD chips, we can ask BIOS. */
#define HWCAPS_TV 0x00000400 /* TV display */
#define HWCAPS_DVI 0x00000800 /* DVI display */
#define HWCAPS_MUTEX_DVI_CRT 0x00001000 /* We can't turn on DVI+CRT together */
/* For example, 7116 card */
/* For D3D */
#define HWCAPS_PURE_DEVICE 0x00010000 /* Enable/Disable Pure Device */
/* Others */
#define HWCAPS_CURSOR_IN_DUALVIEW 0x01000000 /* For HW cursor support at LCD view of DUAL VIEW mode. */
#define HWCAPS_ALPHA_HW_MAX 0x02000000 /* Full Hardware Alpha cursor support */
#define HWCAPS_POWER_SAVING 0x04000000 /* Power Saving enable. */
#define HWCAPS_GAMMA 0x08000000 /* Support Gamma */
/* End DEVCAPS */
/* Define GRASTATUS */
typedef unsigned long GRASTATUS;
/* Graphic Status */
#define GST_NO_ACCELERATOR 0x00000001 /* No accelerator */
#define GST_SW_CURSOR 0x00000002 /* no hardware pointer. */
#define GST_INTERLACED 0x00000004
#define GST_DDRAW 0x00000008 /* directDraw enable. */
#define GST_HWSP_ENABLED 0x00000010 /* h/w subpicture feature enabled */
#define GST_ALPHA_CURSOR 0x00000020 /* Alpha cursor enabled. */
#define GST_ROTATION 0x00000040 /* Rotation definition */
#define GST_DIB 0x00000080
#define GST_AGP_ENABLE 0x00000100 /* AGP version */
#define GST_PCIE_ENABLE 0x00000200 /* PCI-E version */
/* End GRASTATUS */
typedef struct xgi_regs {
/**
* Extended registers at 0x3cf
*/
uint8_t gra[0x10];
/**
* Extended CRTC control registers
*/
uint8_t crtc[0x100];
/**
* Extended sequencer registers
*/
uint8_t seq[0x29];
/**
* Alternate clock select
*
* [7 ] - Enable display memory clock divide by 2
* [6:5] - Video clock divide
* 0 0 = divide by 1
* 0 1 = divide by 2
* 1 0 = divide by 3
* 1 1 = divide by 4
* [4:2] - Reserved
* [1:0] - Video clock select
*
* Stored at 0x3db
*/
uint8_t alt_clock_select;
/**
* SYNDAC command register
*/
uint8_t syndac_command;
} *XGIRegPtr;
/* modeNo:
* |--------'--------|
* |||||||| ||||||||
* |||||||| |'''''''- TVGA video mode number.
* |||||||| '-------- flag of clear screen.
* |'''''''---------- Base video mode number.
* '----------------- reserved.
*
* condition:
* |--------'--------|--------'--------|
* |||||||| |||||||| |||||||| ||||||||
* |||||||| |||||||| |||||||| |||||||'- support with LCD.
* |||||||| |||||||| |||||||| ||||||'-- support with CRT.
* |||||||| |||||||| |||||||| |||||'--- support with LCD & CRT.
* |||||||| |||||||| |||||||| ||||'---- support with TV.
* |||||||| |||||||| |||||||| |||'----- support with LCD & TV.
* |||||||| |||||||| |||||||| ||'------ support with TV & CRT.
* |||||||| |||||||| |||||||| |'------- support with LCD & CRT & TV.
* |||||||| |||||||| |||||||| '-------- Dual view support.
* |||||||| |||||||| |||||||'---------- LCD standard (TFT/STN).
* |||||||| |||||||| ||||||'----------- Centering/Expansion
* |||||||| |||||||| ''''''------------ reserved for LCD.
* |||||||| |||||||'------------------- TV standard (NTSC).
* |||||||| ||||||'-------------------- TV standard (PAL).
* |||||||| |||||'--------------------- TV scanline (underscan).
* |||||||| ||||'---------------------- TV scanline (overscan).
* |||||||| ''''----------------------- reserved for TV.
* |'''''''---------------------------- reserved.
* '----------------------------------- Extended/Standard set mode method(1200/mode no).
*/
typedef struct {
CARD16 width; /* width of the graphic mode in pixel. */
CARD16 height; /* height of the graphic mode in scanline.*/
CARD16 pixelSize; /* bits/pixel of the graphic mode. */
CARD16 refRate;
CARD16 refSupport; /* bios will fill this field when call bios */
CARD16 modeNo; /* video mode number. */
CARD32 condition;
} XGIAskModeRec, *XGIAskModePtr;
/*
* DTV_INFO : Data type for control the TVX
* : CARD16, CARD16 - Save the BIOS default value
* : CARD8 - Total swing width
* : CARD8 - Logical default value
* : CARD8 - Current offset (Registry save value)
* : CARD8 - Delta
* 0----------------+----------|----------N
* Bios default defoffset Curoffset
* |<----------- Swing value ----------->|
*/
typedef struct {
CARD16 low; /* BIOS Default */
CARD16 high;
CARD8 swingwid; /* Swing Width */
CARD8 defoffset; /* Default Offset */
CARD8 curoffset; /* Current Offset */
CARD8 delta; /* Delta unit */
} XGIDigitalTVInfoRec, *XGIDigitalTVInfoPtr;
typedef enum
{
DISPHEAD_CRTC = 1,
DISPHEAD_WIN2 = 2
} XGIHeadID;
/* HWMC Surfaces */
#define XGI_MAX_SURFACES 8
#define XGI_MAX_SUBPICTURES 2
#define XGI_TOTAL_SURFACES 10
typedef struct {
/* DVDATTR dvdAttr; */
unsigned long IOAddr;
unsigned long fbAddr;
unsigned long IOSize;
unsigned long fbSize;
/* temp data */
int bobFlag; /* bob or weave mode */
} XGIXvMCCreateContextRec, *XGIXvMCCreateContextPtr;
typedef struct {
int index;
unsigned long pitch;
unsigned long size;
unsigned long hwAddr;
unsigned long offsetY;
unsigned long offsetV;
unsigned long offsetU;
} XGIXvMCCreateSurfaceRec, *XGIXvMCCreateSurfacePtr;
/*
typedef struct {
int index;
unsigned int width;
unsigned int pitch;
unsigned int size;
unsigned int hwAddr;
} XGIXvMCSubpicSurfaceRec, *XGIXvMCSubpicSurfacePtr;
*/
typedef struct {
unsigned int pitch;
unsigned int size;
unsigned int hwAddr;
} XGIXvMCSubpictureRec, *XGIXvMCSubpicturePtr;
typedef unsigned long DVDATTR;
/* Jong 09/11/2006; Private Entity structure for dual view */
#ifdef XGIDUALVIEW
typedef struct {
int lastInstance; /* number of entities */
} XGIEntityRec, *XGIEntityPtr;
#endif
typedef struct {
ScrnInfoPtr pScrn;
#ifdef XSERVER_LIBPCIACCESS
struct pci_device * pPciInfo;
#else
pciVideoPtr pPciInfo;
PCITAG pciTag;
#endif
EntityInfoPtr pEnt;
int chipset;
int dacType;
int dacSpeed;
int pix24bpp; /* Depth of pixmap for 24bpp framebuffer */
Bool isDac8bits; /* Use 8 bit DAC? */
#ifndef XSERVER_LIBPCIACCESS
unsigned long IOAddr;
unsigned long fbAddr;
#endif
unsigned char * IOBase;
unsigned char * fbBase;
unsigned long fbSize;
unsigned long PIOBase;
int drm_fd;
DRIInfoPtr dri_info;
drm_handle_t fb_handle;
drm_handle_t gart_handle;
drm_handle_t mmio_handle;
uint8_t * gart_vaddr;
drmSize gart_size;
Bool (*DRICloseScreen)(int, ScreenPtr);
Bool directRenderingEnabled;
Bool dri_screen_open;
CARD32 biosFbSize; /* bios report frame buffer size */
CARD32 freeFbSize;
CARD16 maxBandwidth;
Bool isInterpolation;
Bool isFBDev;
Bool isDDRAM;
OptionInfoPtr pOptionInfo;
Bool noAccel;
Bool noMMIO;
Bool isHWCursor;
Bool isMmioOnly;
Bool isShadowFB;
CARD32 displayDevice; /* the current display device */
DEVSTATUS deviceStatus; /* Device status, like DualViewLoop, DualView, ... */
GRASTATUS graStatus; /* Engine status */
Bool isGammaBrightnessOn;
int brightness;
double gamma;
Bool isNeedShadow;
Bool isNeedStretch;
int minClock;
int maxClock;
XGIDigitalTVInfoPtr pDtvInfo;
int currentClock;
int rotate;
float frequency;
CARD8 * pShadow;
int shadowPitch;
int numDgaModes;
DGAModePtr pDgaModes;
Bool isDgaActive;
int dgaViewportStatus;
RefreshAreaFuncPtr RefreshArea;
CloseScreenProcPtr CloseScreen;
ScreenBlockHandlerProcPtr BlockHandler;
CreateScreenResourcesProcPtr CreateScreenResources;
xf86PointerMovedProc *PointerMoved;
struct xgi_regs savedReg;
struct xgi_regs modeReg;
I2CBusPtr pI2C;
I2CBusPtr pI2C_dvi;
CARD16 engineOperation;
CARD32 bltScanDirection;
CARD32 patternLocation;
CARD32 drawFlag;
CARD16 linePattern;
RamDacRecPtr pRamDac;
/**
* \name Cursor related data.
*/
/*@{*/
Bool cursor_argb; /**< Is ARGB cursor in use? */
xf86CursorInfoPtr pCursorInfo; /**< Current core cursor info. */
uint32_t cursorStart; /**< Hardware cursor start addr. */
uint32_t cursorEnd; /**< Hardware cursor end addr. */
/*@}*/
xf86Int10InfoPtr pInt10;
vbeInfoPtr pVbe;
XGIHeadID headID;
#ifdef HAVE_XAA_H
XAAInfoRecPtr pXaaInfo;
#endif
struct xg47_CmdList *cmdList;
#ifdef XvExtension
void (*VideoTimerCallback)(ScrnInfoPtr, Time);
XF86VideoAdaptorPtr pAdaptor;
int videoKey;
CARD32 ovlAttr; /* overlay attribute */
#endif
/* XvMC */
DVDATTR dvdAttr;
XGIXvMCCreateContextRec xvmcContext;
XGIXvMCCreateSurfaceRec xvmcSurface[XGI_MAX_SURFACES];
XID surfID[XGI_MAX_SURFACES];
XGIXvMCSubpictureRec xvmcSubpic;
XID spID;
#ifdef __DEBUG_FUNC__
Bool EnableSolidLine;
Bool EnableSolidFill;
Bool EnableSrc2Src;
Bool Enable8x8Pattern;
Bool Enable8x8MonoPat;
Bool EnableImageWrite;
#endif
#ifdef XGIDUALVIEW
XGIEntityPtr pEntityPrivate;
Bool FirstView; /* Jong 09/11/2006; support dual view */
unsigned int ScreenIndex; /* 0:first view; 1:second view */
#endif
} XGIRec, *XGIPtr;
struct XGIDRIContext {
int dummy;
};
#define XGIPTR(p) ((XGIPtr)((p)->driverPrivate))
extern Bool XGIDRIScreenInit(ScreenPtr pScreen);
extern Bool XGIDRIFinishScreenInit(ScreenPtr pScreen);
extern void XGIDRICloseScreen(ScreenPtr pScreen);
#endif
|