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.
* Eric Anholt <anholt@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)
#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;
smesa->depthbuffer = (void *) addr;
smesa->depthPitch = width2;
+ smesa->depthOffset = (unsigned long)addr - (unsigned long)smesa->FbBase;
/* set pZClearPacket */
memset( &smesa->zClearPacket, 0, sizeof(ENGPACKET) );
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$ */
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.
#include "sis_context.h"
#include "sis_state.h"
#include "sis_lock.h"
-#include "macros.h"
+
#include "swrast/swrast.h"
+#include "macros.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,
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) +
{
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);
width1 = width;
height1 = height;
}
+ /* XXX: Scissoring */
LOCK_HARDWARE();
-#if 0
- /* The 3d clear code is disabled because it appears to be slower, even
- * in the case of being requested to clear Z and color buffers at the
- * same time.
+ /* 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 (mask & (DD_BACK_LEFT_BIT | DD_DEPTH_BIT | DD_STENCIL_BIT))
+ 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 );
sisUpdateZStencilPattern( smesa, ctx->Depth.Clear, s );
}
-#if 0
static GLbitfield
sis_3D_Clear( GLcontext * ctx, GLbitfield mask,
GLint x, GLint y, GLint width, GLint height )
float left, top, right, bottom, zClearVal;
GLboolean bClrColor, bClrDepth, bClrStencil;
GLint dwPrimitiveSet;
- GLint dwEnable1 = 0, 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 = ((mask & DD_BACK_LEFT_BIT) != 0);
- bClrDepth = ((mask & DD_DEPTH_BIT) != 0) && (ctx->Visual.depthBits != 0);
- bClrStencil = ((mask & DD_STENCIL_BIT) != 0) && (ctx->Visual.stencilBits != 0);
+ bClrColor = (mask & (DD_BACK_LEFT_BIT | DD_FRONT_LEFT_BIT)) != 0;
+ bClrDepth = (mask & DD_DEPTH_BIT) != 0;
+ bClrStencil = (mask & DD_STENCIL_BIT) != 0;
if (smesa->GlobalFlag & GFLAG_RENDER_STATES)
sis_update_render_state( smesa );
- if (!bClrColor)
- dwEnable2 |= MASK_ColorMaskWriteEnable;
-
if (bClrStencil) {
dwSten1 = STENCIL_FORMAT_8 | SiS_STENCIL_ALWAYS |
(ctx->Stencil.Clear << 8) | 0xff;
MMIO(REG_3D_TSXb, *(GLint *) &right);
MMIO(REG_3D_TSYb, *(GLint *) &bottom);
MMIO(REG_3D_TSARGBb, smesa->clearColorPattern);
- }
+ }
mEndPrimitive();
+ /* 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 );
+
smesa->GlobalFlag |= dirtyflags;
- return (mask & ~(DD_BACK_LEFT_BIT | DD_DEPTH_BIT | DD_STENCIL_BIT));
+ 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 )
}
MMIO(REG_CMD0, *(GLint *) & pkt->stdwCmd);
- MMIO(REG_QueueLen, -1);
+ MMIO(REG_CommandQueue, -1);
}
static void
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;
{
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;
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.
#ifdef GLX_DIRECT_RENDERING
# include <stdio.h>
-# include <unistd.h>
# include <stdlib.h>
# include <string.h>
typedef struct _Box
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.
int GlobalHwcxCountBase = 1;
int GlobalCmdQueueLen = 0;
+#include "xmlpool.h"
+
+const char __driConfigOptions[] =
+DRI_CONF_BEGIN
+ DRI_CONF_SECTION_DEBUG
+ DRI_CONF_OPT_BEGIN(agp_disable,bool,false)
+ DRI_CONF_DESC(en,"Disable AGP vertex dispatch")
+ DRI_CONF_OPT_END
+ DRI_CONF_OPT_BEGIN(fallback_force,bool,false)
+ DRI_CONF_DESC(en,"Force software fallback")
+ DRI_CONF_OPT_END
+ DRI_CONF_SECTION_END
+DRI_CONF_END;
+const GLuint __driNConfigOptions = 2;
+
static const char * const card_extensions[] =
{
"GL_ARB_multitexture",
void
WaitEngIdle (sisContextPtr smesa)
{
- GLubyte *IOBase = GET_IOBase (smesa);
- GLbyte cEngineState;
+ GLuint cEngineState;
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- while (((cEngineState & 0x80) == 0) ||
- ((cEngineState & 0x40) == 0) || ((cEngineState & 0x20) == 0))
- {
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- }
+ do {
+ cEngineState = MMIO_READ(REG_CommandQueue);
+ } while ((cEngineState & SiS_EngIdle) != SiS_EngIdle);
}
void
Wait2DEngIdle (sisContextPtr smesa)
{
- GLubyte *IOBase = GET_IOBase (smesa);
- GLbyte cEngineState;
+ GLuint cEngineState;
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- while (!(cEngineState & 0x80))
- {
- cEngineState = *((GLbyte volatile *) (IOBase + 0x8243));
- }
+ do {
+ cEngineState = MMIO_READ(REG_CommandQueue);
+ } while ((cEngineState & SiS_EngIdle2d) != SiS_EngIdle2d);
}
/* To be called from mWait3DCmdQueue. Separate function for profiling
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;
}
}
assert (0);
}
+ /* Parse configuration files */
+ driParseConfigFiles (&smesa->optionCache, &sisScreen->optionCache,
+ sisScreen->driScreen->myNum, "sis");
+
/* TODO: index mode */
smesa->CurrentQueueLenPtr = &(smesa->sarea->QueueLength);
smesa->AGPAddr = sisScreen->agp.handle;
/* set AGP command buffer */
- smesa->AGPCmdModeEnabled = GL_FALSE;
- if (smesa->AGPSize != 0 && getenv("SIS_NO_AGP") == NULL) {
- if (sisScreen->AGPCmdBufSize != 0) {
- smesa->AGPCmdBufBase = smesa->AGPBase + sisScreen->AGPCmdBufOffset;
- smesa->AGPCmdBufAddr = smesa->AGPAddr + sisScreen->AGPCmdBufOffset;
- smesa->AGPCmdBufSize = sisScreen->AGPCmdBufSize;
-
- smesa->pAGPCmdBufNext = (GLint *)&(smesa->sarea->AGPCmdBufNext);
- smesa->AGPCmdModeEnabled = GL_TRUE;
- }
+ if (smesa->AGPSize != 0 && sisScreen->AGPCmdBufSize != 0 &&
+ !driQueryOptionb(&smesa->optionCache, "agp_disable"))
+ {
+ smesa->AGPCmdBufBase = smesa->AGPBase + sisScreen->AGPCmdBufOffset;
+ smesa->AGPCmdBufAddr = smesa->AGPAddr + sisScreen->AGPCmdBufOffset;
+ smesa->AGPCmdBufSize = sisScreen->AGPCmdBufSize;
+
+ smesa->pAGPCmdBufNext = (GLint *)&(smesa->sarea->AGPCmdBufNext);
+ smesa->AGPCmdModeEnabled = GL_TRUE;
+ } else {
+ smesa->AGPCmdModeEnabled = GL_FALSE;
}
smesa->GlobalFlag = 0L;
_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 );
/* 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);
}
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.
#include "context.h"
#include "dri_util.h"
+#include "xmlconfig.h"
#include "sis_screen.h"
#include "sis_common2.h"
GLint hwTexEnvColor; /* Texture Blending Setting */
- GLint hwTexBlendClr0;
- GLint hwTexBlendClr1;
+ GLint hwTexBlendColor0;
+ GLint hwTexBlendColor1;
GLint hwTexBlendAlpha0;
GLint hwTexBlendAlpha1;
unsigned int backOffset;
unsigned int backPitch;
GLvoid *depthbuffer;
+ unsigned int depthOffset;
unsigned int depthPitch;
void *zbFree, *bbFree; /* Cookies for freeing buffers */
ENGPACKET zClearPacket, cbClearPacket;
sisScreenPtr sisScreen; /* Screen private DRI data */
SISSAREAPrivPtr sarea; /* Private SAREA data */
+
+ /* Configuration cache */
+ driOptionCache optionCache;
};
#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 ) \
/* 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); \
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.
current->hwZ &= ~MASK_ZBufferPitch;
current->hwZ |= smesa->width * z_depth >> 2;
- current->hwOffsetZ = ( (GLint)smesa->depthbuffer -
- (GLint)GET_FbBase(smesa) ) >> 2;
+ current->hwOffsetZ = smesa->depthOffset >> 2;
if ((current->hwOffsetZ != prev->hwOffsetZ) || (current->hwZ != prev->hwZ)) {
prev->hwOffsetZ = current->hwOffsetZ;
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$ */
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.
}
}
-#ifndef _SOLO
void
d2f_once (GLcontext * ctx)
{
close (fh);
}
}
-#endif
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.
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.
#include "sis_context.h"
#include "sis_state.h"
#include "swrast/swrast.h"
+
#include "macros.h"
static GLint convertFtToFogFt( GLfloat dwInValue );
sisDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params )
{
sisContextPtr smesa = SIS_CONTEXT(ctx);
+ __GLSiSHardware *prev = &smesa->prev;
__GLSiSHardware *current = &smesa->current;
float fArg;
{
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:
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 */
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;
}
}
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.
**************************************************************************/
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.
/**************************************************************************
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
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.3 2000/09/26 15:56:48 tsi Exp $ */
* 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
#define REG_3D_TexturePalette 0x8C00
/*
- * REG_QueueLen -- (8240h-8243h)
+ * REG_CommandQueue -- (8240h-8243h)
*/
#define MASK_QueueLen 0x0000ffff
#define SiS_EngIdle2d 0x80000000
#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
* REG_3D_TextureAlphaBlendSet0 (0x8B40 - 0x8B43)
* REG_3D_TextureAlphaBlendSet1 (0x8B44 - 0x8B46)
*/
-
-#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 RGB_DECAL__RGB_STAGE1 0xe1485000
-#define RGB_DECAL__A_STAGE1 0xa3230000
-#define RGBA_DECAL__RGB_STAGE1 0xe5394001
-#define RGBA_DECAL__A_STAGE1 0xa3230000
-
-#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 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 STAGE0_A_AF 0x63230000
+#define STAGE0_A_AS 0xc3230000
+#define STAGE0_A_AFAS 0x63c30000
+#define STAGE0_A_AFOMAS_ACAS 0x46c60001
+
+#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 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
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.
**************************************************************************/
sisScreen->driScreen = sPriv;
+ /* parse information in __driConfigOptions */
+ driParseOptionInfo(&sisScreen->optionCache);
+
return sisScreen;
}
*lpdwDest++ = *lpdwSrc++;
MMIO(REG_CMD0, *(GLint *)&pkt->stdwCmd);
- MMIO(REG_QueueLen, -1);
+ MMIO(REG_CommandQueue, -1);
}
static void sisCopyBuffer( __DRIdrawablePrivate *dPriv )
* The __driCreateScreen name is the symbol that libGL.so fetches.
* Return: pointer to a __DRIscreenPrivate.
*/
-#ifndef _SOLO
void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
int numConfigs, __GLXvisualConfig *config)
{
psp = __driUtilCreateScreen( dpy, scrn, psc, numConfigs, config, &sisAPI );
return (void *)psp;
}
-#else
-void *__driCreateScreen(struct DRIDriverRec *driver,
- struct DRIDriverContextRec *driverContext)
-{
- __DRIscreenPrivate *psp;
- psp = __driUtilCreateScreen(driver, driverContext, &sisAPI);
- return (void *) psp;
-}
-#endif
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$ */
__DRIscreenPrivate *driScreen;
unsigned int sarea_priv_offset;
+ /* Configuration cache with default values for all contexts */
+ driOptionCache optionCache;
+
} sisScreenRec, *sisScreenPtr;
#endif
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.
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$ */
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.
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) {
}
}
-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
*/
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 );
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)
{
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;
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$ */
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.
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$ */
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$ */
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$ */
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.
sisTexObjPtr t = texObj->DriverData;
- /*
- current->hwTexBlendClr0 = RGB_STAGE1;
- current->hwTexBlendAlpha0 = A_STAGE1;
- */
-
switch (texture_unit->EnvMode)
{
case GL_REPLACE:
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;
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;
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;
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;
}
sisTexObjPtr t = texObj->DriverData;
- /*
- current->hwTexBlendClr1 = RGB_STAGE1; current->hwTexBlendAlpha1 =
- A_STAGE1;
- */
-
switch (texture_unit->EnvMode)
{
case GL_REPLACE:
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;
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;
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;
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;
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;
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.
tnl->Driver.Render.BuildVertices = sisBuildVertices;
tnl->Driver.Render.Multipass = NULL;
- if (getenv("SIS_FORCE_FALLBACK") != NULL)
+ if (driQueryOptionb(&smesa->optionCache, "fallback_force"))
sisFallback(ctx, SIS_FALLBACK_FORCE, 1);
else
sisFallback(ctx, SIS_FALLBACK_FORCE, 0);
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.
**************************************************************************/
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.
**************************************************************************/
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.
**************************************************************************/
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.
**************************************************************************/