[Xorg-commit] xc/lib/GL/mesa/src/drv/sis sis_alloc.c,1.1.4.1,1.1.4.2 sis_alloc.h,1.1,1.1.4.1 sis_clear.c,1.1.4.1,1.1.4.2 sis_common2.h,1.1,1.1.4.1 sis_context.c,1.1,1.1.4.1 sis_context.h,1.1,1.1.4.1 sis_dd.c,1.1,1.1.4.1 sis_dd.h,1.1,1.1.4.1 sis_debug.c,1.1.4.1,1.1.4.2 sis_debug.h,1.1,1.1.4.1 sis_fog.c,1.1.4.1,1.1.4.2 sis_lock.c,1.1,1.1.4.1 sis_lock.h,1.1.4.1,1.1.4.2 sis_reg.h,1.1.4.1,1.1.4.2 sis_screen.c,1.1,1.1.4.1 sis_screen.h,1.1,1.1.4.1 sis_span.c,1.1.4.1,1.1.4.2 sis_span.h,1.1,1.1.4.1 sis_state.c,1.1,1.1.4.1 sis_state.h,1.1,1.1.4.1 sis_stencil.c,1.1.4.1,1.1.4.2 sis_stencil.h,1.1,1.1.4.1 sis_tex.c,1.1,1.1.4.1 sis_tex.h,1.1,1.1.4.1 sis_texstate.c,1.1,1.1.4.1 sis_tris.c,1.1,1.1.4.1 sis_tris.h,1.1,1.1.4.1 sis_tritmp.h,1.1,1.1.4.1 sis_vb.c,1.1,1.1.4.1 sis_vb.h,1.1,1.1.4.1
Kaleb Keithley
xorg-commit at pdx.freedesktop.org
Sat Dec 20 02:28:58 EET 2003
- Previous message: [Xorg-commit] xc/lib/X11 ConnDis.c,1.1.4.3,1.1.4.4 Xlib.h,1.1.4.5,1.1.4.6
- Next message: [Xorg-commit] xc/programs/Xserver/hw/xwin X.ico,1.1,1.1.6.1 win.h,1.1.4.1.2.3,1.1.4.1.2.4 winmultiwindowclass.c,1.1,1.1.6.1 winwin32rootless.c,1.1.2.2,1.1.2.3 winwin32rootlesswndproc.c,1.1.2.2,1.1.2.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: kaleb
Update of /cvs/xorg/xc/lib/GL/mesa/src/drv/sis
In directory pdx:/home/kaleb/xorg/xc.XORG-CURRENT/lib/GL/mesa/src/drv/sis
Modified Files:
Tag: XORG-CURRENT
sis_alloc.c sis_alloc.h sis_clear.c sis_common2.h
sis_context.c sis_context.h sis_dd.c sis_dd.h sis_debug.c
sis_debug.h sis_fog.c sis_lock.c sis_lock.h sis_reg.h
sis_screen.c sis_screen.h sis_span.c sis_span.h sis_state.c
sis_state.h sis_stencil.c sis_stencil.h sis_tex.c sis_tex.h
sis_texstate.c sis_tris.c sis_tris.h sis_tritmp.h sis_vb.c
sis_vb.h
Log Message:
merge XFree86 RC2 (4.3.99.902) from vendor branch
Index: sis_alloc.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_alloc.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_alloc.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_alloc.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.c,v 1.9 2003/11/06 18:37:55 tsi Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.c,v 1.10 2003/12/09 00:15:20 alanh Exp $ */
/*
* Authors:
@@ -32,13 +33,13 @@
* Eric Anholt <anholt at FreeBSD.org>
*/
-#include <assert.h>
-
#include "sis_context.h"
#include "sis_alloc.h"
#include "sis_common.h"
+#include <unistd.h>
+
#define Z_BUFFER_HW_ALIGNMENT 16
#define Z_BUFFER_HW_PLUS (16 + 4)
@@ -46,15 +47,7 @@
#define DRAW_BUFFER_HW_ALIGNMENT 16
#define DRAW_BUFFER_HW_PLUS (16 + 4)
-#ifdef ROUNDUP
-#undef ROUNDUP
-#endif
-#define ROUNDUP(nbytes, pad) (((nbytes)+(pad-1))/(pad))
-
-#ifdef ALIGNMENT
-#undef ALIGNMENT
-#endif
-#define ALIGNMENT(value, align) (ROUNDUP((value),(align))*(align))
+#define ALIGNMENT(value, align) (((value) + (align) - 1) / (align) * (align))
static int _total_video_memory_used = 0;
static int _total_video_memory_count = 0;
@@ -172,12 +165,13 @@
smesa->depthbuffer = (void *) addr;
smesa->depthPitch = width2;
+ smesa->depthOffset = (unsigned long)addr - (unsigned long)smesa->FbBase;
/* set pZClearPacket */
memset( &smesa->zClearPacket, 0, sizeof(ENGPACKET) );
smesa->zClearPacket.dwSrcPitch = (z_depth == 2) ? 0x80000000 : 0xf0000000;
- smesa->zClearPacket.dwDestBaseAddr = (unsigned long)(addr -
+ smesa->zClearPacket.dwDestBaseAddr = (GLint)(addr -
(unsigned long)smesa->FbBase);
smesa->zClearPacket.wDestPitch = width2;
smesa->zClearPacket.stdwDestPos.wY = 0;
@@ -225,7 +219,7 @@
addr = (char *)ALIGNMENT( (unsigned long)addr, DRAW_BUFFER_HW_ALIGNMENT );
smesa->backbuffer = addr;
- smesa->backOffset = (unsigned long)(addr - (unsigned long)smesa->FbBase);
+ smesa->backOffset = (GLint)(addr - (unsigned long)smesa->FbBase);
smesa->backPitch = width2 * depth;
memset ( &smesa->cbClearPacket, 0, sizeof(ENGPACKET) );
Index: sis_alloc.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_alloc.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_alloc.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_alloc.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.h,v 1.1 2003/09/28 20:15:33 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_alloc.h,v 1.2 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
Index: sis_clear.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_clear.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_clear.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_clear.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_clear.c,v 1.7 2003/11/06 18:37:56 tsi Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_clear.c,v 1.8 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
@@ -39,11 +40,9 @@
#include "swrast/swrast.h"
#include "mmath.h"
-#if 0
static GLbitfield sis_3D_Clear( GLcontext * ctx, GLbitfield mask,
GLint x, GLint y, GLint width,
GLint height );
-#endif
static void sis_clear_color_buffer( GLcontext *ctx, GLenum mask, GLint x,
GLint y, GLint width, GLint height );
static void sis_clear_z_stencil_buffer( GLcontext * ctx,
@@ -56,7 +55,7 @@
GLubyte blue, GLubyte alpha )
{
/* XXX only RGB565 and ARGB8888 */
- switch (GET_ColorFormat(smesa))
+ switch (smesa->colorFormat)
{
case DST_FORMAT_ARGB_8888:
smesa->clearColorPattern = (alpha << 24) +
@@ -77,24 +76,18 @@
{
GLuint zPattern;
- if (z <= 0.0f)
- zPattern = 0x0;
- else if (z >= 1.0f)
- zPattern = 0xFFFFFFFF;
- else
- zPattern = doFPtoFixedNoRound( z, 32 );
-
switch (smesa->zFormat)
{
case SiS_ZFORMAT_Z16:
- zPattern = zPattern >> 16;
+ zPattern = FLOAT_TO_USHORT(z);
zPattern |= zPattern << 16;
break;
case SiS_ZFORMAT_S8Z24:
- zPattern = zPattern >> 8;
+ zPattern = FLOAT_TO_UINT(z) >> 8;
zPattern |= stencil << 24;
break;
case SiS_ZFORMAT_Z32:
+ zPattern = FLOAT_TO_UINT(z);
break;
default:
assert(0);
@@ -123,19 +116,26 @@
width1 = width;
height1 = height;
}
+ /* XXX: Scissoring */
LOCK_HARDWARE();
- /* The 3D_Clear code is broken and I've failed to fix it so far. */
-#if 0
- if (( ctx->Visual.stencilBits &&
- ((mask | GL_DEPTH_BUFFER_BIT) ^ (mask | GL_STENCIL_BUFFER_BIT)) ) ||
- (*(GLint *)(ctx->Color.ColorMask) != 0xffffffff) )
+ /* Mask out any non-existent buffers */
+ if (ctx->Visual.depthBits == 0 || !ctx->Depth.Mask)
+ mask &= ~DD_DEPTH_BIT;
+ if (ctx->Visual.stencilBits == 0)
+ mask &= ~DD_STENCIL_BIT;
+
+ /* The 3d clear code is use for masked clears because I don't know how to do
+ * masked clears with the 2d functions. 3d isn't used in general because
+ * it's slower, even in the case of clearing multiple buffers
+ */
+ if ((smesa->current.hwDstMask != 0xffffffff &&
+ (mask & (DD_BACK_LEFT_BIT | DD_FRONT_LEFT_BIT)) != 0) ||
+ (ctx->Stencil.WriteMask[0] < 0xff && (mask & DD_STENCIL_BIT) != 0) )
{
- /* only Clear either depth or stencil buffer */
mask = sis_3D_Clear( ctx, mask, x1, y1, width1, height1 );
}
-#endif
if ( mask & DD_FRONT_LEFT_BIT || mask & DD_BACK_LEFT_BIT) {
sis_clear_color_buffer( ctx, mask, x1, y1, width1, height1 );
@@ -185,13 +185,6 @@
sisUpdateZStencilPattern( smesa, ctx->Depth.Clear, s );
}
-#define MAKE_CLEAR_COLOR_8888(cc) \
- ( (((GLint)(((GLubyte *)(cc))[3] * 255.0 + 0.5))<<24) | \
- (((GLint)(((GLubyte *)(cc))[0] * 255.0 + 0.5))<<16) | \
- (((GLint)(((GLubyte *)(cc))[1] * 255.0 + 0.5))<<8) | \
- ((GLint)(((GLubyte *)(cc))[2] * 255.0 + 0.5)) )
-
-#if 0
static GLbitfield
sis_3D_Clear( GLcontext * ctx, GLbitfield mask,
GLint x, GLint y, GLint width, GLint height )
@@ -200,97 +193,61 @@
__GLSiSHardware *current = &smesa->current;
-#define RESETSTATE (GFLAG_ENABLESETTING | GFLAG_ENABLESETTING2 | \
- GFLAG_ZSETTING | GFLAG_DESTSETTING | \
- GFLAG_STENCILSETTING | GFLAG_CLIPPING)
-#define STEN_OP (SiS_SFAIL_REPLACE | SiS_SPASS_ZFAIL_REPLACE | \
- SiS_SPASS_ZPASS_REPLACE)
-
float left, top, right, bottom, zClearVal;
- GLint dwColor=0;
- GLint bClrColor, bClrDepth, bClrStencil;
+ GLboolean bClrColor, bClrDepth, bClrStencil;
GLint dwPrimitiveSet;
- GLint dwEnable1, dwEnable2 = 0, dwDepthMask=0, dwSten1=0, dwSten2=0;
-
+ GLint dwEnable1 = 0, dwEnable2 = MASK_ColorMaskWriteEnable;
+ GLint dwDepthMask = 0, dwSten1 = 0, dwSten2 = 0;
+ GLint dirtyflags = GFLAG_ENABLESETTING | GFLAG_ENABLESETTING2 |
+ GFLAG_CLIPPING | GFLAG_DESTSETTING;
int count;
XF86DRIClipRectPtr pExtents;
- bClrColor = 0;
- bClrDepth = (mask & DD_DEPTH_BIT) &&
- (ctx->Visual.depthBits);
- bClrStencil = (mask & DD_STENCIL_BIT) &&
- (ctx->Visual.stencilBits);
+ bClrColor = (mask & (DD_BACK_LEFT_BIT | DD_FRONT_LEFT_BIT)) != 0;
+ bClrDepth = (mask & DD_DEPTH_BIT) != 0;
+ bClrStencil = (mask & DD_STENCIL_BIT) != 0;
- /* update HW state */
- /* TODO: if enclosing sis_Clear by sis_RenderStart and sis_RenderEnd is
- * uniform, but it seems needless to do so
- */
- if (smesa->GlobalFlag)
+ if (smesa->GlobalFlag & GFLAG_RENDER_STATES)
sis_update_render_state( smesa );
- if (bClrColor)
- dwColor = MAKE_CLEAR_COLOR_8888( ctx->Color.ClearColor );
- else
- dwEnable2 |= MASK_ColorMaskWriteEnable;
-
- if (bClrDepth && bClrStencil) {
- GLint wmask, smask;
- GLstencil sten;
-
- zClearVal = ctx->Depth.Clear;
- sten = ctx->Stencil.Clear;
- wmask = ctx->Stencil.WriteMask[0];
- smask = 0xff;
-
+ if (bClrStencil) {
+ dwSten1 = STENCIL_FORMAT_8 | SiS_STENCIL_ALWAYS |
+ (ctx->Stencil.Clear << 8) | 0xff;
+ dwSten2 = SiS_SFAIL_REPLACE | SiS_SPASS_ZFAIL_REPLACE |
+ SiS_SPASS_ZPASS_REPLACE;
dwEnable1 = MASK_ZWriteEnable | MASK_StencilTestEnable;
dwEnable2 |= MASK_ZMaskWriteEnable;
- dwDepthMask = ((wmask << 24) | 0x00ffffff);
- dwSten1 = STENCIL_FORMAT_8 | (((GLint) sten << 8) | smask) |
- SiS_STENCIL_ALWAYS;
- dwSten2 = STEN_OP;
+ dwDepthMask |= ctx->Stencil.WriteMask[0] << 24;
} else if (bClrDepth) {
- zClearVal = ctx->Depth.Clear;
dwEnable1 = MASK_ZWriteEnable;
dwEnable2 |= MASK_ZMaskWriteEnable;
- dwDepthMask = 0xffffff;
- } else if (bClrStencil) {
- GLint wmask, smask;
- GLstencil sten;
-
- sten = (GLstencil)ctx->Stencil.Clear;
- wmask = (GLint)ctx->Stencil.WriteMask[0];
- smask = 0xff;
-
- zClearVal = 0;
- dwEnable1 = MASK_ZWriteEnable | MASK_StencilTestEnable;
- dwEnable2 |= MASK_ZMaskWriteEnable;
- dwDepthMask = (wmask << 24) & 0xff000000;
- dwSten1 = STENCIL_FORMAT_8 | (((GLint) sten << 8) | smask) |
- SiS_STENCIL_ALWAYS;
- dwSten2 = STEN_OP;
- } else {
- dwEnable2 &= ~MASK_ZMaskWriteEnable;
- dwEnable1 = 0L;
- zClearVal = 1;
}
- mWait3DCmdQueue (35);
+ if (bClrDepth) {
+ zClearVal = ctx->Depth.Clear;
+ if (ctx->Visual.depthBits != 32)
+ dwDepthMask |= 0x00ffffff;
+ else
+ dwDepthMask = 0xffffffff;
+ } else
+ zClearVal = 0.0;
+
+ mWait3DCmdQueue(9);
MMIO(REG_3D_TEnable, dwEnable1);
MMIO(REG_3D_TEnable2, dwEnable2);
- if (bClrDepth | bClrStencil) {
- MMIO(REG_3D_ZSet, current->hwZ);
- MMIO(REG_3D_ZStWriteMask, dwDepthMask);
- MMIO(REG_3D_ZAddress, current->hwOffsetZ);
+ if (bClrDepth || bClrStencil) {
+ MMIO(REG_3D_ZSet, (current->hwZ & ~MASK_ZTestMode) | SiS_Z_COMP_ALWAYS);
+ dirtyflags |= GFLAG_ZSETTING;
}
if (bClrColor) {
- MMIO(REG_3D_DstSet, (current->hwDstSet & 0x00ffffff) | 0xc000000);
- MMIO(REG_3D_DstAddress, current->hwOffsetDest);
+ MMIO(REG_3D_DstSet, (current->hwDstSet & ~MASK_ROP2) | LOP_COPY);
} else {
MMIO(REG_3D_DstAlphaWriteMask, 0L);
}
if (bClrStencil) {
MMIO(REG_3D_StencilSet, dwSten1);
MMIO(REG_3D_StencilSet2, dwSten2);
+ dirtyflags |= GFLAG_STENCILSETTING;
}
if (mask & DD_FRONT_LEFT_BIT) {
@@ -303,9 +260,9 @@
while(count--) {
left = x;
- right = x + width - 1;
+ right = x + width;
top = y;
- bottom = y + height - 1;
+ bottom = y + height;
if (pExtents != NULL) {
GLuint x1, y1, x2, y2;
@@ -319,58 +276,58 @@
right = (right > x2) ? x2 : right;
top = (top > y1) ? top : y1;
bottom = (bottom > y2) ? y2 : bottom;
+ pExtents++;
if (left > right || top > bottom)
continue;
- pExtents++;
}
- MMIO(REG_3D_ClipTopBottom, ((GLint) top << 13) | (GLint) bottom);
- MMIO(REG_3D_ClipLeftRight, ((GLint) left << 13) | (GLint) right);
+ mWait3DCmdQueue(20);
+
+ MMIO(REG_3D_ClipTopBottom, ((GLint)top << 13) | (GLint)bottom);
+ MMIO(REG_3D_ClipLeftRight, ((GLint)left << 13) | (GLint)right);
/* the first triangle */
- dwPrimitiveSet = (OP_3D_TRIANGLE_DRAW | OP_3D_FIRE_TSARGBc |
- SHADE_FLAT_VertexC);
+ dwPrimitiveSet = OP_3D_TRIANGLE_DRAW | OP_3D_FIRE_TSARGBc |
+ SHADE_FLAT_VertexC;
MMIO(REG_3D_PrimitiveSet, dwPrimitiveSet);
- MMIO(REG_3D_TSZa, *(GLint *) & zClearVal);
- MMIO(REG_3D_TSXa, *(GLint *) & right);
- MMIO(REG_3D_TSYa, *(GLint *) & top);
- MMIO(REG_3D_TSARGBa, dwColor);
+ MMIO(REG_3D_TSZa, *(GLint *) &zClearVal);
+ MMIO(REG_3D_TSXa, *(GLint *) &right);
+ MMIO(REG_3D_TSYa, *(GLint *) &top);
+ MMIO(REG_3D_TSARGBa, smesa->clearColorPattern);
- MMIO(REG_3D_TSZb, *(GLint *) & zClearVal);
- MMIO(REG_3D_TSXb, *(GLint *) & left);
- MMIO(REG_3D_TSYb, *(GLint *) & top);
- MMIO(REG_3D_TSARGBb, dwColor);
+ MMIO(REG_3D_TSZb, *(GLint *) &zClearVal);
+ MMIO(REG_3D_TSXb, *(GLint *) &left);
+ MMIO(REG_3D_TSYb, *(GLint *) &top);
+ MMIO(REG_3D_TSARGBb, smesa->clearColorPattern);
- MMIO(REG_3D_TSZc, *(GLint *) & zClearVal);
- MMIO(REG_3D_TSXc, *(GLint *) & left);
- MMIO(REG_3D_TSYc, *(GLint *) & bottom);
- MMIO(REG_3D_TSARGBc, dwColor);
+ MMIO(REG_3D_TSZc, *(GLint *) &zClearVal);
+ MMIO(REG_3D_TSXc, *(GLint *) &left);
+ MMIO(REG_3D_TSYc, *(GLint *) &bottom);
+ MMIO(REG_3D_TSARGBc, smesa->clearColorPattern);
/* second triangle */
- dwPrimitiveSet = (OP_3D_TRIANGLE_DRAW | OP_3D_FIRE_TSARGBb |
- SHADE_FLAT_VertexB);
+ dwPrimitiveSet = OP_3D_TRIANGLE_DRAW | OP_3D_FIRE_TSARGBb |
+ SHADE_FLAT_VertexB;
MMIO(REG_3D_PrimitiveSet, dwPrimitiveSet);
- MMIO(REG_3D_TSZb, *(GLint *) & zClearVal);
- MMIO(REG_3D_TSXb, *(GLint *) & right);
- MMIO(REG_3D_TSYb, *(GLint *) & bottom);
- MMIO(REG_3D_TSARGBb, dwColor);
- }
+ MMIO(REG_3D_TSZb, *(GLint *) &zClearVal);
+ MMIO(REG_3D_TSXb, *(GLint *) &right);
+ MMIO(REG_3D_TSYb, *(GLint *) &bottom);
+ MMIO(REG_3D_TSARGBb, smesa->clearColorPattern);
+ }
- mEndPrimitive ();
+ mEndPrimitive();
- smesa->GlobalFlag |= RESETSTATE;
+ /* If DD_FRONT_LEFT_BIT is set, we've only cleared the front buffer so far */
+ if ((mask & DD_FRONT_LEFT_BIT) != 0 && (mask & DD_BACK_LEFT_BIT) != 0)
+ sis_3D_Clear( ctx, DD_BACK_LEFT_BIT, x, y, width, height );
-#undef RESETSTATE
-#undef STEN_OP
-
- /*
- * TODO: will mesa call several times if multiple draw buffer
- */
- return (mask & ~(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT));
+ smesa->GlobalFlag |= dirtyflags;
+
+ return mask & ~(DD_DEPTH_BIT | DD_STENCIL_BIT | DD_BACK_LEFT_BIT |
+ DD_FRONT_LEFT_BIT);
}
-#endif
static void
sis_bitblt_clear_cmd( sisContextPtr smesa, ENGPACKET * pkt )
@@ -391,7 +348,7 @@
}
MMIO(REG_CMD0, *(GLint *) & pkt->stdwCmd);
- MMIO(REG_QueueLen, -1);
+ MMIO(REG_CommandQueue, -1);
}
static void
@@ -401,7 +358,7 @@
sisContextPtr smesa = SIS_CONTEXT(ctx);
int count;
- GLuint depth = GET_DEPTH (smesa);
+ GLuint depth = smesa->bytesPerPixel;
XF86DRIClipRectPtr pExtents = NULL;
GLint xx, yy;
GLint x0, y0, width0, height0;
@@ -480,11 +437,6 @@
{
sisContextPtr smesa = SIS_CONTEXT(ctx);
- /* TODO: check write mask */
-
- if ( smesa->depthbuffer == NULL )
- return;
-
/* TODO: consider alignment of width, height? */
smesa->zClearPacket.stdwDestPos.wY = y;
smesa->zClearPacket.stdwDestPos.wX = x;
Index: sis_common2.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_common2.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_common2.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_common2.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+IN NO EVENT SHALL SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_common2.h,v 1.2 2003/09/29 11:25:18 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_common2.h,v 1.3 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
@@ -46,7 +47,6 @@
#ifdef GLX_DIRECT_RENDERING
# include <stdio.h>
-# include <unistd.h>
# include <stdlib.h>
# include <string.h>
typedef struct _Box
Index: sis_context.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_context.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_context.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_context.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_context.c,v 1.2 2003/09/29 11:25:18 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_context.c,v 1.3 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
@@ -69,41 +70,32 @@
void
WaitEngIdle (sisContextPtr smesa)
{
- GLubyte *IOBase = GET_IOBase (smesa);
- GLbyte cEngineState;
+ GLuint engineState;
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- while (((cEngineState & 0x80) == 0) ||
- ((cEngineState & 0x40) == 0) || ((cEngineState & 0x20) == 0))
- {
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- }
+ do {
+ engineState = MMIO_READ(REG_CommandQueue);
+ } while ((engineState & SiS_EngIdle) != SiS_EngIdle);
}
void
Wait2DEngIdle (sisContextPtr smesa)
{
- GLubyte *IOBase = GET_IOBase (smesa);
- GLbyte cEngineState;
+ GLuint engineState;
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- while (!(cEngineState & 0x80))
- {
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- }
+ do {
+ engineState = MMIO_READ(REG_CommandQueue);
+ } while ((engineState & SiS_EngIdle2d) != SiS_EngIdle2d);
}
/* To be called from mWait3DCmdQueue. Separate function for profiling
* purposes, and speed doesn't matter because we're spinning anyway.
- * This function should use usleeps to release cpu probably, but I have yet
- * to see it get called.
*/
void
WaitingFor3dIdle(sisContextPtr smesa, int wLen)
{
- while ( *(smesa->CurrentQueueLenPtr) < wLen) {
+ while (*(smesa->CurrentQueueLenPtr) < wLen) {
*(smesa->CurrentQueueLenPtr) =
- (*(GLint *)(GET_IOBase(smesa) + REG_QueueLen) & MASK_QueueLen) - 20;
+ (MMIO_READ(REG_CommandQueue) & MASK_QueueLen) - 20;
}
}
@@ -218,6 +210,9 @@
_tnl_CreateContext( ctx );
_swsetup_CreateContext( ctx );
+ _swrast_allow_pixel_fog( ctx, GL_TRUE );
+ _swrast_allow_vertex_fog( ctx, GL_FALSE );
+
sisDDInitStateFuncs( ctx );
sisDDInitState( smesa ); /* Initializes smesa->zFormat, important */
sisInitVB( ctx );
@@ -382,7 +377,7 @@
__GLSiSHardware *prev = &smesa->prev;
mWait3DCmdQueue (55);
- if (smesa->clearTexCache) {
+ if (smesa->clearTexCache || (smesa->GlobalFlag & GFLAG_TEXTUREADDRESS)) {
MMIO(REG_3D_TEnable, prev->hwCapEnable | MASK_TextureCacheClear);
MMIO(REG_3D_TEnable, prev->hwCapEnable);
smesa->clearTexCache = GL_FALSE;
@@ -404,9 +399,6 @@
MMIO(REG_3D_TextureBorderColor, prev->texture[0].hwTextureBorderColor);
if (smesa->GlobalFlag & GFLAG_TEXTUREADDRESS) {
- MMIO(REG_3D_TEnable, prev->hwCapEnable | MASK_TextureCacheClear);
- MMIO(REG_3D_TEnable, prev->hwCapEnable);
-
switch ((prev->texture[0].hwTextureSet & MASK_TextureLevel) >> 8)
{
case 11:
@@ -489,183 +481,18 @@
/* texture environment */
if (smesa->GlobalFlag & GFLAG_TEXTUREENV) {
MMIO(REG_3D_TextureBlendFactor, prev->hwTexEnvColor);
- MMIO(REG_3D_TextureColorBlendSet0, prev->hwTexBlendClr0);
+ MMIO(REG_3D_TextureColorBlendSet0, prev->hwTexBlendColor0);
MMIO(REG_3D_TextureAlphaBlendSet0, prev->hwTexBlendAlpha0);
}
if (smesa->GlobalFlag & GFLAG_TEXTUREENV_1) {
MMIO(REG_3D_TextureBlendFactor, prev->hwTexEnvColor);
- MMIO(REG_3D_TextureColorBlendSet1, prev->hwTexBlendClr1);
+ MMIO(REG_3D_TextureColorBlendSet1, prev->hwTexBlendColor1);
MMIO(REG_3D_TextureAlphaBlendSet1, prev->hwTexBlendAlpha1);
}
smesa->GlobalFlag &= ~GFLAG_TEXTURE_STATES;
}
-/* Updates all state.
- * Called when the lock is taken and another context had the lock previously.
- */
-void
-sis_validate_all_state (sisContextPtr smesa)
-{
- __GLSiSHardware *prev = &smesa->prev;
-
- mEndPrimitive ();
- mWait3DCmdQueue (40);
-
- /* Enable Setting */
- MMIO(REG_3D_TEnable, prev->hwCapEnable);
- MMIO(REG_3D_TEnable2, prev->hwCapEnable2);
-
- /* Z Setting */
- /* if (prev->hwCapEnable & MASK_ZTestEnable) { */
- MMIO(REG_3D_ZSet, prev->hwZ);
- MMIO(REG_3D_ZStWriteMask, prev->hwZMask);
- MMIO(REG_3D_ZAddress, prev->hwOffsetZ);
- /* } */
-
- /* Alpha Setting */
- if (prev->hwCapEnable & MASK_AlphaTestEnable)
- MMIO(REG_3D_AlphaSet, prev->hwAlpha);
-
- /* Destination Setting */
- MMIO(REG_3D_DstSet, prev->hwDstSet);
- MMIO(REG_3D_DstAlphaWriteMask, prev->hwDstMask);
- MMIO(REG_3D_DstAddress, prev->hwOffsetDest);
-
- /* Line Setting */
-#if 0
- if (prev->hwCapEnable2 & MASK_LinePatternEnable)
- MMIO(REG_3D_LinePattern, prev->hwLinePattern);
-#endif
-
- /* Fog Setting */
- if (prev->hwCapEnable & MASK_FogEnable) {
- MMIO(REG_3D_FogSet, prev->hwFog);
- MMIO(REG_3D_FogInverseDistance, prev->hwFogInverse);
- MMIO(REG_3D_FogFarDistance, prev->hwFogFar);
- MMIO(REG_3D_FogFactorDensity, prev->hwFogDensity);
- }
-
- /* Stencil Setting */
- if (prev->hwCapEnable & MASK_StencilTestEnable) {
- MMIO(REG_3D_StencilSet, prev->hwStSetting);
- MMIO(REG_3D_StencilSet2, prev->hwStSetting2);
- }
-
- /* Miscellaneous Setting */
- if (prev->hwCapEnable & MASK_BlendEnable)
- MMIO(REG_3D_DstBlendMode, prev->hwDstSrcBlend);
-
- MMIO(REG_3D_ClipTopBottom, prev->clipTopBottom);
- MMIO(REG_3D_ClipLeftRight, prev->clipLeftRight);
-
- /* TODO */
- /* Texture Setting */
- /* if (prev->hwCapEnable & MASK_TextureEnable) */
- {
- MMIO(REG_3D_TEnable, prev->hwCapEnable | MASK_TextureCacheClear);
-
- MMIO(REG_3D_TEnable, prev->hwCapEnable);
-
- MMIO(REG_3D_TextureSet, prev->texture[0].hwTextureSet);
- MMIO(REG_3D_TextureMip, prev->texture[0].hwTextureMip);
- /*
- MMIO(REG_3D_TextureTransparencyColorHigh, prev->texture[0].hwTextureClrHigh);
- MMIO(REG_3D_TextureTransparencyColorLow, prev->texture[0].hwTextureClrLow);
- */
- MMIO(REG_3D_TextureBorderColor, prev->texture[0].hwTextureBorderColor);
-
- switch ((prev->texture[0].hwTextureSet & MASK_TextureLevel) >> 8)
- {
- case 11:
- MMIO(REG_3D_TextureAddress11, prev->texture[0].texOffset11);
- case 10:
- MMIO(REG_3D_TextureAddress10, prev->texture[0].texOffset10);
- MMIO(REG_3D_TexturePitch10, prev->texture[0].texPitch10);
- case 9:
- MMIO(REG_3D_TextureAddress9, prev->texture[0].texOffset9);
- case 8:
- MMIO(REG_3D_TextureAddress8, prev->texture[0].texOffset8);
- MMIO(REG_3D_TexturePitch8, prev->texture[0].texPitch89);
- case 7:
- MMIO(REG_3D_TextureAddress7, prev->texture[0].texOffset7);
- case 6:
- MMIO(REG_3D_TextureAddress6, prev->texture[0].texOffset6);
- MMIO(REG_3D_TexturePitch6, prev->texture[0].texPitch67);
- case 5:
- MMIO(REG_3D_TextureAddress5, prev->texture[0].texOffset5);
- case 4:
- MMIO(REG_3D_TextureAddress4, prev->texture[0].texOffset4);
- MMIO(REG_3D_TexturePitch4, prev->texture[0].texPitch45);
- case 3:
- MMIO(REG_3D_TextureAddress3, prev->texture[0].texOffset3);
- case 2:
- MMIO(REG_3D_TextureAddress2, prev->texture[0].texOffset2);
- MMIO(REG_3D_TexturePitch2, prev->texture[0].texPitch23);
- case 1:
- MMIO(REG_3D_TextureAddress1, prev->texture[0].texOffset1);
- case 0:
- MMIO(REG_3D_TextureAddress0, prev->texture[0].texOffset0);
- MMIO(REG_3D_TexturePitch0, prev->texture[0].texPitch01);
- }
-
- /* TODO */
- /* if (smesa->ctx->Texture.Unit[1].ReallyEnabled) */
- {
- MMIO(REG_3D_Texture1Set, prev->texture[1].hwTextureSet);
- MMIO(REG_3D_Texture1Mip, prev->texture[1].hwTextureMip);
- /*
- MMIO(REG_3D_Texture1TransparencyColorHigh, prev->texture[1].hwTextureClrHigh);
- MMIO(REG_3D_Texture1TransparencyColorLow, prev->texture[1].hwTextureClrLow);
- */
- MMIO(REG_3D_Texture1BorderColor, prev->texture[1].hwTextureBorderColor);
-
- switch ((prev->texture[1].hwTextureSet & MASK_TextureLevel) >> 8)
- {
- case 11:
- MMIO(REG_3D_Texture1Address11, prev->texture[1].texOffset11);
- case 10:
- MMIO(REG_3D_Texture1Address10, prev->texture[1].texOffset10);
- MMIO(REG_3D_Texture1Pitch10, prev->texture[1].texPitch10);
- case 9:
- MMIO(REG_3D_Texture1Address9, prev->texture[1].texOffset9);
- case 8:
- MMIO(REG_3D_Texture1Address8, prev->texture[1].texOffset8);
- MMIO(REG_3D_Texture1Pitch8, prev->texture[1].texPitch89);
- case 7:
- MMIO(REG_3D_Texture1Address7, prev->texture[1].texOffset7);
- case 6:
- MMIO(REG_3D_Texture1Address6, prev->texture[1].texOffset6);
- MMIO(REG_3D_Texture1Pitch6, prev->texture[1].texPitch67);
- case 5:
- MMIO(REG_3D_Texture1Address5, prev->texture[1].texOffset5);
- case 4:
- MMIO(REG_3D_Texture1Address4, prev->texture[1].texOffset4);
- MMIO(REG_3D_Texture1Pitch4, prev->texture[1].texPitch45);
- case 3:
- MMIO(REG_3D_Texture1Address3, prev->texture[1].texOffset3);
- case 2:
- MMIO(REG_3D_Texture1Address2, prev->texture[1].texOffset2);
- MMIO(REG_3D_Texture1Pitch2, prev->texture[1].texPitch23);
- case 1:
- MMIO(REG_3D_Texture1Address1, prev->texture[1].texOffset1);
- case 0:
- MMIO(REG_3D_Texture1Address0, prev->texture[1].texOffset0);
- MMIO(REG_3D_Texture1Pitch0, prev->texture[1].texPitch01);
- }
- }
-
- /* texture environment */
- MMIO(REG_3D_TextureBlendFactor, prev->hwTexEnvColor);
- MMIO(REG_3D_TextureColorBlendSet0, prev->hwTexBlendClr0);
- MMIO(REG_3D_TextureColorBlendSet1, prev->hwTexBlendClr1);
- MMIO(REG_3D_TextureAlphaBlendSet0, prev->hwTexBlendAlpha0);
- MMIO(REG_3D_TextureAlphaBlendSet1, prev->hwTexBlendAlpha1);
- }
-
- smesa->GlobalFlag = 0;
-}
-
void
sis_fatal_error (void)
{
Index: sis_context.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_context.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_context.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_context.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_context.h,v 1.2 2003/09/29 11:25:18 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_context.h,v 1.3 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
@@ -55,8 +56,12 @@
/* Flags for software fallback cases:
*/
#define SIS_FALLBACK_TEXTURE 0x0001
-#define SIS_FALLBACK_DRAW_BUFFER 0x0002
-#define SIS_FALLBACK_STENCIL 0x0004
+#define SIS_FALLBACK_TEXTURE0 0x0002
+#define SIS_FALLBACK_TEXTURE1 0x0004
+#define SIS_FALLBACK_TEXENV0 0x0008
+#define SIS_FALLBACK_TEXENV1 0x0010
+#define SIS_FALLBACK_DRAW_BUFFER 0x0020
+#define SIS_FALLBACK_STENCIL 0x0040
#define SIS_FALLBACK_FORCE 0x8000
/* Flags for hardware state that needs to be updated */
@@ -194,8 +199,8 @@
GLint hwTexEnvColor; /* Texture Blending Setting */
- GLint hwTexBlendClr0;
- GLint hwTexBlendClr1;
+ GLint hwTexBlendColor0;
+ GLint hwTexBlendColor1;
GLint hwTexBlendAlpha0;
GLint hwTexBlendAlpha1;
@@ -335,6 +340,7 @@
unsigned int backOffset;
unsigned int backPitch;
GLvoid *depthbuffer;
+ unsigned int depthOffset;
unsigned int depthPitch;
void *zbFree, *bbFree; /* Cookies for freeing buffers */
ENGPACKET zClearPacket, cbClearPacket;
@@ -357,25 +363,14 @@
sisScreenPtr sisScreen; /* Screen private DRI data */
SISSAREAPrivPtr sarea; /* Private SAREA data */
+
};
#define SIS_CONTEXT(ctx) ((sisContextPtr)(ctx->DriverCtx))
/* Macros */
#define GET_IOBase(x) ((x)->IOBase)
-#define GET_FbBase(x) ((x)->FbBase)
-#define GET_AGPBase(x) ((x)->AGPBase)
-#define GET_DEPTH(x) ((x)->bytesPerPixel)
-#define GET_WIDTH(x) ((x)->displayWidth)
-#define GET_FbPos(smesa,x,y) (GET_FbBase(smesa)+(x)*GET_DEPTH(smesa)\
- +(y)*smesa->frontPitch)
-#define GET_ColorFormat(x) ((x)->colorFormat)
-
-#define GET_RMASK(x) ((x)->redMask)
-#define GET_GMASK(x) ((x)->greenMask)
-#define GET_BMASK(x) ((x)->blueMask)
-#define GET_AMASK(x) ((x)->alphaMask)
#define Y_FLIP(Y) (smesa->bottom - (Y))
#define SISPACKCOLOR565( r, g, b ) \
@@ -406,7 +401,7 @@
/* Update the mirrored queue pointer if it doesn't indicate enough space */ \
if (*(smesa->CurrentQueueLenPtr) < (wLen)) { \
*(smesa->CurrentQueueLenPtr) = \
- (*(GLint *)(GET_IOBase(smesa) + REG_QueueLen) & MASK_QueueLen) - 20; \
+ (*(GLint *)(GET_IOBase(smesa) + REG_CommandQueue) & MASK_QueueLen) - 20; \
/* Spin and wait if the queue is actually too full */ \
if (*(smesa->CurrentQueueLenPtr) < (wLen)) \
WaitingFor3dIdle(smesa, wLen); \
@@ -436,7 +431,6 @@
/* update to hw */
extern void sis_update_texture_state( sisContextPtr smesa );
extern void sis_update_render_state( sisContextPtr smesa );
-extern void sis_validate_all_state( sisContextPtr smesa );
void sis_fatal_error (void);
Index: sis_dd.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_dd.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_dd.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_dd.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_dd.c,v 1.2 2003/11/18 02:58:44 tsi Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_dd.c,v 1.3 2003/12/09 00:15:21 alanh Exp $ */
/*
* Authors:
@@ -151,8 +152,7 @@
current->hwZ &= ~MASK_ZBufferPitch;
current->hwZ |= smesa->width * z_depth >> 2;
- current->hwOffsetZ = ( (unsigned long)smesa->depthbuffer -
- (unsigned long)GET_FbBase(smesa) ) >> 2;
+ current->hwOffsetZ = smesa->depthOffset >> 2;
if ((current->hwOffsetZ != prev->hwOffsetZ) || (current->hwZ != prev->hwZ)) {
prev->hwOffsetZ = current->hwOffsetZ;
Index: sis_dd.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_dd.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_dd.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_dd.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_dd.h,v 1.1 2003/09/28 20:15:33 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_dd.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_debug.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_debug.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_debug.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_debug.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+IN NO EVENT SHALL SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_debug.c,v 1.6 2003/09/28 20:15:33 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_debug.c,v 1.7 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_debug.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_debug.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_debug.h 14 Nov 2003 16:48:46 -0000 1.1
+++ sis_debug.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+IN NO EVENT SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_debug.h,v 1.3 2000/09/26 15:56:48 tsi Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_debug.h,v 1.4 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_fog.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_fog.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_fog.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_fog.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_fog.c,v 1.4 2003/09/28 20:15:33 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_fog.c,v 1.5 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -44,6 +45,7 @@
sisDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params )
{
sisContextPtr smesa = SIS_CONTEXT(ctx);
+ __GLSiSHardware *prev = &smesa->prev;
__GLSiSHardware *current = &smesa->current;
float fArg;
@@ -57,29 +59,25 @@
{
case GL_LINEAR:
current->hwFog |= FOGMODE_LINEAR;
- _swrast_allow_pixel_fog( ctx, GL_TRUE );
- _swrast_allow_vertex_fog( ctx, GL_FALSE );
break;
case GL_EXP:
- if (ctx->Hint.Fog == GL_NICEST || smesa->AGPCmdModeEnabled) {
- current->hwFog |= FOGMODE_EXP;
- _swrast_allow_pixel_fog( ctx, GL_TRUE );
- _swrast_allow_vertex_fog( ctx, GL_FALSE );
- } else { /* GL_DONTCARE or GL_FASTEST */
- current->hwFog |= FOGMODE_CHEAP;
- _swrast_allow_pixel_fog( ctx, GL_FALSE );
- _swrast_allow_vertex_fog( ctx, GL_TRUE );
- }
+ current->hwFog |= FOGMODE_EXP;
break;
case GL_EXP2:
current->hwFog |= FOGMODE_EXP2;
- _swrast_allow_pixel_fog( ctx, GL_TRUE );
- _swrast_allow_vertex_fog( ctx, GL_FALSE );
break;
}
+ if (current->hwFog != prev->hwFog) {
+ prev->hwFog = current->hwFog;
+ smesa->GlobalFlag |= GFLAG_FOGSETTING;
+ }
break;
case GL_FOG_DENSITY:
current->hwFogDensity = convertFtToFogFt( ctx->Fog.Density );
+ if (current->hwFogDensity != prev->hwFogDensity) {
+ prev->hwFogDensity = current->hwFogDensity;
+ smesa->GlobalFlag |= GFLAG_FOGSETTING;
+ }
break;
case GL_FOG_START:
case GL_FOG_END:
@@ -92,6 +90,13 @@
else
current->hwFogFar = doFPtoFixedNoRound( ctx->Fog.End, 6 );
}
+ if (current->hwFogFar != prev->hwFogFar ||
+ current->hwFogInverse != prev->hwFogInverse)
+ {
+ prev->hwFogFar = current->hwFogFar;
+ prev->hwFogInverse = current->hwFogInverse;
+ smesa->GlobalFlag |= GFLAG_FOGSETTING;
+ }
break;
case GL_FOG_INDEX:
/* TODO */
@@ -102,6 +107,10 @@
fogColor |= FLOAT_TO_UBYTE( ctx->Fog.Color[2] );
current->hwFog &= 0xff000000;
current->hwFog |= fogColor;
+ if (current->hwFog != prev->hwFog) {
+ prev->hwFog = current->hwFog;
+ smesa->GlobalFlag |= GFLAG_FOGSETTING;
+ }
break;
}
}
Index: sis_lock.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_lock.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_lock.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_lock.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_lock.c,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_lock.c,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
Index: sis_lock.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_lock.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_lock.h 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_lock.h 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_lock.h,v 1.4 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_lock.h,v 1.5 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_reg.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_reg.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_reg.h 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_reg.h 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -1,6 +1,7 @@
/**************************************************************************
Copyright 2000 Silicon Integrated Systems Corp, Inc., HsinChu, Taiwan.
+Copyright 2003 Eric Anholt
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
@@ -15,16 +16,17 @@
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 PRECISION INSIGHT 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.
+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
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_reg.h,v 1.4 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_reg.h,v 1.5 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -39,7 +41,7 @@
* Define All the Register Address of 6327
*/
-#define REG_QueueLen 0x8240
+#define REG_CommandQueue 0x8240
#define REG_3D_TSFSa 0x8800
#define REG_3D_TSZa 0x8804
@@ -217,7 +219,7 @@
#define REG_3D_TexturePalette 0x8C00
/*
- * REG_QueueLen -- (8240h-8243h)
+ * REG_CommandQueue -- (8240h-8243h)
*/
#define MASK_QueueLen 0x0000ffff
#define SiS_EngIdle2d 0x80000000
@@ -528,17 +530,17 @@
#define FOGMODE_EXP2 0x07000000
/*
- * REG_3D_FogStartEnd -- Define Fog Start End Setting (8A34h-8A37h)
+ * REG_3D_FogStartEnd -- Define Fog Start End Setting (0x8A34 - 0x8A37)
*/
#define MASK_FogFarDistance 0x0007FFFF
/*
- * REG_3D_FogStartEnd -- Define Fog End Setting (8A38h-8A3Bh)
+ * REG_3D_FogStartEnd -- Define Fog End Setting (0x8A38 - 0x8A3B)
*/
#define MASK_FogInvFarDistance 0x0007FFFF
/*
- * REG_3D_FogStartEnd -- Define Fog End Setting (0x8A3C - 0x8A3F)
+ * REG_3D_FogFactorDensity (0x8A3C - 0x8A3F)
*/
#define MASK_FogDensity 0x0003FFFF
#define MASK_FogFactor 0xFF000000
@@ -804,97 +806,27 @@
* REG_3D_TextureAlphaBlendSet0 (0x8B40 - 0x8B43)
* REG_3D_TextureAlphaBlendSet1 (0x8B44 - 0x8B46)
*/
+#define STAGE0_C_CF 0xa1485000
+#define STAGE0_C_CS 0xc1485000
+#define STAGE0_C_CFCS 0xa1705000
+#define STAGE0_C_CFOMAS_CSAS 0xc534c001
+#define STAGE0_C_CFOMCS_CCCS 0x4530c001
-#define A_REPLACE_RGB_STAGE0 0xa1485000
-#define A_REPLACE_A_STAGE0 0xc3230000
-#define L_REPLACE__RGB_STAGE0 0xc1485000
-#define L_REPLACE__A_STAGE0 0x63230000
-#define LA_REPLACE__RGB_STAGE0 0xc1485000
-#define LA_REPLACE__A_STAGE0 0xc3230000
-#define I_REPLACE__RGB_STAGE0 0xc1485000
-#define I_REPLACE__A_STAGE0 0xc3230000
-#define RGB_REPLACE__RGB_STAGE0 0xc1485000
-#define RGB_REPLACE__A_STAGE0 0x63230000
-#define RGBA_REPLACE__RGB_STAGE0 0xc1485000
-#define RGBA_REPLACE__A_STAGE0 0xc3230000
-
-#define A_MODULATE_RGB_STAGE0 0xa1485000
-#define A_MODULATE_A_STAGE0 0x63c30000
-#define L_MODULATE__RGB_STAGE0 0xa1705000
-#define L_MODULATE__A_STAGE0 0x63230000
-#define LA_MODULATE__RGB_STAGE0 0xa1705000
-#define LA_MODULATE__A_STAGE0 0x63c30000
-#define I_MODULATE__RGB_STAGE0 0xa1705000
-#define I_MODULATE__A_STAGE0 0x63c30000
-#define RGB_MODULATE__RGB_STAGE0 0xa1705000
-#define RGB_MODULATE__A_STAGE0 0x63230000
-#define RGBA_MODULATE__RGB_STAGE0 0xa1705000
-#define RGBA_MODULATE__A_STAGE0 0x63c30000
-
-#define RGB_DECAL__RGB_STAGE0 0xc1485000
-#define RGB_DECAL__A_STAGE0 0x63230000
-#define RGBA_DECAL__RGB_STAGE0 0xc534c001
-#define RGBA_DECAL__A_STAGE0 0x63230000
-
-#define A_BLEND_RGB_STAGE0 0xa1485000
-#define A_BLEND_A_STAGE0 0x63c30000
-#define L_BLEND__RGB_STAGE0 0x4530c001
-#define L_BLEND__A_STAGE0 0x63230000
-#define LA_BLEND__RGB_STAGE0 0x4530c001
-#define LA_BLEND__A_STAGE0 0x63c30000
-#define I_BLEND__RGB_STAGE0 0x4530c001
-#define I_BLEND__A_STAGE0 0x46c60001
-#define RGB_BLEND__RGB_STAGE0 0x4530c001
-#define RGB_BLEND__A_STAGE0 0x63230000
-#define RGBA_BLEND__RGB_STAGE0 0x4530c001
-#define RGBA_BLEND__A_STAGE0 0x63c30000
-
-#define RGB_STAGE1 0xa1485000
-#define A_STAGE1 0xa3230000
-
-#define A_REPLACE_RGB_STAGE1 0xa1485000
-#define A_REPLACE_A_STAGE1 0xe3230000
-#define L_REPLACE__RGB_STAGE1 0xe1485000
-#define L_REPLACE__A_STAGE1 0xa3230000
-#define LA_REPLACE__RGB_STAGE1 0xe1485000
-#define LA_REPLACE__A_STAGE1 0xe3230000
-#define I_REPLACE__RGB_STAGE1 0xe1485000
-#define I_REPLACE__A_STAGE1 0xe3230000
-#define RGB_REPLACE__RGB_STAGE1 0xe1485000
-#define RGB_REPLACE__A_STAGE1 0xa3230000
-#define RGBA_REPLACE__RGB_STAGE1 0xe1485000
-#define RGBA_REPLACE__A_STAGE1 0xe3230000
-
-#define A_MODULATE_RGB_STAGE1 0xa1485000
-#define A_MODULATE_A_STAGE1 0xa3e30000
-#define L_MODULATE__RGB_STAGE1 0xa1785000
-#define L_MODULATE__A_STAGE1 0xa3230000
-#define LA_MODULATE__RGB_STAGE1 0xa1785000
-#define LA_MODULATE__A_STAGE1 0xa3e30000
-#define I_MODULATE__RGB_STAGE1 0xa1785000
-#define I_MODULATE__A_STAGE1 0xa3e30000
-#define RGB_MODULATE__RGB_STAGE1 0xa1785000
-#define RGB_MODULATE__A_STAGE1 0xa3230000
-#define RGBA_MODULATE__RGB_STAGE1 0xa1785000
-#define RGBA_MODULATE__A_STAGE1 0xa3e30000
+#define STAGE0_A_AF 0x63230000
+#define STAGE0_A_AS 0xc3230000
+#define STAGE0_A_AFAS 0x63c30000
+#define STAGE0_A_AFOMAS_ACAS 0x46c60001
-#define RGB_DECAL__RGB_STAGE1 0xe1485000
-#define RGB_DECAL__A_STAGE1 0xa3230000
-#define RGBA_DECAL__RGB_STAGE1 0xe5394001
-#define RGBA_DECAL__A_STAGE1 0xa3230000
+#define STAGE1_C_CF 0xa1485000
+#define STAGE1_C_CS 0xe1485000
+#define STAGE1_C_CFCS 0xa1785000
+#define STAGE1_C_CFOMAS_CSAS 0xe5394001
+#define STAGE1_C_CFOMCS_CCCS 0x45394001
-#define A_BLEND_RGB_STAGE1 0xa1485000
-#define A_BLEND_A_STAGE1 0xa3e30000
-#define L_BLEND__RGB_STAGE1 0x45394001
-#define L_BLEND__A_STAGE1 0xa3230000
-#define LA_BLEND__RGB_STAGE1 0x45394001
-#define LA_BLEND__A_STAGE1 0xa3e30000
-#define I_BLEND__RGB_STAGE1 0x45394001
-#define I_BLEND__A_STAGE1 0x4aea0001
-#define RGB_BLEND__RGB_STAGE1 0x45394001
-#define RGB_BLEND__A_STAGE1 0xa3230000
-#define RGBA_BLEND__RGB_STAGE1 0x45394001
-#define RGBA_BLEND__A_STAGE1 0xa3e30000
+#define STAGE1_A_AF 0xa3230000
+#define STAGE1_A_AS 0xe3230000
+#define STAGE1_A_AFAS 0xa3e30000
+#define STAGE1_A_AFOMAS_ACAS 0x4aea0001
/* What registers are these associated with? */
#define MASK_BMMemoryInSystem 0x00000080
Index: sis_screen.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_screen.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_screen.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_screen.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_screen.c,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_screen.c,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
@@ -150,7 +150,7 @@
*lpdwDest++ = *lpdwSrc++;
MMIO(REG_CMD0, *(GLint *)&pkt->stdwCmd);
- MMIO(REG_QueueLen, -1);
+ MMIO(REG_CommandQueue, -1);
}
static void sisCopyBuffer( __DRIdrawablePrivate *dPriv )
@@ -160,7 +160,7 @@
ENGPACKET stEngPacket;
while ((*smesa->FrameCountPtr) - MMIO_READ(0x8a2c) > SIS_MAX_FRAME_LENGTH)
- usleep(1);
+ ;
LOCK_HARDWARE();
Index: sis_screen.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_screen.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_screen.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_screen.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_screen.h,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_screen.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_span.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_span.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_span.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_span.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_span.c,v 1.6 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_span.c,v 1.7 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -39,11 +40,6 @@
#define DBG 0
-/* from mga */
-/* TODO: should lock drawable in these routines because glBitmap will
- * call this function without locking, or modify sis_Bitmap
- */
-
#define LOCAL_VARS \
sisContextPtr smesa = SIS_CONTEXT(ctx); \
char *buf = (char *)(smesa->FbBase + smesa->drawOffset); \
Index: sis_span.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_span.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_span.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_span.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_span.h,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_span.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_state.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_state.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_state.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_state.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_state.c,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_state.c,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -366,10 +367,10 @@
current->hwCapEnable2 |= (MASK_AlphaMaskWriteEnable |
MASK_ColorMaskWriteEnable);
- current->hwDstMask = (r) ? GET_RMASK(smesa) : 0 |
- (g) ? GET_GMASK(smesa) : 0 |
- (b) ? GET_BMASK(smesa) : 0 |
- (a) ? GET_AMASK(smesa) : 0;
+ current->hwDstMask = (r) ? smesa->redMask : 0 |
+ (g) ? smesa->greenMask : 0 |
+ (b) ? smesa->blueMask : 0 |
+ (a) ? smesa->alphaMask : 0;
}
if (current->hwDstMask != prev->hwDstMask) {
@@ -542,19 +543,6 @@
}
}
-static void
-sisDDHint( GLcontext *ctx, GLenum target, GLenum mode )
-{
-
- switch (target) {
- case GL_FOG_HINT:
- /* Update fog mode setting */
- sisDDFogfv(ctx, GL_FOG_MODE, NULL);
- break;
- }
-
-}
-
/* =============================================================
* Polygon stipple
*/
@@ -582,10 +570,6 @@
else
current->hwCapEnable &= ~MASK_AlphaTestEnable;
break;
-/*
- case GL_AUTO_NORMAL:
- break;
-*/
case GL_BLEND:
/* TODO: */
if (state)
@@ -594,17 +578,6 @@
else
current->hwCapEnable &= ~MASK_BlendEnable;
break;
-/*
- case GL_CLIP_PLANE0:
- case GL_CLIP_PLANE1:
- case GL_CLIP_PLANE2:
- case GL_CLIP_PLANE3:
- case GL_CLIP_PLANE4:
- case GL_CLIP_PLANE5:
- break;
- case GL_COLOR_MATERIAL:
- break;
-*/
case GL_CULL_FACE:
if (state)
current->hwCapEnable |= MASK_CullEnable;
@@ -630,93 +603,15 @@
else
current->hwCapEnable &= ~MASK_FogEnable;
break;
-/*
- case GL_LIGHT0:
- case GL_LIGHT1:
- case GL_LIGHT2:
- case GL_LIGHT3:
- case GL_LIGHT4:
- case GL_LIGHT5:
- case GL_LIGHT6:
- case GL_LIGHT7:
- break;
- case GL_LIGHTING:
- break;
- case GL_LINE_SMOOTH:
- break;
- case GL_LINE_STIPPLE:
- break;
- case GL_INDEX_LOGIC_OP:
- break;
-*/
case GL_COLOR_LOGIC_OP:
if (state)
sisDDLogicOpCode( ctx, ctx->Color.LogicOp );
else
sisDDLogicOpCode( ctx, GL_COPY );
break;
-/*
- case GL_MAP1_COLOR_4:
- break;
- case GL_MAP1_INDEX:
- break;
- case GL_MAP1_NORMAL:
- break;
- case GL_MAP1_TEXTURE_COORD_1:
- break;
- case GL_MAP1_TEXTURE_COORD_2:
- break;
- case GL_MAP1_TEXTURE_COORD_3:
- break;
- case GL_MAP1_TEXTURE_COORD_4:
- break;
- case GL_MAP1_VERTEX_3:
- break;
- case GL_MAP1_VERTEX_4:
- break;
- case GL_MAP2_COLOR_4:
- break;
- case GL_MAP2_INDEX:
- break;
- case GL_MAP2_NORMAL:
- break;
- case GL_MAP2_TEXTURE_COORD_1:
- break;
- case GL_MAP2_TEXTURE_COORD_2:
- break;
- case GL_MAP2_TEXTURE_COORD_3:
- break;
- case GL_MAP2_TEXTURE_COORD_4:
- break;
- case GL_MAP2_VERTEX_3:
- break;
- case GL_MAP2_VERTEX_4:
- break;
- case GL_NORMALIZE:
- break;
- case GL_POINT_SMOOTH:
- break;
- case GL_POLYGON_SMOOTH:
- break;
- case GL_POLYGON_STIPPLE:
- break;
- case GL_POLYGON_OFFSET_POINT:
- break;
- case GL_POLYGON_OFFSET_LINE:
- break;
- case GL_POLYGON_OFFSET_FILL:
- case GL_POLYGON_OFFSET_EXT:
- break;
- case GL_RESCALE_NORMAL_EXT:
- break;
-*/
case GL_SCISSOR_TEST:
sisUpdateClipping( ctx );
break;
-/*
- case GL_SHARED_TEXTURE_PALETTE_EXT:
- break;
-*/
case GL_STENCIL_TEST:
if (state) {
if (smesa->zFormat != SiS_ZFORMAT_S8Z24)
@@ -730,33 +625,6 @@
MASK_StencilWriteEnable);
}
break;
-/*
- case GL_TEXTURE_1D:
- case GL_TEXTURE_2D:
- case GL_TEXTURE_3D:
- break;
- case GL_TEXTURE_GEN_Q:
- break;
- case GL_TEXTURE_GEN_R:
- break;
- case GL_TEXTURE_GEN_S:
- break;
- case GL_TEXTURE_GEN_T:
- break;
-
- case GL_VERTEX_ARRAY:
- break;
- case GL_NORMAL_ARRAY:
- break;
- case GL_COLOR_ARRAY:
- break;
- case GL_INDEX_ARRAY:
- break;
- case GL_TEXTURE_COORD_ARRAY:
- break;
- case GL_EDGE_FLAG_ARRAY:
- break;
-*/
}
}
@@ -833,27 +701,6 @@
smesa->GlobalFlag |= GFLAG_ENABLESETTING2;
}
- /* TODO: if fog disable, don't check */
- if (current->hwCapEnable & MASK_FogEnable) {
- /* fog setting */
- if (current->hwFog != prev->hwFog) {
- prev->hwFog = current->hwFog;
- smesa->GlobalFlag |= GFLAG_FOGSETTING;
- }
- if (current->hwFogFar != prev->hwFogFar) {
- prev->hwFogFar = current->hwFogFar;
- smesa->GlobalFlag |= GFLAG_FOGSETTING;
- }
- if (current->hwFogInverse != prev->hwFogInverse) {
- prev->hwFogInverse = current->hwFogInverse;
- smesa->GlobalFlag |= GFLAG_FOGSETTING;
- }
- if (current->hwFogDensity != prev->hwFogDensity) {
- prev->hwFogDensity = current->hwFogDensity;
- smesa->GlobalFlag |= GFLAG_FOGSETTING;
- }
- }
-
if (smesa->GlobalFlag & GFLAG_RENDER_STATES)
sis_update_render_state( smesa );
@@ -928,11 +775,11 @@
prev->texture[0].hwTextureMip = 0;
#endif
- /* Texture Blending seeting */
- prev->hwTexBlendClr0 = L_REPLACE__RGB_STAGE0;
- prev->hwTexBlendClr1 = 0x294B4000;
- prev->hwTexBlendAlpha0 = 0x333A0000;
- prev->hwTexBlendAlpha1 = 0x333A0000;
+ /* Texture Blending setting -- use fragment color/alpha*/
+ prev->hwTexBlendColor0 = STAGE0_C_CF;
+ prev->hwTexBlendColor1 = STAGE1_C_CF;
+ prev->hwTexBlendAlpha0 = STAGE0_A_AF;
+ prev->hwTexBlendAlpha1 = STAGE1_A_AF;
switch (smesa->bytesPerPixel)
{
@@ -1012,7 +859,7 @@
ctx->Driver.Enable = sisDDEnable;
ctx->Driver.FrontFace = sisDDFrontFace;
ctx->Driver.Fogfv = sisDDFogfv;
- ctx->Driver.Hint = sisDDHint;
+ ctx->Driver.Hint = NULL;
ctx->Driver.Lightfv = NULL;
ctx->Driver.LogicOpcode = sisDDLogicOpCode;
ctx->Driver.PolygonMode = NULL;
Index: sis_state.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_state.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_state.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_state.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_state.h,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_state.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_stencil.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_stencil.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- sis_stencil.c 26 Nov 2003 22:48:34 -0000 1.1.4.1
+++ sis_stencil.c 20 Dec 2003 00:28:22 -0000 1.1.4.2
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_stencil.c,v 1.4 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_stencil.c,v 1.5 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_stencil.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_stencil.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_stencil.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_stencil.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_stencil.h,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_stencil.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_tex.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_tex.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_tex.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_tex.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tex.c,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tex.c,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -38,6 +38,7 @@
#include "imports.h"
#include "texformat.h"
#include "texstore.h"
+#include "teximage.h"
#define ALIGN(value, align) (char *)((long)(value + align - 1) & ~(align - 1))
Index: sis_tex.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_tex.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_tex.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_tex.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -17,13 +17,13 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tex.h,v 1.1 2003/09/28 20:15:34 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tex.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
Index: sis_texstate.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_texstate.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_texstate.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_texstate.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -18,13 +18,14 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
**************************************************************************/
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_texstate.c,v 1.2 2003/09/29 11:25:18 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_texstate.c,v 1.3 2003/12/09 00:15:22 alanh Exp $ */
/*
* Authors:
@@ -60,70 +61,70 @@
sisTexObjPtr t = texObj->DriverData;
- /*
- current->hwTexBlendClr0 = RGB_STAGE1;
- current->hwTexBlendAlpha0 = A_STAGE1;
- */
-
switch (texture_unit->EnvMode)
{
case GL_REPLACE:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV0, 0);
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr0 = A_REPLACE_RGB_STAGE0;
- current->hwTexBlendAlpha0 = A_REPLACE_A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CF;
+ current->hwTexBlendAlpha0 = STAGE0_A_AS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr0 = RGB_REPLACE__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGB_REPLACE__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
break;
case GL_INTENSITY:
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr0 = RGBA_REPLACE__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGBA_REPLACE__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AS;
break;
}
break;
case GL_MODULATE:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV0, 0);
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr0 = A_MODULATE_RGB_STAGE0;
- current->hwTexBlendAlpha0 = A_MODULATE_A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CF;
+ current->hwTexBlendAlpha0 = STAGE0_A_AFAS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr0 = RGB_MODULATE__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGB_MODULATE__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFCS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
break;
case GL_INTENSITY:
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr0 = RGBA_MODULATE__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGBA_MODULATE__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFCS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AFAS;
break;
}
break;
case GL_DECAL:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV0, 0);
switch (t->format)
{
case GL_RGB:
- current->hwTexBlendClr0 = RGB_DECAL__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGB_DECAL__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
break;
case GL_RGBA:
- current->hwTexBlendClr0 = RGBA_DECAL__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGBA_DECAL__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFOMAS_CSAS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
break;
}
break;
case GL_BLEND:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV0, 1);
+#if 0 /* XXX Blending broken */
current->hwTexEnvColor =
((GLint) (texture_unit->EnvColor[3])) << 24 |
((GLint) (texture_unit->EnvColor[0])) << 16 |
@@ -132,33 +133,34 @@
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr0 = A_BLEND_RGB_STAGE0;
- current->hwTexBlendAlpha0 = A_BLEND_A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CF;
+ current->hwTexBlendAlpha0 = STAGE0_A_AFAS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr0 = RGB_BLEND__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGB_BLEND__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
break;
case GL_INTENSITY:
- current->hwTexBlendClr0 = I_BLEND__RGB_STAGE0;
- current->hwTexBlendAlpha0 = I_BLEND__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AFOMAS_ACAS;
break;
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr0 = RGBA_BLEND__RGB_STAGE0;
- current->hwTexBlendAlpha0 = RGBA_BLEND__A_STAGE0;
+ current->hwTexBlendColor0 = STAGE0_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha0 = STAGE0_A_AFAS;
break;
}
break;
+#endif
}
- if ((current->hwTexBlendClr0 != prev->hwTexBlendClr0) ||
+ if ((current->hwTexBlendColor0 != prev->hwTexBlendColor0) ||
(current->hwTexBlendAlpha0 != prev->hwTexBlendAlpha0) ||
(current->hwTexEnvColor != prev->hwTexEnvColor))
{
prev->hwTexEnvColor = current->hwTexEnvColor;
- prev->hwTexBlendClr0 = current->hwTexBlendClr0;
+ prev->hwTexBlendColor0 = current->hwTexBlendColor0;
prev->hwTexBlendAlpha0 = current->hwTexBlendAlpha0;
smesa->GlobalFlag |= GFLAG_TEXTUREENV;
}
@@ -178,70 +180,70 @@
sisTexObjPtr t = texObj->DriverData;
- /*
- current->hwTexBlendClr1 = RGB_STAGE1; current->hwTexBlendAlpha1 =
- A_STAGE1;
- */
-
switch (texture_unit->EnvMode)
{
case GL_REPLACE:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV1, 0);
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr1 = A_REPLACE_RGB_STAGE1;
- current->hwTexBlendAlpha1 = A_REPLACE_A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CF;
+ current->hwTexBlendAlpha1 = STAGE1_A_AS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr1 = RGB_REPLACE__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGB_REPLACE__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
break;
case GL_INTENSITY:
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr1 = RGBA_REPLACE__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGBA_REPLACE__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AS;
break;
}
break;
case GL_MODULATE:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV1, 0);
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr1 = A_MODULATE_RGB_STAGE1;
- current->hwTexBlendAlpha1 = A_MODULATE_A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CF;
+ current->hwTexBlendAlpha1 = STAGE1_A_AFAS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr1 = RGB_MODULATE__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGB_MODULATE__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFCS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
break;
case GL_INTENSITY:
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr1 = RGBA_MODULATE__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGBA_MODULATE__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFCS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AFAS;
break;
}
break;
case GL_DECAL:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV1, 0);
switch (t->format)
{
case GL_RGB:
- current->hwTexBlendClr1 = RGB_DECAL__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGB_DECAL__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
break;
case GL_RGBA:
- current->hwTexBlendClr1 = RGBA_DECAL__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGBA_DECAL__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFOMAS_CSAS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
break;
}
break;
case GL_BLEND:
+ FALLBACK(smesa, SIS_FALLBACK_TEXENV1, 1);
+#if 0 /* XXX Blending broken */
current->hwTexEnvColor =
((GLint) (texture_unit->EnvColor[3])) << 24 |
((GLint) (texture_unit->EnvColor[0])) << 16 |
@@ -250,32 +252,33 @@
switch (t->format)
{
case GL_ALPHA:
- current->hwTexBlendClr1 = A_BLEND_RGB_STAGE1;
- current->hwTexBlendAlpha1 = A_BLEND_A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CF;
+ current->hwTexBlendAlpha1 = STAGE1_A_AFAS;
break;
case GL_LUMINANCE:
case GL_RGB:
- current->hwTexBlendClr1 = RGB_BLEND__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGB_BLEND__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
break;
case GL_INTENSITY:
- current->hwTexBlendClr1 = I_BLEND__RGB_STAGE1;
- current->hwTexBlendAlpha1 = I_BLEND__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AFOMAS_ACAS;
break;
case GL_LUMINANCE_ALPHA:
case GL_RGBA:
- current->hwTexBlendClr1 = RGBA_BLEND__RGB_STAGE1;
- current->hwTexBlendAlpha1 = RGBA_BLEND__A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CFOMCS_CCCS;
+ current->hwTexBlendAlpha1 = STAGE1_A_AFAS;
break;
}
break;
+#endif
}
- if ((current->hwTexBlendClr1 != prev->hwTexBlendClr1) ||
+ if ((current->hwTexBlendColor1 != prev->hwTexBlendColor1) ||
(current->hwTexBlendAlpha1 != prev->hwTexBlendAlpha1) ||
(current->hwTexEnvColor != prev->hwTexEnvColor))
{
- prev->hwTexBlendClr1 = current->hwTexBlendClr1;
+ prev->hwTexBlendColor1 = current->hwTexBlendColor1;
prev->hwTexBlendAlpha1 = current->hwTexBlendAlpha1;
prev->hwTexEnvColor = current->hwTexEnvColor;
smesa->GlobalFlag |= GFLAG_TEXTUREENV_1;
@@ -336,8 +339,7 @@
GLint b;
/* The mipmap lod biasing is based on experiment. It seems there's a
- * limit of around +4/-4 to the bias value; we're being
- * conservative.
+ * limit of around +4/-4 to the bias value; we're being conservative.
*/
b = (GLint) (ctx->Texture.Unit[hw_unit].LodBias * 32.0);
if (b > 127)
@@ -551,27 +553,27 @@
if (hw_unit == 1)
{
- current->hwTexBlendClr1 = RGB_STAGE1;
- current->hwTexBlendAlpha1 = A_STAGE1;
+ current->hwTexBlendColor1 = STAGE1_C_CF;
+ current->hwTexBlendAlpha1 = STAGE1_A_AF;
- if ((current->hwTexBlendClr1 != prev->hwTexBlendClr1) ||
+ if ((current->hwTexBlendColor1 != prev->hwTexBlendColor1) ||
(current->hwTexBlendAlpha1 != prev->hwTexBlendAlpha1) ||
(current->hwTexEnvColor != prev->hwTexEnvColor))
{
- prev->hwTexBlendClr1 = current->hwTexBlendClr1;
+ prev->hwTexBlendColor1 = current->hwTexBlendColor1;
prev->hwTexBlendAlpha1 = current->hwTexBlendAlpha1;
prev->hwTexEnvColor = current->hwTexEnvColor;
smesa->GlobalFlag |= GFLAG_TEXTUREENV_1;
}
} else {
- current->hwTexBlendClr0 = RGB_STAGE1;
- current->hwTexBlendAlpha0 = A_STAGE1;
+ current->hwTexBlendColor0 = STAGE0_C_CF;
+ current->hwTexBlendAlpha0 = STAGE0_A_AF;
- if ((current->hwTexBlendClr0 != prev->hwTexBlendClr0) ||
+ if ((current->hwTexBlendColor0 != prev->hwTexBlendColor0) ||
(current->hwTexBlendAlpha0 != prev->hwTexBlendAlpha0) ||
(current->hwTexEnvColor != prev->hwTexEnvColor))
{
- prev->hwTexBlendClr0 = current->hwTexBlendClr0;
+ prev->hwTexBlendColor0 = current->hwTexBlendColor0;
prev->hwTexBlendAlpha0 = current->hwTexBlendAlpha0;
prev->hwTexEnvColor = current->hwTexEnvColor;
smesa->GlobalFlag |= GFLAG_TEXTUREENV;
@@ -579,16 +581,25 @@
}
}
-static GLboolean updateTextureUnit( GLcontext *ctx, int unit )
+static void updateTextureUnit( GLcontext *ctx, int unit )
{
sisContextPtr smesa = SIS_CONTEXT( ctx );
const struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
struct gl_texture_object *texObj = texUnit->_Current;
+ GLint fallbackbit;
+
+ if (unit == 0)
+ fallbackbit = SIS_FALLBACK_TEXTURE0;
+ else
+ fallbackbit = SIS_FALLBACK_TEXTURE1;
if (texUnit->_ReallyEnabled & (TEXTURE_1D_BIT | TEXTURE_2D_BIT)) {
- GLboolean ok = GL_TRUE; /* XXX */
- if (smesa->TexStates[unit] & NEW_TEXTURING)
+ if (smesa->TexStates[unit] & NEW_TEXTURING) {
+ GLboolean ok;
+
ok = sis_set_texobj_parm (ctx, texObj, unit);
+ FALLBACK( smesa, fallbackbit, !ok );
+ }
if (smesa->TexStates[unit] & NEW_TEXTURE_ENV) {
if (unit == 0)
sis_set_texture_env0( ctx, texObj, unit );
@@ -596,13 +607,12 @@
sis_set_texture_env1( ctx, texObj, unit );
}
smesa->TexStates[unit] = 0;
- return ok;
} else if ( texUnit->_ReallyEnabled ) {
/* fallback */
- return GL_FALSE;
+ FALLBACK( smesa, fallbackbit, 1 );
} else {
sis_reset_texture_env( ctx, unit );
- return GL_TRUE;
+ FALLBACK( smesa, fallbackbit, 0 );
}
}
@@ -610,7 +620,6 @@
void sisUpdateTextureState( GLcontext *ctx )
{
sisContextPtr smesa = SIS_CONTEXT( ctx );
- GLboolean ok;
int i;
__GLSiSHardware *current = &smesa->current;
@@ -620,10 +629,8 @@
smesa->TexStates[i] |= (NEW_TEXTURING | NEW_TEXTURE_ENV);
#endif
- ok = (updateTextureUnit( ctx, 0 ) &&
- updateTextureUnit( ctx, 1 ));
-
- FALLBACK( smesa, SIS_FALLBACK_TEXTURE, !ok );
+ updateTextureUnit( ctx, 0 );
+ updateTextureUnit( ctx, 1 );
/* XXX Issues with the 2nd unit but not the first being enabled? */
if ( ctx->Texture.Unit[0]._ReallyEnabled &
Index: sis_tris.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_tris.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_tris.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_tris.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tris.c,v 1.2 2003/09/28 21:44:45 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tris.c,v 1.3 2003/12/09 00:15:22 alanh Exp $ */
/**************************************************************************
Copyright 2000 Silicon Integrated Systems Corp, Inc., HsinChu, Taiwan.
@@ -19,7 +20,7 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+ERIC ANHOLT OR SILICON INTEGRATED SYSTEMS CORP 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.
@@ -870,7 +871,6 @@
sisUpdateAGP( smesa );
while (size > AGP_SpaceLeft) {
/* Spin until space is available. */
- usleep(1);
AGP_ReadPtr = (GLfloat *)((long)MMIO_READ(REG_3D_AGPCmBase) -
(long)smesa->AGPCmdBufAddr + (long)smesa->AGPCmdBufBase);
sisUpdateAGP( smesa );
Index: sis_tris.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_tris.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_tris.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_tris.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tris.h,v 1.1 2003/09/28 20:15:35 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tris.h,v 1.2 2003/12/09 00:15:22 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
Index: sis_tritmp.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_tritmp.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_tritmp.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_tritmp.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tritmp.h,v 1.2 2003/09/28 21:44:45 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_tritmp.h,v 1.3 2003/12/09 00:15:22 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
@@ -140,10 +140,6 @@
sis_tri_func_agp[SIS_STATES] = TAG(sis_draw_tri_agp);
sis_line_func_agp[SIS_STATES] = TAG(sis_draw_line_agp);
sis_point_func_agp[SIS_STATES] = TAG(sis_draw_point_agp);
- /*sis_quad_func_agp[SIS_STATES] = TAG(sis_draw_quad_mmio);
- sis_tri_func_agp[SIS_STATES] = TAG(sis_draw_tri_mmio);
- sis_line_func_agp[SIS_STATES] = TAG(sis_draw_line_mmio);
- sis_point_func_agp[SIS_STATES] = TAG(sis_draw_point_mmio);*/
sis_quad_func_mmio[SIS_STATES] = TAG(sis_draw_quad_mmio);
sis_tri_func_mmio[SIS_STATES] = TAG(sis_draw_tri_mmio);
sis_line_func_mmio[SIS_STATES] = TAG(sis_draw_line_mmio);
Index: sis_vb.c
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_vb.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_vb.c 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_vb.c 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_vb.c,v 1.2 2003/09/29 11:25:18 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_vb.c,v 1.3 2003/12/09 00:15:23 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
@@ -361,7 +361,7 @@
if (!newinputs)
return;
- if (newinputs & VERT_BIT_CLIP) {
+ if (newinputs & VERT_BIT_POS) {
setup_tab[smesa->SetupIndex].emit( ctx, start, count, v, stride );
} else {
GLuint ind = 0;
Index: sis_vb.h
===================================================================
RCS file: /cvs/xorg/xc/lib/GL/mesa/src/drv/sis/sis_vb.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- sis_vb.h 25 Nov 2003 19:28:07 -0000 1.1
+++ sis_vb.h 20 Dec 2003 00:28:22 -0000 1.1.4.1
@@ -1,4 +1,5 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_vb.h,v 1.1 2003/09/28 20:15:35 alanh Exp $ */
+/* $XdotOrg$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/sis/sis_vb.h,v 1.2 2003/12/09 00:15:23 alanh Exp $ */
/**************************************************************************
Copyright 2003 Eric Anholt
@@ -18,10 +19,9 @@
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
-ATI, PRECISION INSIGHT AND/OR THEIR 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.
+ERIC ANHOLT 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.
**************************************************************************/
- Previous message: [Xorg-commit] xc/lib/X11 ConnDis.c,1.1.4.3,1.1.4.4 Xlib.h,1.1.4.5,1.1.4.6
- Next message: [Xorg-commit] xc/programs/Xserver/hw/xwin X.ico,1.1,1.1.6.1 win.h,1.1.4.1.2.3,1.1.4.1.2.4 winmultiwindowclass.c,1.1,1.1.6.1 winwin32rootless.c,1.1.2.2,1.1.2.3 winwin32rootlesswndproc.c,1.1.2.2,1.1.2.3
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xorg-commit
mailing list