diff options
Diffstat (limited to 'nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h')
-rw-r--r-- | nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h deleted file mode 100644 index 4c0959968..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved. - * Copyright 2001-2003 S3 Graphics, Inc. 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 - * the rights to use, copy, modify, merge, publish, distribute, sub license, - * 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 - * VIA, S3 GRAPHICS, 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 SAVAGECONTEXT_INC -#define SAVAGECONTEXT_INC - -typedef struct savage_context_t savageContext; -typedef struct savage_context_t *savageContextPtr; -typedef struct savage_texture_object_t *savageTextureObjectPtr; - -#include <X11/Xlibint.h> -#include "dri_util.h" -#include "mtypes.h" -#include "xf86drm.h" -#include "drm.h" -#include "savage_drm.h" -#include "savage_init.h" -#include "savage_3d_reg.h" -#include "mm.h" -#include "tnl/t_vertex.h" - -#include "texmem.h" - -#include "xmlconfig.h" - -/* Reasons to fallback on all primitives. - */ -#define SAVAGE_FALLBACK_TEXTURE 0x1 -#define SAVAGE_FALLBACK_DRAW_BUFFER 0x2 -#define SAVAGE_FALLBACK_READ_BUFFER 0x4 -#define SAVAGE_FALLBACK_COLORMASK 0x8 -#define SAVAGE_FALLBACK_SPECULAR 0x10 -#define SAVAGE_FALLBACK_LOGICOP 0x20 -/*frank 2001/11/12 add the stencil fallbak*/ -#define SAVAGE_FALLBACK_STENCIL 0x40 -#define SAVAGE_FALLBACK_RENDERMODE 0x80 -#define SAVAGE_FALLBACK_BLEND_EQ 0x100 -#define SAVAGE_FALLBACK_NORAST 0x200 -#define SAVAGE_FALLBACK_PROJ_TEXTURE 0x400 - - -#define HW_CULL 1 - -/* for savagectx.new_state - manage GL->driver state changes - */ -#define SAVAGE_NEW_TEXTURE 0x1 -#define SAVAGE_NEW_CULL 0x2 - -/* What needs to be changed for the current vertex dma buffer? - * This will go away! - */ -#define SAVAGE_UPLOAD_LOCAL 0x1 /* DrawLocalCtrl (S4) or - DrawCtrl and ZBufCtrl (S3D) */ -#define SAVAGE_UPLOAD_TEX0 0x2 /* texture unit 0 */ -#define SAVAGE_UPLOAD_TEX1 0x4 /* texture unit 1 (S4 only) */ -#define SAVAGE_UPLOAD_FOGTBL 0x8 /* fog table */ -#define SAVAGE_UPLOAD_GLOBAL 0x10 /* most global regs */ -#define SAVAGE_UPLOAD_TEXGLOBAL 0x20 /* TexBlendColor (S4 only) */ - -/*define the max numer of vertex in vertex buf*/ -#define SAVAGE_MAX_VERTEXS 0x10000 - -/* Don't make it too big. We don't want to buffer up a whole frame - * that would force the application to wait later. */ -#define SAVAGE_CMDBUF_SIZE 1024 - -/* Use the templated vertex formats: - */ -#define TAG(x) savage##x -#include "tnl_dd/t_dd_vertex.h" -#undef TAG - -typedef void (*savage_tri_func)( savageContextPtr, savageVertex *, - savageVertex *, savageVertex * ); -typedef void (*savage_line_func)( savageContextPtr, - savageVertex *, savageVertex * ); -typedef void (*savage_point_func)( savageContextPtr, savageVertex * ); - - -/************************************************************** - **************** enums for chip IDs ************************ - **************************************************************/ - -#define CHIP_S3GX3MS1NB 0x8A25 -#define CHIP_S3GX3MS1NBK 0x8A26 -#define CHIP_S3TWISTER 0x8D01 -#define CHIP_S3TWISTERK 0x8D02 -#define CHIP_S3TWISTER_P4M 0x8D04 -#define CHIP_S3PARAMOUNT128 0x8C22 /*SuperSavage 128/MX*/ -#define CHIP_S3TRISTAR128SDR 0x8C2A /*SuperSavage 128/IX*/ -#define CHIP_S3TRISTAR64SDRM7 0x8C2C /*SuperSavage/IX M7 Package*/ -#define CHIP_S3TRISTAR64SDR 0x8C2E /*SuperSavage/IX*/ -#define CHIP_S3TRISTAR64CDDR 0x8C2F /*SuperSavage/IXC DDR*/ - -#define IS_SAVAGE(imesa) (imesa->savageScreen->deviceID == CHIP_S3GX3MS1NB || \ - imesa->savageScreen->deviceID == CHIP_S3GX3MS1NBK || \ - imesa->savageScreen->deviceID == CHIP_S3TWISTER || \ - imesa->savageScreen->deviceID == CHIP_S3TWISTERK || \ - imesa->savageScreen->deviceID == CHIP_S3TWISTER_P4M || \ - imesa->savageScreen->deviceID == CHIP_S3PARAMOUNT128 || \ - imesa->savageScreen->deviceID == CHIP_S3TRISTAR128SDR || \ - imesa->savageScreen->deviceID == CHIP_S3TRISTAR64SDRM7 || \ - imesa->savageScreen->deviceID == CHIP_S3TRISTAR64SDR || \ - imesa->savageScreen->deviceID == CHIP_S3TRISTAR64CDDR ) - - -struct savage_vtxbuf_t { - GLuint total, used, flushed; /* in 32 bit units */ - GLuint idx; /* for DMA buffers */ - u_int32_t *buf; -}; - -struct savage_cmdbuf_t { - GLuint size; /* size in qwords */ - drm_savage_cmd_header_t *base; /* initial state starts here */ - drm_savage_cmd_header_t *start; /* drawing/state commands start here */ - drm_savage_cmd_header_t *write; /* append stuff here */ -}; - -struct savage_elt_t { - GLuint n; /* number of elts currently allocated */ - drm_savage_cmd_header_t *cmd; /* the indexed drawing command */ -}; - - -struct savage_context_t { - GLint refcount; - - GLcontext *glCtx; - - int lastTexHeap; - driTexHeap *textureHeaps[SAVAGE_NR_TEX_HEAPS]; - driTextureObject swapped; - - driTextureObject *CurrentTexObj[2]; - - /* Hardware state - */ - - savageRegisters regs, oldRegs, globalRegMask; - - /* Manage our own state */ - GLuint new_state; - GLuint new_gl_state; - GLboolean ptexHack; - - /* Command buffer */ - struct savage_cmdbuf_t cmdBuf; - - /* Elt book-keeping */ - struct savage_elt_t elts; - GLint firstElt; - - /* Vertex buffers */ - struct savage_vtxbuf_t dmaVtxBuf, clientVtxBuf; - struct savage_vtxbuf_t *vtxBuf; - - /* aperture base */ - GLubyte *apertureBase[5]; - GLuint aperturePitch; - /* Manage hardware state */ - GLuint dirty; - GLboolean lostContext; - GLuint bTexEn1; - /* One of the few bits of hardware state that can't be calculated - * completely on the fly: - */ - GLuint LcsCullMode; - GLuint texEnvColor; - - /* Vertex state - */ - GLuint vertex_size; - struct tnl_attr_map vertex_attrs[VERT_ATTRIB_MAX]; - GLuint vertex_attr_count; - char *verts; /* points to tnl->clipspace.vertex_buf */ - - /* Rasterization state - */ - GLuint SetupNewInputs; - GLuint SetupIndex; - GLuint RenderIndex; - - GLuint hw_primitive; - GLenum raster_primitive; - GLenum render_primitive; - - GLuint skip; - GLubyte HwPrim; - GLuint HwVertexSize; - - /* Fallback rasterization functions - */ - savage_point_func draw_point; - savage_line_func draw_line; - savage_tri_func draw_tri; - - /* Funny mesa mirrors - */ - GLuint MonoColor; - GLuint ClearColor; - GLfloat depth_scale; - GLfloat hw_viewport[16]; - /* DRI stuff */ - GLuint bufferSize; - - GLframebuffer *glBuffer; - - /* Two flags to keep track of fallbacks. */ - GLuint Fallback; - - GLuint needClip; - - /* These refer to the current draw (front vs. back) buffer: - */ - GLubyte *drawMap; /* draw buffer address in virtual mem */ - GLubyte *readMap; - int drawX; /* origin of drawable in draw buffer */ - int drawY; - GLuint numClipRects; /* cliprects for that buffer */ - GLint currentClip; - drm_clip_rect_t *pClipRects; - - /* use this bit to support single/double buffer */ - GLuint IsDouble; - /* use this to indicate Fullscreen mode */ - GLuint IsFullScreen; /* FIXME - open/close fullscreen is gone, is this needed? */ - GLuint backup_frontOffset; - GLuint backup_backOffset; - GLuint backup_frontBitmapDesc; - GLuint toggle; - GLuint backup_streamFIFO; - GLuint NotFirstFrame; - - GLboolean inSwap; - GLuint lastSwap; - GLuint ctxAge; - GLuint dirtyAge; - GLuint any_contend; /* throttle me harder */ - - /* Scissor state needs to be mirrored so buffered commands can be - * emitted with the old scissor state when scissor state changes. - */ - struct { - GLboolean enabled; - GLint x, y; - GLsizei w, h; - } scissor; - - drm_context_t hHWContext; - drm_hw_lock_t *driHwLock; - GLuint driFd; - - __DRIdrawablePrivate *driDrawable; - __DRIdrawablePrivate *driReadable; - - /** - * Drawable used by Mesa for software fallbacks for reading and - * writing. It is set by Mesa's \c SetBuffer callback, and will always be - * either \c mga_context_t::driDrawable or \c mga_context_t::driReadable. - */ - __DRIdrawablePrivate *mesa_drawable; - - __DRIscreenPrivate *driScreen; - savageScreenPrivate *savageScreen; - drm_savage_sarea_t *sarea; - - GLboolean hw_stencil; - - /* Performance counters - */ - GLuint c_textureSwaps; - - /* Configuration cache - */ - driOptionCache optionCache; - GLint texture_depth; - GLboolean no_rast; - GLboolean float_depth; - GLboolean enable_fastpath; - GLboolean enable_vdma; - GLboolean sync_frames; -}; - -#define SAVAGE_CONTEXT(ctx) ((savageContextPtr)(ctx->DriverCtx)) - -/* To remove all debugging, make sure SAVAGE_DEBUG is defined as a - * preprocessor symbol, and equal to zero. - */ -#ifndef SAVAGE_DEBUG -extern int SAVAGE_DEBUG; -#endif - -#define DEBUG_FALLBACKS 0x001 -#define DEBUG_VERBOSE_API 0x002 -#define DEBUG_VERBOSE_TEX 0x004 -#define DEBUG_VERBOSE_MSG 0x008 -#define DEBUG_DMA 0x010 -#define DEBUG_STATE 0x020 - -#define TARGET_FRONT 0x0 -#define TARGET_BACK 0x1 -#define TARGET_DEPTH 0x2 - -#define SUBPIXEL_X -0.5 -#define SUBPIXEL_Y -0.375 - -#endif |