diff options
Diffstat (limited to 'src/mesa/drivers/dri/i810/i810context.h')
-rw-r--r-- | src/mesa/drivers/dri/i810/i810context.h | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/src/mesa/drivers/dri/i810/i810context.h b/src/mesa/drivers/dri/i810/i810context.h deleted file mode 100644 index 93c7eda7b38..00000000000 --- a/src/mesa/drivers/dri/i810/i810context.h +++ /dev/null @@ -1,249 +0,0 @@ -/* - * GLX Hardware Device Driver for Intel i810 - * Copyright (C) 1999 Keith Whitwell - * - * 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 - * 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 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 NONINFRINGEMENT. IN NO EVENT SHALL - * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS 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 I810CONTEXT_INC -#define I810CONTEXT_INC - -typedef struct i810_context_t i810Context; -typedef struct i810_context_t *i810ContextPtr; -typedef struct i810_texture_object_t *i810TextureObjectPtr; - -#include "drm.h" -#include "main/mtypes.h" -#include "main/mm.h" - -#include "i810screen.h" -#include "i810tex.h" - - -/* Reasons to disable hardware rasterization. - */ -#define I810_FALLBACK_TEXTURE 0x1 -#define I810_FALLBACK_DRAW_BUFFER 0x2 -#define I810_FALLBACK_READ_BUFFER 0x4 -#define I810_FALLBACK_COLORMASK 0x8 -#define I810_FALLBACK_SPECULAR 0x20 -#define I810_FALLBACK_LOGICOP 0x40 -#define I810_FALLBACK_RENDERMODE 0x80 -#define I810_FALLBACK_STENCIL 0x100 -#define I810_FALLBACK_BLEND_EQ 0x200 -#define I810_FALLBACK_BLEND_FUNC 0x400 - - -#ifndef PCI_CHIP_I810 -#define PCI_CHIP_I810 0x7121 -#define PCI_CHIP_I810_DC100 0x7123 -#define PCI_CHIP_I810_E 0x7125 -#define PCI_CHIP_I815 0x1132 -#endif - -#define IS_I810(imesa) (imesa->i810Screen->deviceID == PCI_CHIP_I810 || \ - imesa->i810Screen->deviceID == PCI_CHIP_I810_DC100 || \ - imesa->i810Screen->deviceID == PCI_CHIP_I810_E) -#define IS_I815(imesa) (imesa->i810Screen->deviceID == PCI_CHIP_I815) - - -#define I810_UPLOAD_TEX(i) (I810_UPLOAD_TEX0<<(i)) - -/* Use the templated vertex formats: - */ -#define TAG(x) i810##x -#include "tnl_dd/t_dd_vertex.h" -#undef TAG - -typedef void (*i810_tri_func)( i810ContextPtr, i810Vertex *, i810Vertex *, - i810Vertex * ); -typedef void (*i810_line_func)( i810ContextPtr, i810Vertex *, i810Vertex * ); -typedef void (*i810_point_func)( i810ContextPtr, i810Vertex * ); - -struct i810_context_t { - GLint refcount; - struct gl_context *glCtx; - - /* Texture object bookkeeping - */ - unsigned nr_heaps; - driTexHeap * texture_heaps[1]; - driTextureObject swapped; - - struct i810_texture_object_t *CurrentTexObj[2]; - - - /* Bit flag to keep track of fallbacks. - */ - GLuint Fallback; - - /* State for i810vb.c and i810tris.c. - */ - GLuint new_state; /* _NEW_* flags */ - GLuint SetupNewInputs; - GLuint SetupIndex; - GLuint RenderIndex; - GLmatrix ViewportMatrix; - GLenum render_primitive; - GLenum reduced_primitive; - GLuint hw_primitive; - GLubyte *verts; - - drmBufPtr vertex_buffer; - char *vertex_addr; - GLuint vertex_low; - GLuint vertex_high; - GLuint vertex_last_prim; - - GLboolean upload_cliprects; - - - /* Fallback rasterization functions - */ - i810_point_func draw_point; - i810_line_func draw_line; - i810_tri_func draw_tri; - - /* Hardware state - */ - GLuint dirty; /* I810_UPLOAD_* */ - GLuint Setup[I810_CTX_SETUP_SIZE]; - GLuint BufferSetup[I810_DEST_SETUP_SIZE]; - int vertex_size; - int vertex_stride_shift; - unsigned int lastStamp; - GLboolean stipple_in_hw; - - GLenum TexEnvImageFmt[2]; - - /* State which can't be computed completely on the fly: - */ - GLuint LcsCullMode; - GLuint LcsLineWidth; - GLuint LcsPointSize; - - /* Funny mesa mirrors - */ - GLushort ClearColor; - - /* DRI stuff - */ - GLuint needClip; - struct gl_framebuffer *glBuffer; - GLboolean doPageFlip; - - /* These refer to the current draw (front vs. back) buffer: - */ - int drawX; /* origin of drawable in draw buffer */ - int drawY; - GLuint numClipRects; /* cliprects for that buffer */ - drm_clip_rect_t *pClipRects; - - int lastSwap; - int texAge; - int ctxAge; - int dirtyAge; - - - GLboolean scissor; - drm_clip_rect_t draw_rect; - drm_clip_rect_t scissor_rect; - - drm_context_t hHWContext; - drm_hw_lock_t *driHwLock; - int driFd; - - __DRIdrawable *driDrawable; - __DRIscreen *driScreen; - i810ScreenPrivate *i810Screen; - I810SAREAPtr sarea; -}; - - -#define I810_CONTEXT(ctx) ((i810ContextPtr)(ctx->DriverCtx)) - -#define GET_DISPATCH_AGE( imesa ) imesa->sarea->last_dispatch -#define GET_ENQUEUE_AGE( imesa ) imesa->sarea->last_enqueue - - -/* Lock the hardware and validate our state. - */ -#define LOCK_HARDWARE( imesa ) \ - do { \ - char __ret=0; \ - DRM_CAS(imesa->driHwLock, imesa->hHWContext, \ - (DRM_LOCK_HELD|imesa->hHWContext), __ret); \ - if (__ret) \ - i810GetLock( imesa, 0 ); \ - } while (0) - - - -/* Release the kernel lock. - */ -#define UNLOCK_HARDWARE(imesa) \ - DRM_UNLOCK(imesa->driFd, imesa->driHwLock, imesa->hHWContext); - - -/* This is the wrong way to do it, I'm sure. Otherwise the drm - * bitches that I've already got the heavyweight lock. At worst, - * this is 3 ioctls. The best solution probably only gets me down - * to 2 ioctls in the worst case. - */ -#define LOCK_HARDWARE_QUIESCENT( imesa ) do { \ - LOCK_HARDWARE( imesa ); \ - i810RegetLockQuiescent( imesa ); \ -} while(0) - - -extern void i810GetLock( i810ContextPtr imesa, GLuint flags ); -extern void i810EmitHwStateLocked( i810ContextPtr imesa ); -extern void i810EmitScissorValues( i810ContextPtr imesa, int box_nr, int emit ); -extern void i810EmitDrawingRectangle( i810ContextPtr imesa ); -extern void i810XMesaSetBackClipRects( i810ContextPtr imesa ); -extern void i810XMesaSetFrontClipRects( i810ContextPtr imesa ); - -#define SUBPIXEL_X -.5 -#define SUBPIXEL_Y -.5 - -/* ================================================================ - * Debugging: - */ -#define DO_DEBUG 1 -#if DO_DEBUG -extern int I810_DEBUG; -#else -#define I810_DEBUG 0 -#endif - -#define DEBUG_TEXTURE 0x1 -#define DEBUG_STATE 0x2 -#define DEBUG_IOCTL 0x4 -#define DEBUG_PRIMS 0x8 -#define DEBUG_VERTS 0x10 -#define DEBUG_FALLBACKS 0x20 -#define DEBUG_VERBOSE 0x40 -#define DEBUG_DRI 0x80 -#define DEBUG_DMA 0x100 -#define DEBUG_SANITY 0x200 -#define DEBUG_SYNC 0x400 -#define DEBUG_SLEEP 0x800 - -#endif |