6
#include "i810_common.h"
8
#define I810_MAX_DRAWABLES 256
10
#define I810_MAJOR_VERSION 1
11
#define I810_MINOR_VERSION 7
12
#define I810_PATCHLEVEL 4
18
drmSize backbufferSize;
19
drm_handle_t backbuffer;
21
drmSize depthbufferSize;
22
drm_handle_t depthbuffer;
24
drm_handle_t textures;
27
drm_handle_t agp_buffers;
45
int logTextureGranularity;
48
/* For non-dma direct rendering.
55
unsigned int sarea_priv_offset;
57
} I810DRIRec, *I810DRIPtr;
59
/* WARNING: Do not change the SAREA structure without changing the kernel
62
#define I810_UPLOAD_TEX0IMAGE 0x1 /* handled clientside */
63
#define I810_UPLOAD_TEX1IMAGE 0x2 /* handled clientside */
64
#define I810_UPLOAD_CTX 0x4
65
#define I810_UPLOAD_BUFFERS 0x8
66
#define I810_UPLOAD_TEX0 0x10
67
#define I810_UPLOAD_TEX1 0x20
68
#define I810_UPLOAD_CLIPRECTS 0x40
71
unsigned char next, prev; /* indices to form a circular LRU */
72
unsigned char in_use; /* owned by a client, or free? */
73
int age; /* tracked by clients to update local LRU's */
74
} I810TexRegionRec, *I810TexRegionPtr;
77
unsigned int ContextState[I810_CTX_SETUP_SIZE];
78
unsigned int BufferState[I810_DEST_SETUP_SIZE];
79
unsigned int TexState[2][I810_TEX_SETUP_SIZE];
83
drm_clip_rect_t boxes[I810_NR_SAREA_CLIPRECTS];
85
/* Maintain an LRU of contiguous regions of texture space. If
86
* you think you own a region of texture memory, and it has an
87
* age different to the one you set, then you are mistaken and
88
* it has been stolen by another client. If global texAge
89
* hasn't changed, there is no need to walk the list.
91
* These regions can be used as a proxy for the fine-grained
92
* texture information of other clients - by maintaining them
93
* in the same lru which is used to age their own textures,
94
* clients have an approximate lru for the whole of global
95
* texture space, and can make informed decisions as to which
96
* areas to kick out. There is no need to choose whether to
97
* kick out your own texture or someone else's - simply eject
98
* them all in LRU order.
101
drmTextureRegion texList[I810_NR_TEX_REGIONS + 1];
103
/* Last elt is sentinal */
104
int texAge; /* last time texture was uploaded */
106
int last_enqueue; /* last time a buffer was enqueued */
107
int last_dispatch; /* age of the most recently dispatched buffer */
108
int last_quiescent; /* */
110
int ctxOwner; /* last context to upload state */
114
int pf_enabled; /* is pageflipping allowed? */
115
int pf_active; /* is pageflipping active right now? */
116
int pf_current_page; /* which buffer is being displayed? */
119
} I810SAREARec, *I810SAREAPtr;
122
/* Nothing here yet */
124
} I810ConfigPrivRec, *I810ConfigPrivPtr;
127
/* Nothing here yet */
129
} I810DRIContextRec, *I810DRIContextPtr;