diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2004-12-29 20:46:27 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2004-12-29 20:46:27 +0000 |
commit | 490e764d7affc093feff80192ed3f3d4642fcb8f (patch) | |
tree | a35f7ee56cdc3b36953b362d28654aa0df7f8920 /src/mesa/drivers/dri/unichrome/via_context.h | |
parent | ef494c06b6e4dc720f32700f899ddad7cadb0a95 (diff) |
Simplfy clear() and swapbuffers() code.
Fix various mishandling of cliprects.
Allow multiple primitives to be emitted to a single dma buffer, which
was largely impossible previously.
Re-enable the fast unclipped render stage.
Diffstat (limited to 'src/mesa/drivers/dri/unichrome/via_context.h')
-rw-r--r-- | src/mesa/drivers/dri/unichrome/via_context.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/mesa/drivers/dri/unichrome/via_context.h b/src/mesa/drivers/dri/unichrome/via_context.h index 10d4777762..995e20698e 100644 --- a/src/mesa/drivers/dri/unichrome/via_context.h +++ b/src/mesa/drivers/dri/unichrome/via_context.h @@ -52,9 +52,12 @@ typedef struct via_texture_object_t *viaTextureObjectPtr; #define VIA_FALLBACK_BLEND_FUNC 0x400 #define VIA_FALLBACK_USER_DISABLE 0x800 -#define VIA_DMA_BUFSIZ 500000 +#define VIA_DMA_BUFSIZ 5000 #define VIA_DMA_HIGHWATER (VIA_DMA_BUFSIZ - 256) +#define VIA_NO_CLIPRECTS 0x1 + + /* Use the templated vertex formats: */ #define TAG(x) via##x @@ -74,6 +77,10 @@ typedef struct { GLuint pitch; GLuint bpp; char *map; + GLuint orig; /* The drawing origin, + * at (drawX,drawY) in screen space. + */ + char *origMap; } viaBuffer, *viaBufferPtr; @@ -81,7 +88,6 @@ struct via_context_t { GLint refcount; GLcontext *glCtx; GLcontext *shareCtx; - unsigned char* front_base; viaBuffer front; viaBuffer back; viaBuffer depth; @@ -98,7 +104,7 @@ struct via_context_t { GLuint stencil_clear_mask; GLfloat depth_max; - GLuint *dma; + GLubyte *dma; viaRegion tex; GLuint isAGP; @@ -127,8 +133,8 @@ struct via_context_t { /* drmBufPtr dma_buffer; */ - unsigned char* dmaAddr; GLuint dmaLow; + GLuint dmaCliprectAddr; GLuint dmaLastPrim; GLboolean useAgp; @@ -202,7 +208,6 @@ struct via_context_t { int vertexSize; int vertexFormat; GLint lastStamp; - GLboolean stippleInHw; GLenum TexEnvImageFmt[2]; GLuint ClearColor; @@ -213,16 +218,15 @@ struct via_context_t { GLboolean doPageFlip; /*=* John Sheng [2003.5.31] flip *=*/ GLuint currentPage; - char *drawMap; /* draw buffer address in virtual mem */ - char *readMap; + + viaBuffer *drawBuffer; + viaBuffer *readBuffer; int drawX; /* origin of drawable in draw buffer */ int drawY; int drawW; int drawH; - int drawPitch; - int readPitch; int drawXoff; GLuint numClipRects; /* cliprects for that buffer */ drm_clip_rect_t *pClipRects; @@ -325,6 +329,8 @@ extern void viaXMesaWindowMoved(viaContextPtr vmesa); extern void viaTexCombineState(viaContextPtr vmesa, const struct gl_tex_env_combine_state * combine, unsigned unit ); +/* Via hw already adjusted for GL pixel centers: + */ #define SUBPIXEL_X 0 #define SUBPIXEL_Y 0 |