merge trunk into 64bit branch.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:56
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
cpudtect.asm Page 1 - 1
|
||||
|
||||
|
||||
@@ -23,6 +23,10 @@ cpudtect.asm Page 1 - 1
|
||||
;;
|
||||
;; $Header$
|
||||
;; $Log$
|
||||
;; Revision 1.3 2000/11/15 23:32:52 joseph
|
||||
;; Syncing up with 3dfx internal source repository. These changes contain a
|
||||
;; number of bug fixes.
|
||||
;;
|
||||
;; Revision 1.1 2000/06/15 00:27:42 joseph
|
||||
;; Initial checkin into SourceForge.
|
||||
;;
|
||||
@@ -321,7 +325,7 @@ cpudtect.asm Page 1 - 1
|
||||
|
||||
000001D0 _TEXT ENDS
|
||||
END
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:56
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
cpudtect.asm Symbols 2 - 1
|
||||
|
||||
|
||||
@@ -379,7 +383,9 @@ CPUTypeP5 . . . . . . . . . . . Number 00000005h
|
||||
CPUTypeP6 . . . . . . . . . . . Number 00000006h
|
||||
CPUTypePrePent . . . . . . . . . Number 00000004h
|
||||
CPUTypeUnknown . . . . . . . . . Number FFFFFFFFh
|
||||
GDBG_INFO_ON . . . . . . . . . . Text
|
||||
GLIDE_ALT_TAB . . . . . . . . . Text
|
||||
GLIDE_DEBUG . . . . . . . . . . Text
|
||||
GLIDE_INIT_HWC . . . . . . . . . Text
|
||||
GLIDE_PACKED_RGB . . . . . . . . Text 0
|
||||
GLIDE_TRI_CULLING . . . . . . . Text 1
|
||||
|
||||
@@ -20,6 +20,13 @@
|
||||
|
||||
/* $Header$ *
|
||||
/* $Log$
|
||||
/* Revision 1.3 2000/11/15 23:32:52 joseph
|
||||
/* Syncing up with 3dfx internal source repository. These changes contain a
|
||||
/* number of bug fixes.
|
||||
/*
|
||||
/* Revision 1.2.2.1 2000/08/30 08:37:51 alanh
|
||||
/* Voodoo5 changes for 64bit architectures
|
||||
/*
|
||||
/* Revision 1.2 2000/06/27 19:59:34 joseph
|
||||
/* Previous checkin of asm files were already preprocessed.
|
||||
/* Fixed build rules for 3DNow optimized assembly.
|
||||
|
||||
@@ -1,28 +1,73 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** Copyright (c) 1997, 3Dfx Interactive, Inc.
|
||||
** All Rights Reserved.
|
||||
**
|
||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
||||
** the contents of this file may not be disclosed to third parties, copied or
|
||||
** duplicated in any form, in whole or in part, without the prior written
|
||||
** permission of 3Dfx Interactive, Inc.
|
||||
**
|
||||
** RESTRICTED RIGHTS LEGEND:
|
||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
||||
** rights reserved under the Copyright Laws of the United States.
|
||||
**
|
||||
** $Header$
|
||||
** $Log$
|
||||
** Revision 1.2 2000/06/26 21:26:24 joseph
|
||||
** Merged with 3dfx internal source repository so that the source base stays
|
||||
** up to date.
|
||||
**
|
||||
** $Log:
|
||||
** 22 3dfx 1.17.1.0.1.210/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 21 3dfx 1.17.1.0.1.109/15/00 troy thornton grqueryresolutions now
|
||||
** checks the refreshrate of the monitor before returning a valid screen mode
|
||||
**
|
||||
** 20 3dfx 1.17.1.0.1.008/29/00 Jonny Cochrane Some 8x FSAA code
|
||||
** 19 3dfx 1.17.1.0 06/07/00 Daoxiang Gong Fixes PRS 14363. Make sure
|
||||
** grGet returns proper color bit depth info.
|
||||
** 18 3dfx 1.17 04/17/00 Adam Briggs added
|
||||
** grGetRegistryOrEnvironmentStringExt call so that OpenGL has an easy way to
|
||||
** read environment settings from the registry. To save you the trouble of
|
||||
** asking, the answer is no, I could not think of a longer name for the
|
||||
** function. I did try, though.
|
||||
** 17 3dfx 1.16 04/10/00 Larry warner Report max texture size
|
||||
** 2048 for Napalm and 256 otherwise.
|
||||
** 16 3dfx 1.15 04/06/00 Larry warner So much for the palindrome.
|
||||
** 15 3dfx 1.14 03/31/00 Kenneth Dyke Get number of chips from
|
||||
** bInfo so we report back the right kind of card. (Cosmetic).
|
||||
** 14 3dfx 1.13 02/22/00 Kenneth Dyke Base min/max z and w buffer
|
||||
** values on actual pixel depth, and not on the hardware we're on.
|
||||
** 13 3dfx 1.12 02/10/00 Adam Briggs grGet(GR_NUM_FB) now
|
||||
** returns the number of chips on a board.
|
||||
** 12 3dfx 1.11 01/31/00 Adam Briggs changed the IS_NAPALM macro
|
||||
** to cooperate with the display driver version of the same
|
||||
** 11 3dfx 1.10 01/31/00 Adam Briggs Changed all device ID magic
|
||||
** numbers to use those defined in fxhal.h & added IS_NAPALM macro to test
|
||||
** against device ID range
|
||||
** 10 3dfx 1.9 01/30/00 Adam Briggs get napalm status correctly
|
||||
** 9 3dfx 1.8 01/18/00 Kenneth Dyke Fix query value for maximum
|
||||
** texture size.
|
||||
** 8 3dfx 1.7 01/04/00 Adam Briggs changed grGetGammaTable to
|
||||
** be an extension called grGetGammaTableExt
|
||||
** 7 3dfx 1.6 12/13/99 Adam Briggs Made
|
||||
** grGetString(GR_HARDWARE) return Voodoo4 or VoodooV instead of Napalm
|
||||
** 6 3dfx 1.5 12/10/99 Leo Galway Removed previous hi-res
|
||||
** mode information for Glide3. These modes were only necessary for
|
||||
** Cornerstone (or future hi-res) support in RT4.2 source branch and
|
||||
** proceeded to break the V3 and V2 builds (from 3dfx view), hence they have
|
||||
** been removed.
|
||||
** 5 3dfx 1.4 12/08/99 Leo Galway Added mode information for
|
||||
** 1600x1280, 1792x1440, 1920x1080, 1920x1200, 2046x1536 (as a result of
|
||||
** glide being tested with Cornerstone modes). Although not all of these
|
||||
** modes are currently capable under Glide, their inclusion prevents Glide
|
||||
** apps from displaying in incorrect modes when these hi-res modes are
|
||||
** selected. Search for SUSTAINED_ENGINEERING_CHANGE_BEGIN.
|
||||
** 4 3dfx 1.3 10/26/99 Anthony tai workaround for calling
|
||||
** grGetString before the gc exist
|
||||
** 3 3dfx 1.2 09/28/99 Anthony tai workaround for dct bug
|
||||
** 2 3dfx 1.1 09/22/99 Adam Briggs Added
|
||||
** grConstantColorValueExt
|
||||
** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator
|
||||
** $
|
||||
**
|
||||
** 93 9/09/99 4:19p Adamb
|
||||
** Added TEXTUREBUFFER to GR_EXTENSION string
|
||||
@@ -389,17 +434,47 @@ GR_DIENTRY(grGet, FxU32, (FxU32 pname, FxU32 plength, FxI32 *params))
|
||||
switch(pname) {
|
||||
case GR_BITS_DEPTH:
|
||||
if (plength == 4) {
|
||||
GR_DCL_GC;
|
||||
retVal = plength;
|
||||
*params = SST1_BITS_DEPTH;
|
||||
*params = gc->bInfo->h3pixelSize << 3 ;
|
||||
}
|
||||
break;
|
||||
case GR_BITS_RGBA:
|
||||
if (plength == 16) {
|
||||
retVal = plength;
|
||||
*params = 5;
|
||||
*(params+1) = 6;
|
||||
*(params+2) = 5;
|
||||
*(params+3) = 0;
|
||||
GR_DCL_GC;
|
||||
retVal = plength;
|
||||
switch(gc->grPixelFormat)
|
||||
{
|
||||
case GR_PIXFMT_RGB_565:
|
||||
case GR_PIXFMT_AA_2_RGB_565:
|
||||
case GR_PIXFMT_AA_4_RGB_565:
|
||||
case GR_PIXFMT_AA_8_RGB_565: /* 8xaa */
|
||||
*params = 5;
|
||||
*(params+1) = 6;
|
||||
*(params+2) = 5;
|
||||
*(params+3) = 0;
|
||||
break;
|
||||
case GR_PIXFMT_ARGB_1555:
|
||||
case GR_PIXFMT_AA_2_ARGB_1555:
|
||||
case GR_PIXFMT_AA_4_ARGB_1555:
|
||||
case GR_PIXFMT_AA_8_ARGB_1555: /* 8xaa */
|
||||
*params = 5;
|
||||
*(params+1) = 5;
|
||||
*(params+2) = 5;
|
||||
*(params+3) = 1;
|
||||
break;
|
||||
case GR_PIXFMT_ARGB_8888:
|
||||
case GR_PIXFMT_AA_2_ARGB_8888:
|
||||
case GR_PIXFMT_AA_4_ARGB_8888:
|
||||
case GR_PIXFMT_AA_8_ARGB_8888: /* 8xaa */
|
||||
*params = 8;
|
||||
*(params+1) = 8;
|
||||
*(params+2) = 8;
|
||||
*(params+3) = 8;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case GR_FIFO_FULLNESS:
|
||||
@@ -1142,7 +1217,7 @@ GR_DIENTRY(grQueryResolutions, FxI32, (const GlideResolution *resTemplate, Glide
|
||||
for (j = min_ref; j <= max_ref; j++) {
|
||||
FxBool resSuported;
|
||||
GDBG_INFO(80, FN_NAME ": _grResolutionRefresh passed\n");
|
||||
resSuported = hwcResolutionSupported(gc->bInfo, i);
|
||||
resSuported = hwcResolutionSupported(gc->bInfo, i, j);
|
||||
GDBG_INFO(80, FN_NAME ": hwcResolutionSupported returned %s\n",
|
||||
resSuported ? "FXTRUE" : "FXFALSE");
|
||||
if (resSuported) {
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -20,6 +20,14 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 33 3dfx 1.25.1.2.1.311/14/00 Jonny Cochrane Implement multisample LOD
|
||||
** Dithering for 2x and 4x FSAA modes
|
||||
** 32 3dfx 1.25.1.2.1.210/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 31 3dfx 1.25.1.2.1.109/26/00 Andy Hanson Add environment variable of
|
||||
** glide group so they can do wacky things safely.
|
||||
** 30 3dfx 1.25.1.2.1.009/19/00 Matt McClure Added a call to win_mode.c
|
||||
** to enable OpenGL.
|
||||
** 29 3dfx 1.25.1.2 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 28 3dfx 1.25.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -1481,6 +1489,8 @@ _grValidateTMUState()
|
||||
|
||||
palletizedTexture = gc->state.palletizedTexture[0] | gc->state.palletizedTexture[1];
|
||||
|
||||
|
||||
|
||||
for(tmu = 0; tmu < gc->num_tmu; tmu++) {
|
||||
tmuSource = tmu;
|
||||
|
||||
@@ -1618,7 +1628,8 @@ _grValidateTMUState()
|
||||
/* Mark TMU state as valid. */
|
||||
gc->state.tmuInvalid[tmu] = 0;
|
||||
|
||||
} else {
|
||||
|
||||
} else {
|
||||
#if DEBUG_2PPC
|
||||
GDBG_PRINTF("TMU%d not required by downstream units or passthrough enabled\n",tmu);
|
||||
#endif
|
||||
@@ -1785,6 +1796,7 @@ _grValidateTMUState()
|
||||
|
||||
} else {
|
||||
#endif
|
||||
|
||||
/* Set LOD on TMU to 1x1. */
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
|
||||
@@ -1804,7 +1816,11 @@ _grValidateTMUState()
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
|
||||
}
|
||||
#undef FN_NAME
|
||||
}
|
||||
|
||||
@@ -2573,8 +2589,20 @@ GR_DIENTRY(grEnable, void , (GrEnableMode_t mode) )
|
||||
}
|
||||
break;
|
||||
case GR_OPENGL_MODE_EXT:
|
||||
/* Set up some stuff that's affected by OpenGL's behaviour. */
|
||||
_GlideRoot.environment.sliBandHeightForce = FXTRUE;
|
||||
{
|
||||
#ifdef WIN32
|
||||
/* EnableOpenGL - Win_Mode.c
|
||||
** Allow minihwc to know about OpenGL
|
||||
*/
|
||||
void EnableOpenGL ( void );
|
||||
|
||||
EnableOpenGL();
|
||||
/* setup env to determine whether we are an OGL app */
|
||||
_GlideRoot.environment.is_opengl=FXTRUE;
|
||||
#endif
|
||||
/* Set up some stuff that's affected by OpenGL's behaviour. */
|
||||
_GlideRoot.environment.sliBandHeightForce = FXTRUE;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
@@ -2641,6 +2669,9 @@ GR_DIENTRY(grDisable, void , (GrEnableMode_t mode) )
|
||||
gc->state.grEnableArgs.stencil_mode = GR_MODE_DISABLE;
|
||||
INVALIDATE(stencilMode);
|
||||
break;
|
||||
case GR_OPENGL_MODE_EXT:
|
||||
_GlideRoot.environment.is_opengl=FXFALSE;
|
||||
break;
|
||||
#ifdef FX_GLIDE_NAPALM
|
||||
case GR_AA_MULTI_SAMPLE:
|
||||
{
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 10 3dfx 1.4.1.3.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 9 3dfx 1.4.1.3 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 8 3dfx 1.4.1.2 06/20/00 Joseph Kain Changes to support the
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** Copyright (c) 1995, 3Dfx Interactive, Inc
|
||||
** All Rights Reserved
|
||||
*
|
||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.
|
||||
** the contents of this file may not be disclosed to third parties, copied o
|
||||
** duplicated in any form, in whole or in part, without the prior writte
|
||||
** permission of 3Dfx Interactive, Inc
|
||||
*
|
||||
** RESTRICTED RIGHTS LEGEND
|
||||
** Use, duplication or disclosure by the Government is subject to restriction
|
||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Dat
|
||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar o
|
||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished
|
||||
** rights reserved under the Copyright Laws of the United States
|
||||
*
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 14 3dfx 1.8.1.2.1.1 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 13 3dfx 1.8.1.2.1.0 07/21/00 Adam Briggs don't try to bump > 0xffff
|
||||
** at a time
|
||||
** 12 3dfx 1.8.1.2 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 11 3dfx 1.8.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -683,7 +684,17 @@ _grBumpNGrind()
|
||||
#else /* !HAL_CSIM */
|
||||
FIFO_CACHE_FLUSH(gc->cmdTransportInfo.fifoPtr);
|
||||
P6FENCE;
|
||||
GR_CAGP_SET(bump, gc->cmdTransportInfo.fifoPtr - gc->cmdTransportInfo.lastBump);
|
||||
|
||||
/* AH FUK: the bump register can only handle a 16bit value */
|
||||
while ((gc->cmdTransportInfo.fifoPtr - gc->cmdTransportInfo.lastBump) > 0xFFFFL)
|
||||
{
|
||||
GR_CAGP_SET(bump, 0xFFFFL);
|
||||
gc->cmdTransportInfo.lastBump += 0xFFFFL ;
|
||||
}
|
||||
|
||||
if (gc->cmdTransportInfo.fifoPtr - gc->cmdTransportInfo.lastBump)
|
||||
GR_CAGP_SET(bump, gc->cmdTransportInfo.fifoPtr - gc->cmdTransportInfo.lastBump);
|
||||
|
||||
gc->cmdTransportInfo.lastBump = gc->cmdTransportInfo.fifoPtr;
|
||||
gc->cmdTransportInfo.bumpPos = gc->cmdTransportInfo.fifoPtr + (gc->cmdTransportInfo.bumpSize);
|
||||
if (gc->cmdTransportInfo.bumpPos > gc->cmdTransportInfo.fifoEnd)
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
*
|
||||
* $Header$
|
||||
* $Log:
|
||||
* 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
* branching.
|
||||
* 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
* Napalm Glide open source release. Changes include cleaned up offensive
|
||||
* comments and new legal headers.
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
** $Revision$
|
||||
** $Date$
|
||||
** $Log:
|
||||
** 7 3dfx 1.4.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 6 3dfx 1.4.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Revision$
|
||||
** $Date$
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Header: fxglide.h, 44, 6/15/2000 9:18:11 AM, Bill White
|
||||
** $Log:
|
||||
@@ -2003,6 +2003,7 @@ struct _GlideRoot_s {
|
||||
FxBool texLodDither; /* Always do lod-dithering */
|
||||
FxI32 tmuMemory; /* tmuMemory */
|
||||
float gammaR, gammaG, gammaB; /* Gamma settings */
|
||||
FxBool useAppGamma; /* enable(1)(default)/disable(0) application gamma control */
|
||||
FxBool guardbandclipping; /* enable gbc */
|
||||
FxI32 do2ppc; /* enable 2ppc */
|
||||
FxU32 band2ppc; /* 2ppc band */
|
||||
@@ -2015,6 +2016,7 @@ struct _GlideRoot_s {
|
||||
FxI32 analogSli ; /* force digital or analog sli */
|
||||
FxI32 lodBias; /* User-adjustable lod bias value (signed) */
|
||||
FxU32 sliBandHeightForce; /* Force user-specified band height */
|
||||
FxU32 is_opengl; /* specify whether we are opengl app or not */
|
||||
FxU32 noHW; /* Disable HW writes */
|
||||
|
||||
/* Force alternate buffer strategy */
|
||||
@@ -2030,8 +2032,8 @@ struct _GlideRoot_s {
|
||||
FxU32 columnWidth; /* 'n' in columns of n */
|
||||
|
||||
/* Anti-aliasing default perturbation values */
|
||||
FxU32 aaXOffset[4][4];
|
||||
FxU32 aaYOffset[4][4];
|
||||
FxU32 aaXOffset[10][8]; /* increase arrays for 8xaa */
|
||||
FxU32 aaYOffset[10][8];
|
||||
/* Limit number of writes between fences */
|
||||
FxI32 fenceLimit;
|
||||
} environment;
|
||||
@@ -3147,5 +3149,9 @@ extern const FxU32 _gr_aspect_xlate_table[];
|
||||
GrLOD_t
|
||||
_g3LodXlat(const GrLOD_t someLOD, const FxBool tBig);
|
||||
|
||||
extern void g3LodBiasPerChip(void);
|
||||
|
||||
extern FxBool MultitextureAndTrilinear(void);
|
||||
|
||||
#endif /* __FXGLIDE_H__ */
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -81,6 +81,10 @@ typedef FxU32 GrPixelFormat_t;
|
||||
#define GR_PIXFMT_AA_4_RGB_565 0x0009
|
||||
#define GR_PIXFMT_AA_4_ARGB_1555 0x000a
|
||||
#define GR_PIXFMT_AA_4_ARGB_8888 0x000b
|
||||
#define GR_PIXFMT_AA_8_RGB_565 0x000c /* 8xaa */
|
||||
#define GR_PIXFMT_AA_8_ARGB_1555 0x000d
|
||||
#define GR_PIXFMT_AA_8_ARGB_8888 0x000e
|
||||
|
||||
|
||||
#define GR_LFBWRITEMODE_Z32 0x0008
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 5 3dfx 1.2.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 4 3dfx 1.2.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 11 3dfx 1.5.1.2.1.1 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 10 3dfx 1.5.1.2.1.0 07/10/00 troy thornton changed grDrawPoints to
|
||||
** draw points in FSAA
|
||||
** 9 3dfx 1.5.1.2 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 8 3dfx 1.5.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -431,6 +435,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
*/
|
||||
#define kNumMantissaBits 12UL
|
||||
const float bias = (const float)(3UL << kNumMantissaBits);
|
||||
|
||||
|
||||
GR_BEGIN_NOFIFOCHECK(FN_NAME, 90);
|
||||
|
||||
@@ -495,13 +500,13 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
* triangle from the first packet sent.
|
||||
*/
|
||||
|
||||
/* Mask off the real fractional bits from the mantissa */
|
||||
/* Mask off the real fractional bits from the mantissa */
|
||||
x = ((*(FxU32*)&gc->pool.ftemp1 & (0xFFFFFFFFUL << (22UL - kNumMantissaBits))) +
|
||||
(0x01UL << (22UL - kNumMantissaBits)));
|
||||
y = ((*(FxU32*)&gc->pool.ftemp2 & (0xFFFFFFFFUL << (22UL - kNumMantissaBits))) +
|
||||
(0x01UL << (22UL - kNumMantissaBits)));
|
||||
|
||||
/* Lower right corner */
|
||||
|
||||
/* Lower right corner */
|
||||
DA_SET(x);
|
||||
DA_SET(y);
|
||||
|
||||
@@ -516,8 +521,8 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
|
||||
/* Packet w/ actual point coordinate and parameter data */
|
||||
DA_CONT(kSetupStrip | kSetupCullDisable, gc->cmdTransportInfo.paramMask,
|
||||
1, gc->state.vData.vSize, SSTCP_PKT3_DDDDDD);
|
||||
|
||||
1, gc->state.vData.vSize, SSTCP_PKT3_DDDDDD);
|
||||
|
||||
i = gc->tsuDataList[dataElem];
|
||||
DA_SET(x);
|
||||
DA_SET(y);
|
||||
@@ -540,7 +545,7 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
float *vPtr;
|
||||
FxI32 k, i;
|
||||
FxI32 vcount = count >= POINTS_BUFFER ? POINTS_BUFFER : count;
|
||||
GR_SET_EXPECTED_SIZE((3*gc->state.vData.vSize) * vcount, vcount);
|
||||
GR_SET_EXPECTED_SIZE((gc->state.vData.vSize << 2) * vcount, vcount);
|
||||
|
||||
/* begin points routine */
|
||||
DA_BEGIN;
|
||||
@@ -560,20 +565,23 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
FxU32 dataElem;
|
||||
|
||||
DA_CONT(kSetupStrip | kSetupCullDisable, gc->cmdTransportInfo.paramMask,
|
||||
3, -1/*NOT USED*//*gc->state.vData.vSize * 3*/, SSTCP_PKT3_BDDDDD);
|
||||
4, -1/*NOT USED*//*gc->state.vData.vSize * 3*/, SSTCP_PKT3_BDDDDD);
|
||||
|
||||
x = FARRAY(vPtr, gc->state.vData.vertexInfo.offset) + 0.5f;
|
||||
y = FARRAY(vPtr, gc->state.vData.vertexInfo.offset + 4) + 0.5f;
|
||||
|
||||
x += lbias;
|
||||
y += lbias;
|
||||
|
||||
/* Convert to 32-bit representation */
|
||||
x = FARRAY(vPtr, gc->state.vData.vertexInfo.offset);
|
||||
y = FARRAY(vPtr, gc->state.vData.vertexInfo.offset + 4);
|
||||
|
||||
x += .5f;
|
||||
y += .5f;
|
||||
x = x + lbias;
|
||||
y = y + lbias;
|
||||
x = x - lbias;
|
||||
y = y - lbias;
|
||||
gc->pool.ftemp1 = (const float)x;
|
||||
gc->pool.ftemp2 = (const float)y;
|
||||
|
||||
/* Correct the bias to get rid of the fractional bits */
|
||||
x = (volatile float)gc->pool.ftemp1 - lbias;
|
||||
y = (volatile float)gc->pool.ftemp2 - lbias;
|
||||
|
||||
/* Lower right corner */
|
||||
/* Lower right corner */
|
||||
DA_SETF(x);
|
||||
DA_SETF(y);
|
||||
dataElem = 0;
|
||||
@@ -589,8 +597,8 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
i = gc->tsuDataList[dataElem];
|
||||
}
|
||||
|
||||
/* Upper right corner */
|
||||
y -= .5f;
|
||||
/* Upper right corner */
|
||||
y -= 1.0f;
|
||||
DA_SETF(x);
|
||||
DA_SETF(y);
|
||||
dataElem = 0;
|
||||
@@ -601,12 +609,11 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
i = gc->tsuDataList[dataElem];
|
||||
}
|
||||
|
||||
/* Upper Left corner */
|
||||
x -= .5f;
|
||||
|
||||
/* Lower left corner */
|
||||
y += 1.0f;
|
||||
x -= 1.0f;
|
||||
DA_SETF(x);
|
||||
DA_SETF(y);
|
||||
|
||||
dataElem = 0;
|
||||
i = gc->tsuDataList[dataElem];
|
||||
while (i != GR_DLIST_END) {
|
||||
@@ -614,7 +621,19 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
dataElem++;
|
||||
i = gc->tsuDataList[dataElem];
|
||||
}
|
||||
}
|
||||
|
||||
/* Upper leftcorner */
|
||||
y += 1.0f;
|
||||
DA_SETF(x);
|
||||
DA_SETF(y);
|
||||
dataElem = 0;
|
||||
i = gc->tsuDataList[dataElem];
|
||||
while (i != GR_DLIST_END) {
|
||||
DA_SET(ARRAY(vPtr, i));
|
||||
dataElem++;
|
||||
i = gc->tsuDataList[dataElem];
|
||||
}
|
||||
}
|
||||
}
|
||||
DA_END;
|
||||
GR_CHECK_SIZE();
|
||||
@@ -631,10 +650,11 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
float oow;
|
||||
|
||||
while (count > 0) {
|
||||
float lbias = (float)( 3 << 22);
|
||||
float *vPtr;
|
||||
FxI32 k;
|
||||
FxI32 vcount = count >= POINTS_BUFFER ? POINTS_BUFFER : count;
|
||||
GR_SET_EXPECTED_SIZE(((sizeof(FxU32) << 2) + gc->state.vData.vSize) * vcount, vcount << 1);
|
||||
GR_SET_EXPECTED_SIZE((gc->state.vData.vSize << 2) * vcount, vcount << 1);
|
||||
|
||||
/* begin points routine */
|
||||
DA_BEGIN;
|
||||
@@ -647,48 +667,59 @@ _grDrawPoints(FxI32 mode, FxI32 count, void *pointers)
|
||||
oow = 1.0f / FARRAY(vPtr, gc->state.vData.wInfo.offset);
|
||||
(float *)pointers += stride;
|
||||
|
||||
{
|
||||
FxU32 x, y;
|
||||
{
|
||||
float fx, fy;
|
||||
|
||||
DA_CONT(kSetupStrip | kSetupCullDisable, 0x00,
|
||||
0x02, sizeof(FxU32) << 1, SSTCP_PKT3_BDDDDD);
|
||||
0x03, sizeof(FxU32) << 1, SSTCP_PKT3_BDDDDD);
|
||||
|
||||
/* Convert to 32-bit representation */
|
||||
|
||||
gc->pool.ftemp1 = (FARRAY(vPtr, gc->state.vData.vertexInfo.offset) *
|
||||
oow *
|
||||
gc->state.Viewport.hwidth +
|
||||
gc->state.Viewport.ox +
|
||||
bias);
|
||||
gc->state.Viewport.ox +
|
||||
0.5f);
|
||||
gc->pool.ftemp2 = (FARRAY(vPtr, gc->state.vData.vertexInfo.offset + 4) *
|
||||
oow *
|
||||
gc->state.Viewport.hheight +
|
||||
gc->state.Viewport.oy +
|
||||
bias);
|
||||
0.5f);
|
||||
|
||||
/* Mask off the real fractional bits from the mantissa */
|
||||
x = ((*(FxU32*)&gc->pool.ftemp1 & (0xFFFFFFFFUL << (22UL - kNumMantissaBits))) +
|
||||
(0x01UL << (22UL - kNumMantissaBits)));
|
||||
y = ((*(FxU32*)&gc->pool.ftemp2 & (0xFFFFFFFFUL << (22UL - kNumMantissaBits))) +
|
||||
(0x01UL << (22UL - kNumMantissaBits)));
|
||||
|
||||
/* Lower right cornder */
|
||||
DA_SET(x);
|
||||
DA_SET(y);
|
||||
fx = gc->pool.ftemp1;
|
||||
fy = gc->pool.ftemp2;
|
||||
|
||||
/* Upper right corner. */
|
||||
y -= (0x01UL << (21UL - kNumMantissaBits));
|
||||
DA_SET(x);
|
||||
DA_SET(y);
|
||||
gc->pool.ftemp1 += lbias;
|
||||
gc->pool.ftemp2 += lbias;
|
||||
|
||||
fx = gc->pool.ftemp1 - lbias;
|
||||
fy = gc->pool.ftemp2 - lbias;
|
||||
|
||||
/* Lower right corner */
|
||||
DA_SETF(fx);
|
||||
DA_SETF(fy);
|
||||
|
||||
/* Upper right corner. */
|
||||
fy -= 1.0f;
|
||||
DA_SETF(fx);
|
||||
DA_SETF(fy);
|
||||
|
||||
/* Lower left corner */
|
||||
fy += 1.0f;
|
||||
fx -= 1.0f;
|
||||
DA_SETF(fx);
|
||||
DA_SETF(fy);
|
||||
|
||||
/* Upper Left corner */
|
||||
x -= (0x01UL << (21UL - kNumMantissaBits));
|
||||
|
||||
/* Packet w/ actual point coordinate and parameter data */
|
||||
DA_CONT(kSetupStrip | kSetupCullDisable, gc->cmdTransportInfo.paramMask,
|
||||
1, gc->state.vData.vSize, SSTCP_PKT3_DDDDDD);
|
||||
|
||||
|
||||
DA_SET(x);
|
||||
DA_SET(y);
|
||||
/*Upper left corner */
|
||||
fy -= 1.0f;
|
||||
DA_SETF(fx);
|
||||
DA_SETF(fy);
|
||||
|
||||
DA_VP_SETFS(vPtr, oow);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,27 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 6 3dfx 1.1.1.2.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 5 3dfx 1.1.1.2 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 4 3dfx 1.1.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
|
||||
@@ -1,25 +1,28 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 51 3dfx 1.41.1.6.1.110/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 50 3dfx 1.41.1.6.1.008/29/00 Jonny Cochrane Some 8x FSAA code
|
||||
** 49 3dfx 1.41.1.6 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 48 3dfx 1.41.1.5 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -1816,12 +1819,7 @@ GR_ENTRY(grBufferClear, void, (GrColor_t color, GrAlpha_t alpha, FxU32 depth))
|
||||
} else {
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 2, 0x3);
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->buffers0[gc->windowed ? 0 : gc->curBuffer]);
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride,gc->state.shadow.colBufferStride);
|
||||
REG_GROUP_END();
|
||||
#ifdef FX_GLIDE_NAPALM
|
||||
if (IS_NAPALM(gc->bInfo->pciInfo.deviceID)) {
|
||||
@@ -2300,12 +2298,7 @@ GR_EXT_ENTRY(grBufferClearExt, void, (GrColor_t color, GrAlpha_t alpha, FxU32 de
|
||||
/* tbext */
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 2, 0x3) ;
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->state.shadow.auxBufferAddr) ;
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.auxBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.auxBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.auxBufferStride) ;
|
||||
REG_GROUP_END() ;
|
||||
|
||||
#ifdef FX_GLIDE_NAPALM
|
||||
@@ -2350,12 +2343,7 @@ GR_EXT_ENTRY(grBufferClearExt, void, (GrColor_t color, GrAlpha_t alpha, FxU32 de
|
||||
} else {
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 2, 0x3) ;
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->buffers0[gc->windowed ? 0 : gc->curBuffer]) ;
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride,gc->state.shadow.colBufferStride) ;
|
||||
REG_GROUP_END() ;
|
||||
|
||||
#ifdef FX_GLIDE_NAPALM
|
||||
@@ -5017,10 +5005,10 @@ GR_DDFUNC(_grACExtcombineMode, void, (GrACUColor_t a,
|
||||
GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
{
|
||||
#define FN_NAME "grTBufferWriteMaskExt"
|
||||
FxU32 defaultXOffset0[4] = {0x7a, 0x2, 0x7c, 0x4};
|
||||
FxU32 defaultYOffset0[4] = {0x7b, 0x4, 0x3, 0x7d};
|
||||
FxU32 defaultXOffset1[4] = {0x2, 0x7a, 0x4, 0x7c};
|
||||
FxU32 defaultYOffset1[4] = {0x4, 0x7b, 0x7d, 0x3};
|
||||
/* increase arrays for 8xaa */
|
||||
FxU32 defaultXOffset0[8] = {0x7a, 0x2, 0x7c, 0x4, 0x7a, 0x2, 0x7c, 0x4};
|
||||
FxU32 defaultYOffset0[8] = {0x7b, 0x4, 0x3, 0x7d, 0x7a, 0x2, 0x7c, 0x4};
|
||||
|
||||
FxU32 chipIndex, chipEnList, i;
|
||||
GR_BEGIN_NOFIFOCHECK("grTBufferWriteMaskExt",85);
|
||||
GDBG_INFO_MORE(gc->myLevel, "(0x%x)\n", tmask);
|
||||
@@ -5038,12 +5026,12 @@ GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
}
|
||||
|
||||
/* This is sortof slow, but this function doesn't need to be that fast. */
|
||||
for(i = 0; i < 4; i++) {
|
||||
/* 8xaa - loop to load 8 sample offsets */
|
||||
for(i = 0; i < 8; i++) {
|
||||
defaultXOffset0[i] = _GlideRoot.environment.aaXOffset[gc->grPixelSample - 1][i];
|
||||
defaultYOffset0[i] = _GlideRoot.environment.aaYOffset[gc->grPixelSample - 1][i];
|
||||
defaultXOffset1[i] = _GlideRoot.environment.aaXOffset[gc->grPixelSample - 1][i^1];
|
||||
defaultYOffset1[i] = _GlideRoot.environment.aaYOffset[gc->grPixelSample - 1][i^1];
|
||||
}
|
||||
|
||||
chipEnList = gc->chipmask;
|
||||
|
||||
for (chipIndex = 0; chipIndex < gc->chipCount; chipIndex++) {
|
||||
@@ -5068,12 +5056,7 @@ GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 4, 0xf);
|
||||
{
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->state.shadow.colBufferAddr);
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride);
|
||||
REG_GROUP_SET(hw, auxBufferAddr, gc->state.shadow.auxBufferAddr);
|
||||
REG_GROUP_SET(hw, auxBufferStride, gc->state.shadow.auxBufferStride);
|
||||
}
|
||||
@@ -5093,12 +5076,7 @@ GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 4, 0xf);
|
||||
{
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->state.shadow.colBufferAddr);
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride);
|
||||
REG_GROUP_SET(hw, auxBufferAddr, gc->state.shadow.auxBufferAddr);
|
||||
REG_GROUP_SET(hw, auxBufferStride, gc->state.shadow.auxBufferStride);
|
||||
}
|
||||
@@ -5116,12 +5094,7 @@ GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 4, 0xf);
|
||||
{
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->state.shadow.colBufferAddr);
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride);
|
||||
REG_GROUP_SET(hw, auxBufferAddr, gc->state.shadow.auxBufferAddr);
|
||||
REG_GROUP_SET(hw, auxBufferStride, gc->state.shadow.auxBufferStride);
|
||||
}
|
||||
@@ -5129,12 +5102,7 @@ GR_EXT_ENTRY(grTBufferWriteMaskExt, void , (FxU32 tmask) )
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 4, 0xf);
|
||||
{
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->buffers1[gc->curBuffer] | SST_BUFFER_BASE_SELECT);
|
||||
#ifdef __linux__
|
||||
REG_GROUP_SET(hw, colBufferStride, (!gc->curBuffer) ? driInfo.stride :
|
||||
gc->state.shadow.colBufferStride );
|
||||
#else
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride );
|
||||
#endif
|
||||
REG_GROUP_SET(hw, colBufferStride, gc->state.shadow.colBufferStride);
|
||||
REG_GROUP_SET(hw, auxBufferAddr, gc->buffers1[gc->grColBuf] | SST_BUFFER_BASE_SELECT);
|
||||
REG_GROUP_SET(hw, auxBufferStride, gc->state.shadow.auxBufferStride);
|
||||
}
|
||||
|
||||
@@ -1,24 +1,31 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 14 3dfx 1.7.1.2.1.2 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 13 3dfx 1.7.1.2.1.1 08/29/00 Jonny Cochrane Some 8x FSAA code
|
||||
** 12 3dfx 1.7.1.2.1.0 08/08/00 Andy Hanson Fix in grLfbReadRegion for
|
||||
** 32 bit surfaces. If 32 bit is forced, and game isn't aware, we could
|
||||
** overflow the destination buffer now. but it wouldn't look right anyways.
|
||||
** Will add FX_GLIDE_LFB_OVERFLOW evar if a problem arises.
|
||||
** 11 3dfx 1.7.1.2 06/20/00 Joseph Kain Fixed errors introduced by
|
||||
** my previous merge.
|
||||
** 10 3dfx 1.7.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -419,18 +426,21 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
case GR_PIXFMT_ARGB_1555:
|
||||
case GR_PIXFMT_AA_2_ARGB_1555:
|
||||
case GR_PIXFMT_AA_4_ARGB_1555:
|
||||
case GR_PIXFMT_AA_8_ARGB_1555: /* 8xaa */
|
||||
fbMode = GR_LFBWRITEMODE_1555;
|
||||
depthMode = GR_LFBWRITEMODE_ZA16;
|
||||
break;
|
||||
case GR_PIXFMT_ARGB_8888:
|
||||
case GR_PIXFMT_AA_2_ARGB_8888:
|
||||
case GR_PIXFMT_AA_4_ARGB_8888:
|
||||
case GR_PIXFMT_AA_8_ARGB_8888: /* 8xaa */
|
||||
fbMode = GR_LFBWRITEMODE_8888;
|
||||
depthMode = GR_LFBWRITEMODE_Z32;
|
||||
break;
|
||||
case GR_PIXFMT_RGB_565:
|
||||
case GR_PIXFMT_AA_2_RGB_565:
|
||||
case GR_PIXFMT_AA_4_RGB_565:
|
||||
case GR_PIXFMT_AA_8_RGB_565: /* 8xaa */
|
||||
default:
|
||||
fbMode = GR_LFBWRITEMODE_565;
|
||||
depthMode = GR_LFBWRITEMODE_ZA16;
|
||||
@@ -483,18 +493,21 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
case GR_PIXFMT_ARGB_1555:
|
||||
case GR_PIXFMT_AA_2_ARGB_1555:
|
||||
case GR_PIXFMT_AA_4_ARGB_1555:
|
||||
case GR_PIXFMT_AA_8_ARGB_1555: /* 8xaa */
|
||||
fbMode = GR_LFBWRITEMODE_1555;
|
||||
depthMode = GR_LFBWRITEMODE_ZA16;
|
||||
break;
|
||||
case GR_PIXFMT_ARGB_8888:
|
||||
case GR_PIXFMT_AA_2_ARGB_8888:
|
||||
case GR_PIXFMT_AA_4_ARGB_8888:
|
||||
case GR_PIXFMT_AA_8_ARGB_8888: /* 8xaa */
|
||||
fbMode = GR_LFBWRITEMODE_8888;
|
||||
depthMode = GR_LFBWRITEMODE_Z32;
|
||||
break;
|
||||
case GR_PIXFMT_RGB_565:
|
||||
case GR_PIXFMT_AA_2_RGB_565:
|
||||
case GR_PIXFMT_AA_4_RGB_565:
|
||||
case GR_PIXFMT_AA_8_RGB_565: /* 8xaa */
|
||||
default:
|
||||
fbMode = GR_LFBWRITEMODE_565;
|
||||
depthMode = GR_LFBWRITEMODE_ZA16;
|
||||
@@ -591,7 +604,7 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
/* Get the current lfb buffer */
|
||||
{
|
||||
/* FixMe: Is this true if we're triple buffering? */
|
||||
FxU32 colBufferIndex = 0;
|
||||
FxU32 colBufferIndex;
|
||||
|
||||
switch(buffer) {
|
||||
case GR_BUFFER_FRONTBUFFER:
|
||||
@@ -631,17 +644,15 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
|
||||
if (rv) {
|
||||
#ifdef __linux__
|
||||
if (!colBufferIndex) {
|
||||
info->strideInBytes = driInfo.stride;
|
||||
} else {
|
||||
info->strideInBytes = gc->bInfo->buffInfo.bufLfbStride;
|
||||
}
|
||||
if (!colBufferIndex)
|
||||
info->strideInBytes = driInfo.stride;
|
||||
else
|
||||
info->strideInBytes = 0x1000; /* This is the default for 3D LFBs,
|
||||
* which are always 2048
|
||||
pixels wide. */
|
||||
#else /* defined(__linux__) */
|
||||
/*
|
||||
* This is the default for 3D LFBs,
|
||||
* which are always 2048 pixels wide.
|
||||
*/
|
||||
info->strideInBytes = 0x1000;
|
||||
info->strideInBytes = 0x1000; /* This is the default for 3D LFBs,
|
||||
* which are always 2048 pixels wide. */
|
||||
#endif /* defined(__linux__) */
|
||||
info->origin = origin;
|
||||
|
||||
@@ -684,19 +695,12 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
info->strideInBytes = gc->textureBuffer.stride ;
|
||||
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
else {
|
||||
#ifdef __linux__
|
||||
/*
|
||||
* For Linux, we just return the correct address and
|
||||
* stride.
|
||||
*/
|
||||
info->strideInBytes = gc->bInfo->buffInfo.bufLfbStride;
|
||||
info->lfbPtr = (void *)gc->lfbBuffers[colBufferIndex];
|
||||
#else /* defined(__linux__) */
|
||||
info->lfbPtr = (void *)gc->lfb_ptr;
|
||||
#endif /* defined(__linux__) */
|
||||
#ifndef __linux__
|
||||
#ifdef __linux__
|
||||
info->strideInBytes = 0x1000;
|
||||
#endif /* defined(__linux__) */
|
||||
switch (writeMode) {
|
||||
case GR_LFBWRITEMODE_565_DEPTH:
|
||||
case GR_LFBWRITEMODE_555_DEPTH:
|
||||
@@ -707,7 +711,6 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
info->strideInBytes <<= 1;
|
||||
break;
|
||||
}
|
||||
#endif /* defined(__linux__) */
|
||||
}
|
||||
REG_GROUP_BEGIN(BROADCAST_ID, colBufferAddr, 2, 0x3);
|
||||
REG_GROUP_SET(hw, colBufferAddr, gc->textureBuffer.addr );
|
||||
@@ -716,15 +719,7 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
} else /* else !gc->textureBuffer.on */ {
|
||||
if (type == GR_LFB_READ_ONLY) {
|
||||
info->lfbPtr = (void *)gc->lfbBuffers[colBufferIndex];
|
||||
#if defined(__linux__)
|
||||
if (colBufferIndex == 0) {
|
||||
info->strideInBytes = driInfo.stride;
|
||||
} else {
|
||||
info->strideInBytes = gc->bInfo->buffInfo.bufLfbStride;
|
||||
}
|
||||
#else /* defined(__linux__) */
|
||||
info->strideInBytes = gc->bInfo->buffInfo.bufLfbStride;
|
||||
#endif /* defined(__linux__) */
|
||||
#if __POWERPC__
|
||||
if(IS_NAPALM(gc->bInfo->pciInfo.deviceID)) {
|
||||
if(gc->grPixelSize == 2) {
|
||||
@@ -774,18 +769,8 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
/* Make sure dither rotation is disabled for 3D LFBs. */
|
||||
_3dlfb = FXTRUE;
|
||||
|
||||
#if defined(__linux__)
|
||||
/*
|
||||
* For Linux, we just return the correct address and
|
||||
* stride.
|
||||
*/
|
||||
info->strideInBytes = gc->bInfo->buffInfo.bufLfbStride;
|
||||
info->lfbPtr = (void *)gc->lfbBuffers[colBufferIndex];
|
||||
#else /* defined(__linux__) */
|
||||
info->lfbPtr = (void *)gc->lfb_ptr;
|
||||
#endif /* defined(__linux__) */
|
||||
|
||||
#ifndef __linux__
|
||||
switch (writeMode) {
|
||||
case GR_LFBWRITEMODE_565_DEPTH:
|
||||
case GR_LFBWRITEMODE_555_DEPTH:
|
||||
@@ -796,7 +781,6 @@ GR_ENTRY(grLfbLock, FxBool,(GrLock_t type, GrBuffer_t buffer,
|
||||
info->strideInBytes <<= 1;
|
||||
break;
|
||||
}
|
||||
#endif /* defined(__linux__) */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1266,6 +1250,91 @@ GR_ENTRY(grLfbWriteRegion, FxBool, (GrBuffer_t dst_buffer,
|
||||
FXTRUE - success
|
||||
FXFALSE - failure
|
||||
-------------------------------------------------------------------*/
|
||||
#if !__POWERPC__
|
||||
GR_ENTRY(grLfbReadRegion, FxBool, (GrBuffer_t src_buffer,
|
||||
FxU32 src_x, FxU32 src_y,
|
||||
FxU32 src_width, FxU32 src_height,
|
||||
FxU32 dst_stride, void *dst_data))
|
||||
{
|
||||
#define FN_NAME "grLfbReadRegion"
|
||||
FxU32 bpp;
|
||||
FxBool rv;
|
||||
GrLfbInfo_t info;
|
||||
|
||||
GR_BEGIN_NOFIFOCHECK_RET("grLfbReadRegion",82);
|
||||
GDBG_INFO_MORE(gc->myLevel,
|
||||
"(0x%x,%d,%d,%d,%d,%d,0x%x)\n",
|
||||
src_buffer, src_x, src_y,
|
||||
src_width, src_height, dst_stride, dst_data);
|
||||
|
||||
bpp=gc->bInfo->h3pixelSize;
|
||||
info.size = sizeof(info);
|
||||
if (!src_width)
|
||||
{
|
||||
rv=FXTRUE;
|
||||
goto done;
|
||||
}
|
||||
rv=FXFALSE;
|
||||
|
||||
if (grLfbLock(GR_LFB_READ_ONLY,
|
||||
src_buffer,
|
||||
GR_LFBWRITEMODE_ANY,
|
||||
GR_ORIGIN_UPPER_LEFT,
|
||||
FXFALSE,
|
||||
&info))
|
||||
{
|
||||
FxU32 *src,*dst;
|
||||
FxI32 length,scanline;
|
||||
FxU32 src_adjust,dst_adjust,tmp;
|
||||
|
||||
src=(FxU32 *) (((char*)info.lfbPtr)+
|
||||
(src_y*info.strideInBytes) + (src_x * bpp));
|
||||
dst=dst_data;
|
||||
scanline=src_height;
|
||||
|
||||
/* set length - alignment fix*/
|
||||
tmp=(((FxU32)src)&2);
|
||||
length=src_width * bpp - tmp;
|
||||
src_adjust=info.strideInBytes - tmp;
|
||||
dst_adjust=dst_stride - tmp;
|
||||
|
||||
/* should be endian and pixel size safe */
|
||||
/* it would be nice to test if quad blocks were faster */
|
||||
/* like mmx loads and stores */
|
||||
while(src_height--)
|
||||
{
|
||||
/* adjust starting alignment */
|
||||
if (((FxU32)src)&3)
|
||||
*((FxU16 *)dst)++=*((FxU16 *)src)++;
|
||||
|
||||
/* read in dwords of pixels */
|
||||
if(length)
|
||||
{
|
||||
FxU32 byte_index=0;
|
||||
FxU32 aligned=length&(~3);
|
||||
|
||||
/* copies aligned dwords */
|
||||
do
|
||||
{
|
||||
*((FxU32 *)(((FxU32)dst) + byte_index))=*((FxU32 *)(((FxU32)src) + byte_index));
|
||||
}while((byte_index+=4)<aligned);
|
||||
|
||||
/* handle backend misalignment */
|
||||
if (byte_index!=(FxU32)length)
|
||||
*((FxU16 *)(((FxU32)dst) + byte_index))=*((FxU16 *)(((FxU32)src) + byte_index));
|
||||
}
|
||||
/* adjust for next line */
|
||||
((FxU8 *)src)+=src_adjust;
|
||||
((FxU8 *)dst)+=dst_adjust;
|
||||
}
|
||||
rv=FXTRUE;
|
||||
/* unlock buffer */
|
||||
grLfbUnlock(GR_LFB_READ_ONLY,src_buffer);
|
||||
}
|
||||
done:
|
||||
GR_RETURN(rv);
|
||||
}
|
||||
#else /* if __POWERPC__ */
|
||||
GR_ENTRY(grLfbReadRegion, FxBool, (GrBuffer_t src_buffer,
|
||||
FxU32 src_x, FxU32 src_y,
|
||||
FxU32 src_width, FxU32 src_height,
|
||||
@@ -1401,4 +1470,5 @@ GR_ENTRY(grLfbReadRegion, FxBool, (GrBuffer_t src_buffer,
|
||||
GR_RETURN(rv);
|
||||
#undef FN_NAME
|
||||
}/* grLfbReadRegion */
|
||||
#endif /* if __POWERPC__ */
|
||||
|
||||
|
||||
@@ -613,6 +613,9 @@ grSstWinOpen(
|
||||
FX_ENTRY FxBool FX_CALL
|
||||
grSstWinClose( GrContext_t context );
|
||||
|
||||
FX_ENTRY void FX_CALL
|
||||
grSetNumPendingBuffers(FxI32 NumPendingBuffers);
|
||||
|
||||
FX_ENTRY FxBool FX_CALL
|
||||
grSelectContext( GrContext_t context );
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -1,24 +1,37 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 44 3dfx 1.34.1.2.1.511/08/00 Drew McMinn Create initialise read and
|
||||
** use useAppGamma flag, to allow us to disable applications changing gamma
|
||||
** values.
|
||||
** 43 3dfx 1.34.1.2.1.410/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 42 3dfx 1.34.1.2.1.309/26/00 Andy Hanson Add environment variable of
|
||||
** glide group so they can do wacky things safely.
|
||||
** 41 3dfx 1.34.1.2.1.208/29/00 Jonny Cochrane Some 8x FSAA code
|
||||
** 40 3dfx 1.34.1.2.1.108/01/00 Andy Hanson Fixed issue with source
|
||||
** ignoring setting of GLIDE_SPLASH define.
|
||||
** Fixed issue with setting of splash state when it wasn't going to be run.
|
||||
** 39 3dfx 1.34.1.2.1.006/28/00 troy thornton added initialization of
|
||||
** correct jitter values
|
||||
** 38 3dfx 1.34.1.2 06/20/00 Joseph Kain Fixed errors introduced in
|
||||
** merge.
|
||||
** 37 3dfx 1.34.1.1 06/20/00 Joseph Kain Changes to support the
|
||||
@@ -1219,13 +1232,21 @@ _GlideInitEnvironment(void)
|
||||
(((envStr = GETENV(__envVar)) == NULL) ? (__defVal) : atol(envStr))
|
||||
#define GLIDE_FGETENV(__envVar, __defVal) \
|
||||
(((envStr = GETENV(__envVar)) == NULL) ? (__defVal) : (float) atof(envStr))
|
||||
|
||||
#define GLIDE_34GETENV(__envVar, __defVal) \
|
||||
(((signed char)(atof(((envStr = GETENV(__envVar)) == NULL) ? (__defVal) : (envStr))*16.0f)+8)&0x7f)
|
||||
|
||||
|
||||
#ifdef GLIDE_TEST_TEXTURE_ALIGNMENT
|
||||
SST_TEXTURE_ALIGN = GLIDE_GETENV("FX_GLIDE_TEX_ALIGN", 0x10UL);
|
||||
#endif
|
||||
_GlideRoot.environment.triBoundsCheck = GETENV("FX_GLIDE_BOUNDS_CHECK") != NULL;
|
||||
GDBG_INFO(80," triBoundsCheck: %d\n",_GlideRoot.environment.triBoundsCheck);
|
||||
#ifdef GLIDE_SPLASH
|
||||
_GlideRoot.environment.noSplash = GETENV("FX_GLIDE_NO_SPLASH") != NULL;
|
||||
#else
|
||||
_GlideRoot.environment.noSplash = 1;
|
||||
#endif
|
||||
|
||||
GDBG_INFO(80," noSplash: %d\n",_GlideRoot.environment.noSplash);
|
||||
_GlideRoot.environment.shamelessPlug = GETENV("FX_GLIDE_SHAMELESS_PLUG") != NULL;
|
||||
GDBG_INFO(80," shamelessPlug: %d\n",_GlideRoot.environment.shamelessPlug);
|
||||
@@ -1238,38 +1259,159 @@ _GlideInitEnvironment(void)
|
||||
_GlideRoot.environment.noHW = GETENV("FX_GLIDE_NO_HW") != NULL;
|
||||
GDBG_INFO(80," noHW: %d\n",_GlideRoot.environment.noHW);
|
||||
|
||||
/* This is the "old" way of doing two-sample AA, where each chip does two samples. */
|
||||
_GlideRoot.environment.aaXOffset[1][0] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[1][1] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[1][2] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[1][3] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
/* set default glide state to not openGL app */
|
||||
_GlideRoot.environment.is_opengl=FXFALSE;
|
||||
|
||||
_GlideRoot.environment.aaYOffset[1][0] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[1][1] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[1][2] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[1][3] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
/* note - glide now uses a string representation for the AA jitter values */
|
||||
/* This is the "old" way of doing two-sample AA, where each chip does two samples. */
|
||||
_GlideRoot.environment.aaXOffset[1][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[1][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[1][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[1][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[1][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[1][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[1][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[1][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF);
|
||||
|
||||
/* This is a nasty evil hack! This rearranges the sample offsets to deal with the new way of doing two sample AA */
|
||||
_GlideRoot.environment.aaXOffset[2][0] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[2][1] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[2][2] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[2][3] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[2][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[2][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[2][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaXOffset[2][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[2][0] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[2][1] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[2][2] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[2][3] = GLIDE_GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[2][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[2][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[2][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF);
|
||||
_GlideRoot.environment.aaYOffset[2][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_DEF);
|
||||
|
||||
/* This is the "normal" layout for 4-sample AA */
|
||||
_GlideRoot.environment.aaXOffset[3][0] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_X0",PRIBUFVTXOFFX_4SMPL_CHP0_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[3][1] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_X1",SECBUFVTXOFFX_4SMPL_CHP0_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[3][2] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_X2",PRIBUFVTXOFFX_4SMPL_CHP1_DEF_VAL);
|
||||
_GlideRoot.environment.aaXOffset[3][3] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_X3",SECBUFVTXOFFX_4SMPL_CHP1_DEF_VAL);
|
||||
|
||||
_GlideRoot.environment.aaXOffset[3][0] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X0",PRIBUFVTXOFFX_4SMPL_CHP0_DEF);
|
||||
_GlideRoot.environment.aaXOffset[3][1] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X1",SECBUFVTXOFFX_4SMPL_CHP0_DEF);
|
||||
_GlideRoot.environment.aaXOffset[3][2] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X2",PRIBUFVTXOFFX_4SMPL_CHP1_DEF);
|
||||
_GlideRoot.environment.aaXOffset[3][3] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X3",SECBUFVTXOFFX_4SMPL_CHP1_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[3][0] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_Y0",PRIBUFVTXOFFY_4SMPL_CHP0_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[3][1] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_Y1",SECBUFVTXOFFY_4SMPL_CHP0_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[3][2] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_Y2",PRIBUFVTXOFFY_4SMPL_CHP1_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[3][3] = GLIDE_GETENV("FX_GLIDE_AA4_OFFSET_Y3",SECBUFVTXOFFY_4SMPL_CHP1_DEF_VAL);
|
||||
_GlideRoot.environment.aaYOffset[3][0] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y0",PRIBUFVTXOFFY_4SMPL_CHP0_DEF);
|
||||
_GlideRoot.environment.aaYOffset[3][1] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y1",SECBUFVTXOFFY_4SMPL_CHP0_DEF);
|
||||
_GlideRoot.environment.aaYOffset[3][2] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y2",PRIBUFVTXOFFY_4SMPL_CHP1_DEF);
|
||||
_GlideRoot.environment.aaYOffset[3][3] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y3",SECBUFVTXOFFY_4SMPL_CHP1_DEF);
|
||||
|
||||
/* these are the correct jitter vaules */
|
||||
_GlideRoot.environment.aaXOffset[4][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][4] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][5] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][6] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[4][7] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[4][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][4] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][5] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][6] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[4][7] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
|
||||
_GlideRoot.environment.aaXOffset[5][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][4] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][5] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X0",PRIBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][6] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[5][7] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_X1",SECBUFVTXOFFX_2SMPL_CORRECT_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[5][0] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][1] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][2] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][3] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][4] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][5] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y0",PRIBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][6] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[5][7] = GLIDE_34GETENV("FX_GLIDE_AA2_OFFSET_Y1",SECBUFVTXOFFY_2SMPL_CORRECT_DEF);
|
||||
|
||||
_GlideRoot.environment.aaXOffset[6][0] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X0",PRIBUFVTXOFFX_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][1] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X1",SECBUFVTXOFFX_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][2] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X2",PRIBUFVTXOFFX_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][3] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X3",SECBUFVTXOFFX_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][4] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X0",PRIBUFVTXOFFX_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][5] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X1",SECBUFVTXOFFX_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][6] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X2",PRIBUFVTXOFFX_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaXOffset[6][7] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_X3",SECBUFVTXOFFX_4SMPL_CHP1_CORRECT_DEF);
|
||||
|
||||
_GlideRoot.environment.aaYOffset[6][0] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y0",PRIBUFVTXOFFY_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][1] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y1",SECBUFVTXOFFY_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][2] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y2",PRIBUFVTXOFFY_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][3] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y3",SECBUFVTXOFFY_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][4] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y0",PRIBUFVTXOFFY_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][5] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y1",SECBUFVTXOFFY_4SMPL_CHP0_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][6] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y2",PRIBUFVTXOFFY_4SMPL_CHP1_CORRECT_DEF);
|
||||
_GlideRoot.environment.aaYOffset[6][7] = GLIDE_34GETENV("FX_GLIDE_AA4_OFFSET_Y3",SECBUFVTXOFFY_4SMPL_CHP1_CORRECT_DEF);
|
||||
|
||||
/* jcochrane 4 chip offsets */
|
||||
|
||||
/* 4chip 2xaa */
|
||||
_GlideRoot.environment.aaXOffset[7][0] = 0x04;
|
||||
_GlideRoot.environment.aaXOffset[7][1] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[7][2] = 0x0c;
|
||||
_GlideRoot.environment.aaXOffset[7][3] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[7][4] = 0x04;
|
||||
_GlideRoot.environment.aaXOffset[7][5] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[7][6] = 0x0c;
|
||||
_GlideRoot.environment.aaXOffset[7][7] = 0x00;
|
||||
|
||||
_GlideRoot.environment.aaYOffset[7][0] = 0x04;
|
||||
_GlideRoot.environment.aaYOffset[7][1] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[7][2] = 0x0c;
|
||||
_GlideRoot.environment.aaYOffset[7][3] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[7][4] = 0x04;
|
||||
_GlideRoot.environment.aaYOffset[7][5] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[7][6] = 0x0c;
|
||||
_GlideRoot.environment.aaYOffset[7][7] = 0x00;
|
||||
|
||||
/* 4chip 4xaa */
|
||||
_GlideRoot.environment.aaXOffset[8][0] = 0x06;
|
||||
_GlideRoot.environment.aaXOffset[8][1] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[8][2] = 0x0e;
|
||||
_GlideRoot.environment.aaXOffset[8][3] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[8][4] = 0x02;
|
||||
_GlideRoot.environment.aaXOffset[8][5] = 0x00;
|
||||
_GlideRoot.environment.aaXOffset[8][6] = 0x0a;
|
||||
_GlideRoot.environment.aaXOffset[8][7] = 0x00;
|
||||
|
||||
_GlideRoot.environment.aaYOffset[8][0] = 0x02;
|
||||
_GlideRoot.environment.aaYOffset[8][1] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[8][2] = 0x06;
|
||||
_GlideRoot.environment.aaYOffset[8][3] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[8][4] = 0x0a;
|
||||
_GlideRoot.environment.aaYOffset[8][5] = 0x00;
|
||||
_GlideRoot.environment.aaYOffset[8][6] = 0x0e;
|
||||
_GlideRoot.environment.aaYOffset[8][7] = 0x00;
|
||||
|
||||
/* 4chip 8xaa */
|
||||
_GlideRoot.environment.aaXOffset[9][0] = 0x06;
|
||||
_GlideRoot.environment.aaXOffset[9][1] = 0x04;
|
||||
_GlideRoot.environment.aaXOffset[9][2] = 0x0e;
|
||||
_GlideRoot.environment.aaXOffset[9][3] = 0x0a;
|
||||
_GlideRoot.environment.aaXOffset[9][4] = 0x02;
|
||||
_GlideRoot.environment.aaXOffset[9][5] = 0x0c;
|
||||
_GlideRoot.environment.aaXOffset[9][6] = 0x0a;
|
||||
_GlideRoot.environment.aaXOffset[9][7] = 0x06;
|
||||
|
||||
_GlideRoot.environment.aaYOffset[9][0] = 0x02;
|
||||
_GlideRoot.environment.aaYOffset[9][1] = 0x06;
|
||||
_GlideRoot.environment.aaYOffset[9][2] = 0x06;
|
||||
_GlideRoot.environment.aaYOffset[9][3] = 0x04;
|
||||
_GlideRoot.environment.aaYOffset[9][4] = 0x0a;
|
||||
_GlideRoot.environment.aaYOffset[9][5] = 0x0a;
|
||||
_GlideRoot.environment.aaYOffset[9][6] = 0x0e;
|
||||
_GlideRoot.environment.aaYOffset[9][7] = 0x0c;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* AJB- Support the slightly silly way the DirectX gang controls
|
||||
@@ -1279,13 +1421,14 @@ _GlideInitEnvironment(void)
|
||||
* Here is a breakdown of the bizarre table of magic numbers:
|
||||
*
|
||||
* 0 - SLI & AA disable
|
||||
* 1 - SLI disabled, 2 sample AA enabled
|
||||
* 2 - 2-way SLI enabled, AA disabled
|
||||
* 3 - 2-way SLI enabled, 2 sample AA enabled
|
||||
* 4 - SLI disabled, 4 sample AA enabled
|
||||
* 5 - 4-way SLI enabled, AA disabled
|
||||
* 6 - 4-way SLI enabled, 2 sample AA enabled
|
||||
* 1 - SLI disabled, 2 sample AA enabled
|
||||
* 2 - 2-way SLI enabled, AA disabled
|
||||
* 3 - 2-way SLI enabled, 2 sample AA enabled
|
||||
* 4 - SLI disabled, 4 sample AA enabled
|
||||
* 5 - 4-way SLI enabled, AA disabled
|
||||
* 6 - 4-way SLI enabled, 2 sample AA enabled
|
||||
* 7 - 2-way SLI enabled, 4 sample AA enabled
|
||||
* 8 - SLI disabled, 8 sample AA enabled
|
||||
*
|
||||
* to add to the silliness:
|
||||
*
|
||||
@@ -1314,6 +1457,10 @@ _GlideInitEnvironment(void)
|
||||
case 4:
|
||||
case 7:
|
||||
_GlideRoot.environment.aaSample = 4 ;
|
||||
break;
|
||||
//8xaa
|
||||
case 8:
|
||||
_GlideRoot.environment.aaSample = 8 ;
|
||||
break ;
|
||||
|
||||
default:
|
||||
@@ -1421,6 +1568,8 @@ _GlideInitEnvironment(void)
|
||||
_GlideRoot.environment.gammaR = GLIDE_FGETENV("SSTH3_RGAMMA", -1.f);
|
||||
_GlideRoot.environment.gammaG = GLIDE_FGETENV("SSTH3_GGAMMA", -1.f);
|
||||
_GlideRoot.environment.gammaB = GLIDE_FGETENV("SSTH3_BGAMMA", -1.f);
|
||||
|
||||
_GlideRoot.environment.useAppGamma = GLIDE_GETENV("FX_GLIDE_USE_APP_GAMMA", 1L);
|
||||
|
||||
_GlideRoot.CPUType = GLIDE_GETENV("FX_CPU", _cpu_detect_asm() );
|
||||
GDBG_INFO(0," cpu: 0x%x\n",_GlideRoot.CPUType);
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 20 3dfx 1.17.1.0.1.010/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 19 3dfx 1.17.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 4 3dfx 1.1.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 3 3dfx 1.1.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,13 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 39 3dfx 1.34.1.0.1.211/14/00 Jonny Cochrane Implement multisample LOD
|
||||
** Dithering for 2x and 4x FSAA modes
|
||||
** 38 3dfx 1.34.1.0.1.110/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 37 3dfx 1.34.1.0.1.007/11/00 Adam Briggs fixed a state management
|
||||
** bug where using the constant color extension was inadvertently turning on
|
||||
** chroma range substitution
|
||||
** 36 3dfx 1.34.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
@@ -1028,6 +1035,9 @@ GR_ENTRY(grTexClampMode, void,
|
||||
} else {
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
GR_END();
|
||||
|
||||
#undef FN_NAME
|
||||
@@ -1797,6 +1807,15 @@ GR_EXT_ENTRY(grTexColorCombineExt, void,
|
||||
if(gc->state.tac_requires_constant_color[tmu] || gc->state.tcc_requires_constant_color[tmu])
|
||||
combineMode |= SST_CM_DISABLE_CHROMA_SUBSTITUTION;
|
||||
|
||||
/*
|
||||
* AJB- If we are either turning on or turning off constant color
|
||||
* combining, validateState will need to swap the values in
|
||||
* chromaRange & chromaKey.
|
||||
*/
|
||||
if ((combineMode & SST_CM_DISABLE_CHROMA_SUBSTITUTION) !=
|
||||
(gc->state.tmuShadow[tmu].combineMode & SST_CM_DISABLE_CHROMA_SUBSTITUTION))
|
||||
INVALIDATE_TMU(tmu, texchroma) ;
|
||||
|
||||
/* Update shadows */
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
gc->state.tmuShadow[tmu].tLOD = tLod;
|
||||
@@ -2151,6 +2170,15 @@ GR_EXT_ENTRY(grTexAlphaCombineExt, void,
|
||||
if(gc->state.tac_requires_constant_color[tmu] || gc->state.tcc_requires_constant_color[tmu])
|
||||
combineMode |= SST_CM_DISABLE_CHROMA_SUBSTITUTION;
|
||||
|
||||
/*
|
||||
* AJB- If we are either turning on or turning off constant color
|
||||
* combining, validateState will need to swap the values in
|
||||
* chromaRange & chromaKey.
|
||||
*/
|
||||
if ((combineMode & SST_CM_DISABLE_CHROMA_SUBSTITUTION) !=
|
||||
(gc->state.tmuShadow[tmu].combineMode & SST_CM_DISABLE_CHROMA_SUBSTITUTION))
|
||||
INVALIDATE_TMU(tmu, texchroma) ;
|
||||
|
||||
/* Update shadows */
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
gc->state.tmuShadow[tmu].tLOD = tLod;
|
||||
@@ -2180,6 +2208,12 @@ GR_EXT_ENTRY(grTexAlphaCombineExt, void,
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
** grConstantColorValueExt
|
||||
**
|
||||
** A sad, sad story:
|
||||
**
|
||||
** Whoever designed this api extension overlooked the fact that there are two
|
||||
** constant color inputs into the color combiner where here we only set one.
|
||||
** (actually we set them both to the same thing, but in effect we only set one).
|
||||
*/
|
||||
GR_EXT_ENTRY(grConstantColorValueExt, void,
|
||||
(GrChipID_t tmu,
|
||||
@@ -2260,6 +2294,7 @@ GR_ENTRY(grTexFilterMode, void,
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
} /* grTexFilterMode */
|
||||
@@ -2274,40 +2309,44 @@ GR_ENTRY(grTexLodBiasValue, void,
|
||||
#define FN_NAME "grTexLodBiasValue"
|
||||
FxU32 tLod;
|
||||
FxI32 lodBias;
|
||||
|
||||
|
||||
|
||||
GR_BEGIN_NOFIFOCHECK("grTexLodBiasValue",88);
|
||||
GDBG_INFO_MORE(gc->myLevel,"(%d,%g)\n",tmu,fvalue);
|
||||
GR_CHECK_TMU(FN_NAME, tmu);
|
||||
|
||||
tLod = gc->state.tmuShadow[tmu].tLOD;
|
||||
tLod &= ~(SST_LODBIAS);
|
||||
lodBias = _grTexFloatLODToFixedLOD(fvalue);
|
||||
/* Sign extend it. */
|
||||
lodBias = ((lodBias << (32-6)) >> (32-6));
|
||||
lodBias += _GlideRoot.environment.lodBias;
|
||||
if(lodBias > 0x1f) lodBias = 0x1f;
|
||||
if(lodBias < -0x20) lodBias = -0x20;
|
||||
/* Mask it back off. */
|
||||
lodBias &= 0x3f;
|
||||
tLod |= lodBias << SST_LODBIAS_SHIFT;
|
||||
|
||||
gc->state.tmuShadow[tmu].tLOD = tLod;
|
||||
tLod = gc->state.tmuShadow[tmu].tLOD;
|
||||
tLod &= ~(SST_LODBIAS);
|
||||
lodBias = _grTexFloatLODToFixedLOD(fvalue);
|
||||
/* Sign extend it. */
|
||||
lodBias = ((lodBias << (32-6)) >> (32-6));
|
||||
lodBias += _GlideRoot.environment.lodBias;
|
||||
if(lodBias > 0x1f) lodBias = 0x1f;
|
||||
if(lodBias < -0x20) lodBias = -0x20;
|
||||
/* Mask it back off. */
|
||||
lodBias &= 0x3f;
|
||||
tLod |= lodBias << SST_LODBIAS_SHIFT;
|
||||
|
||||
/* Update real shadows and update hardware immediately if we can. */
|
||||
if(!gc->state.mode2ppc || (tmu == gc->state.mode2ppcTMU)) {
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
gc->state.tmuShadow[tmu].tLOD = tLod;
|
||||
|
||||
/* Update real shadows and update hardware immediately if we can. */
|
||||
if(!gc->state.mode2ppc || (tmu == gc->state.mode2ppcTMU)) {
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
|
||||
gc->state.shadow.tmuState[tmu].tLOD = tLod;
|
||||
_grChipMask( SST_CHIP_MASK_ALL_CHIPS );
|
||||
REG_GROUP_BEGIN((0x02 << tmu), tLOD, 1, 0x1);
|
||||
{
|
||||
REG_GROUP_SET(tmuHw, tLOD, gc->state.shadow.tmuState[tmu].tLOD);
|
||||
}
|
||||
REG_GROUP_END();
|
||||
_grChipMask( gc->chipmask );
|
||||
} else {
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
gc->state.shadow.tmuState[tmu].tLOD = tLod;
|
||||
_grChipMask( SST_CHIP_MASK_ALL_CHIPS );
|
||||
REG_GROUP_BEGIN((0x02 << tmu), tLOD, 1, 0x1);
|
||||
{
|
||||
REG_GROUP_SET(tmuHw, tLOD, gc->state.shadow.tmuState[tmu].tLOD);
|
||||
}
|
||||
REG_GROUP_END();
|
||||
_grChipMask( gc->chipmask );
|
||||
} else {
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
@@ -2437,6 +2476,7 @@ GR_ENTRY(grTexMipMapMode, void,
|
||||
gc->state.tmuShadow[tmu].tLOD = tLod;
|
||||
gc->state.tmuShadow[tmu].textureMode = texMode;
|
||||
|
||||
|
||||
/* Update real shadows and update hardware immediately if we can. */
|
||||
if(!gc->state.mode2ppc || (tmu == gc->state.mode2ppcTMU)) {
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
@@ -2459,6 +2499,9 @@ GR_ENTRY(grTexMipMapMode, void,
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#if GLIDE_CHECK_TRILINEAR
|
||||
/* Make sure that the trilinear blending bits are set in a
|
||||
* consistent manner across the tmu's. This only really matters if
|
||||
@@ -2473,6 +2516,8 @@ GR_ENTRY(grTexMipMapMode, void,
|
||||
if (gc->num_tmu > 1) _grTexCheckTriLinear(tmu);
|
||||
#endif /* GLIDE_CHECK_TRILINEAR */
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
} /* grTexMipMapMode */
|
||||
@@ -2841,6 +2886,9 @@ GR_ENTRY(grTexSource, void,
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
} /* grTexSource */
|
||||
@@ -2896,6 +2944,9 @@ GR_ENTRY(grTexMultibase, void,
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
|
||||
if(MultitextureAndTrilinear()) g3LodBiasPerChip();
|
||||
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
} /* grTexMultibase */
|
||||
@@ -3474,3 +3525,139 @@ _g3LodXlat(const GrLOD_t someLOD, const FxBool tBig)
|
||||
#undef FN_NAME
|
||||
} /* _g3LodXlat */
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------
|
||||
Function: _g3LodBiasPerChip
|
||||
|
||||
Date: 14-Nov-2000
|
||||
|
||||
Implementor: Jonny Cochrane
|
||||
|
||||
Description: Sub sample LOD Dithering. Called if multitexturing and
|
||||
trilinear filtereing and in NON SLI mode AND No. Units > 1 and
|
||||
mipmap dithereing NOT requested from tools.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Return: Yes
|
||||
-------------------------------------------------------------------*/
|
||||
void g3LodBiasPerChip(void)
|
||||
{
|
||||
#define FN_NAME "g3LodBiasPerChip"
|
||||
|
||||
FxI32 lodBias, tLod, tmu;
|
||||
int idx = 0;
|
||||
unsigned int i;
|
||||
|
||||
int chipLodBias[2][4] = // these values per Gary Tarolli
|
||||
{
|
||||
// 4.2 format for tLod register
|
||||
// 0.00, 0.50, 0.00, 0.00 - 2 chip. last two values are not used
|
||||
{0x00, 0x02, 0x00, 0x00},
|
||||
// 0.00, 0.25, 0.50, 0.75 - 4 chip.
|
||||
{0x00, 0x01, 0x02, 0x03}
|
||||
};
|
||||
|
||||
GR_BEGIN_NOFIFOCHECK("g3LodBiasPerChip", 88);
|
||||
|
||||
tmu = 0;
|
||||
idx = gc->chipCount > 2;
|
||||
|
||||
if ((gc->sliCount > 1) || (_GlideRoot.environment.texLodDither)) goto FORGET_IT;
|
||||
|
||||
for (i = 0; i < gc->chipCount; i++)
|
||||
{
|
||||
tLod = gc->state.tmuShadow[tmu].tLOD;
|
||||
tLod &= ~(SST_LODBIAS);
|
||||
lodBias = chipLodBias[idx][i];
|
||||
|
||||
if(lodBias > 0x1f) lodBias = 0x1f;
|
||||
if(lodBias < -0x20) lodBias = -0x20;
|
||||
/* Mask it back off. */
|
||||
lodBias &= 0x3f;
|
||||
tLod |= lodBias << SST_LODBIAS_SHIFT;
|
||||
|
||||
if(!gc->state.mode2ppc || (tmu == gc->state.mode2ppcTMU)) {
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
_grChipMask( 1L << i );
|
||||
REG_GROUP_BEGIN((0x02 << tmu), tLOD, 1, 0x1);
|
||||
{
|
||||
REG_GROUP_SET(tmuHw, tLOD, tLod);
|
||||
}
|
||||
REG_GROUP_END();
|
||||
_grChipMask( gc->chipmask );
|
||||
} else {
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
tmu = 1;
|
||||
|
||||
for (i = 0; i < gc->chipCount; i++)
|
||||
{
|
||||
tLod = gc->state.tmuShadow[tmu].tLOD;
|
||||
tLod &= ~(SST_LODBIAS);
|
||||
lodBias = chipLodBias[idx][i];
|
||||
|
||||
if(lodBias > 0x1f) lodBias = 0x1f;
|
||||
if(lodBias < -0x20) lodBias = -0x20;
|
||||
/* Mask it back off. */
|
||||
lodBias &= 0x3f;
|
||||
tLod |= lodBias << SST_LODBIAS_SHIFT;
|
||||
|
||||
if(!gc->state.mode2ppc || (tmu == gc->state.mode2ppcTMU)) {
|
||||
SstRegs* tmuHw = SST_TMU(hw, tmu);
|
||||
_grChipMask( 1L << i );
|
||||
REG_GROUP_BEGIN((0x02 << tmu), tLOD, 1, 0x1);
|
||||
{
|
||||
REG_GROUP_SET(tmuHw, tLOD, tLod);
|
||||
}
|
||||
REG_GROUP_END();
|
||||
_grChipMask( gc->chipmask );
|
||||
} else {
|
||||
INVALIDATE_TMU(tmu, textureMode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
FORGET_IT:
|
||||
GR_END();
|
||||
#undef FN_NAME
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------
|
||||
Function: MultitextureAndTrilinear
|
||||
|
||||
Date: 14-Nov-2000
|
||||
|
||||
Implementor: Jonny Cochrane
|
||||
|
||||
Description: Determines if we are multitexturing and trilinear
|
||||
filtering
|
||||
|
||||
Arguments: None
|
||||
|
||||
Return: BOOL
|
||||
-------------------------------------------------------------------*/
|
||||
FxBool MultitextureAndTrilinear(void)
|
||||
{
|
||||
|
||||
#define FN_NAME "MultitextureAndTrilinear"
|
||||
|
||||
GR_DCL_GC;
|
||||
|
||||
FxBool retval = FXFALSE;
|
||||
|
||||
if( (gc->state.per_tmu[0].evenOdd == 3) && //both even and odd on each tmu
|
||||
(gc->state.per_tmu[1].evenOdd == 3) &&
|
||||
(gc->state.tmuShadow[0].textureMode & (SST_TMINFILTER | SST_TMAGFILTER)) && //and bilinear for mag and min filter
|
||||
(gc->state.tmuShadow[1].textureMode & (SST_TMINFILTER | SST_TMAGFILTER)))
|
||||
{
|
||||
retval = FXTRUE;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 11 3dfx 1.8.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 10 3dfx 1.8.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
@@ -29,7 +31,7 @@
|
||||
** 7 3dfx 1.6 01/31/00 Adam Briggs Changed all device ID magic
|
||||
** numbers to use those defined in fxhal.h & added IS_NAPALM macro to test
|
||||
** against device ID range
|
||||
** 6 3dfx 1.5 01/20/00 Kenneth Dyke Fixed texture memory sanity
|
||||
** 6 3dfx 1.5 01/19/00 Kenneth Dyke Fixed texture memory sanity
|
||||
** check bug.
|
||||
** 5 3dfx 1.4 10/27/99 Stephane Huaulme keeping the Mac compiler
|
||||
** happy...
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
**
|
||||
**
|
||||
**
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
# DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
# THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
# EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
# EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
# FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
#
|
||||
# USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
@@ -276,15 +276,9 @@ ifneq ($(FX_GLIDE_CTRISETUP),1)
|
||||
gdraw.o: fxinline.h
|
||||
endif
|
||||
|
||||
# $(CPP) from 3dfx.linux.mak runs gcc/egcs which guesses at file types so run
|
||||
# cpp directly. However, cpp can get confused by $__LINE__ which is needed
|
||||
# to manipulate the __LINE__ macro as a literal number. So we pass -$
|
||||
# to disallow $ in identifiers to disambiguate the situation. Note that
|
||||
# the makefile syntax requires $ to be escaped so we use $$ below.
|
||||
#
|
||||
PREPROCESSOR=/lib/cpp -$$
|
||||
PREPROCESSOR=cpp
|
||||
%.o: %.s
|
||||
$(PREPROCESSOR) $(PREPROCESSOR_FLAGS) $< > $*.tmp.s
|
||||
$(PREPROCESSOR) $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
|
||||
@@ -294,35 +288,20 @@ xdraw3.o : xdraw3.s fxgasm.h
|
||||
# 3DNow!(tm) dependencies
|
||||
# XXX_def.obj targets are the default targets
|
||||
|
||||
|
||||
ifneq ($(GL_AMD3D),)
|
||||
# I have to copy the build rule from above, because the _def/_3dnow
|
||||
# causes the object file names not to match up with the source file names.
|
||||
# And I need to selectively enable the 3DNow flags.
|
||||
|
||||
xdraw2_def.o: xdraw2.s xdraw2.inc.s fxgasm.h
|
||||
$(PREPROCESSOR) $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ xdraw2.s
|
||||
|
||||
xdraw2_3dnow.o: xdraw2.s xdraw2.inc.s fxgasm.h
|
||||
$(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
$(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xdraw2.s
|
||||
|
||||
xdraw3_def.o: xdraw3.s fxgasm.h
|
||||
$(PREPROCESSOR) $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ xdraw3.s
|
||||
|
||||
xdraw3_3dnow.o: xdraw3.s fxgasm.h
|
||||
$(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
$(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xdraw3.s
|
||||
|
||||
xtexdl_3dnow.o: xtexdl.s fxgasm.h
|
||||
$(PREPROCESSOR) -DGL_AMD3D -DUSE_PACKET_FIFO=1 $< > $*.tmp.s
|
||||
$(CC) $(AFLAGS) -c -o $@ $*.tmp.s
|
||||
$(RM) -f $*.tmp.s
|
||||
$(CC) $(AFLAGS) -DGL_AMD3D -DUSE_PACKET_FIFO=1 -c -o $@ xtexdl.s
|
||||
|
||||
endif # GL_AMD3D
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
|
||||
; THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
; PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
; TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
; INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
; DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
; THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
; EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
; FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
;
|
||||
; USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
; RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
; TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
; AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
; SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
; THE UNITED STATES.
|
||||
; THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
; PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
; TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
; INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
; DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
; THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
; EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
; FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
;
|
||||
; USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
; RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
; TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
; AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
; SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
; THE UNITED STATES.
|
||||
;
|
||||
; COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
;
|
||||
; COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
|
||||
|
||||
|
||||
MACRO
|
||||
MakeFunction &fnName
|
||||
EXPORT &fnName[DS]
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
/*
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||
** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONL
|
||||
** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGH
|
||||
** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DF
|
||||
** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||
** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||
** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||
** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR
|
||||
** FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||
**
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||
** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT T
|
||||
** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS I
|
||||
** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013
|
||||
** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FA
|
||||
** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS O
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVE
|
||||
*/
|
||||
|
||||
#define MANVERSION 3
|
||||
#define MANREVISION 10
|
||||
|
||||
#ifdef __WIN32__
|
||||
#define BUILD_NUMBER 0655
|
||||
#define BUILD_NUMBER 0658
|
||||
#endif
|
||||
|
||||
#define VERSIONSTR "3.10.00.0655"
|
||||
#define VERSIONSTR "3.10.00.0658"
|
||||
|
||||
#if defined(__WIN32__)
|
||||
#define _TRADEMARK_ "(tm)"
|
||||
|
||||
@@ -20,12 +20,14 @@
|
||||
** $Revision$
|
||||
** $Date$
|
||||
** $Log:
|
||||
** 4 3dfx 1.1.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 3 3dfx 1.1.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
** 2 3dfx 1.1 09/24/99 Mark McMahon Fixed PRS 7906:
|
||||
** Incorrect memory size reported by control panel in SLI mode
|
||||
** 1 3dfx 1.0 09/12/99 StarTeam VTS Administrator
|
||||
** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator
|
||||
** $
|
||||
//
|
||||
// 1 17/09/99 15:29 Mmcmahon
|
||||
|
||||
@@ -16,13 +16,20 @@
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
*/
|
||||
*
|
||||
|
||||
/* -*-asm-*- */
|
||||
|
||||
/* $Header$ *
|
||||
/* $Revision$ *
|
||||
/* $Log$
|
||||
/* Revision 1.4 2000/11/15 23:32:54 joseph
|
||||
/* Syncing up with 3dfx internal source repository. These changes contain a
|
||||
/* number of bug fixes.
|
||||
/*
|
||||
/* Revision 1.2.2.1 2000/11/14 14:11:19 alanh
|
||||
/* merge in trunk updates, fixup pci code, and fix texus2 code pointers.
|
||||
/*
|
||||
/* Revision 1.3 2000/10/20 19:07:00 billwhite
|
||||
/* 1.) Added changes for AMD 3DNow instructions in h5/glide3 and
|
||||
/* h3/glide3.
|
||||
@@ -153,7 +160,7 @@
|
||||
push %esi /* save caller's register variable */
|
||||
push %ebx /* save caller's register variable */
|
||||
|
||||
mov _gc-4(%esp) , gc
|
||||
mov _gc(%esp) , gc
|
||||
mov _vb-4(%esp) , fb /* get base address of vertex B */
|
||||
push %ebp /* save frame pointer */
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -16,11 +16,15 @@
|
||||
** THE UNITED STATES.
|
||||
**
|
||||
** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||
*/
|
||||
*
|
||||
|
||||
/* $Header$ */
|
||||
/* $Revision$ */
|
||||
/* $Header$ *
|
||||
/* $Revision$ *
|
||||
/* $Log$
|
||||
/* Revision 1.3 2000/11/15 23:32:54 joseph
|
||||
/* Syncing up with 3dfx internal source repository. These changes contain a
|
||||
/* number of bug fixes.
|
||||
/*
|
||||
/* Revision 1.1 2000/06/15 00:27:43 joseph
|
||||
/* Initial checkin into SourceForge.
|
||||
/*
|
||||
|
||||
@@ -3282,12 +3282,13 @@ update_fifo_ptr:
|
||||
mov DWORD PTR [gc+trisProcessed], ebx; Store trisProcessed
|
||||
; back to GC
|
||||
|
||||
;; Clean up the stack
|
||||
;; Clean up the stack // FIXED by JHunter (wrong order, trashed edi/esi and ebx)
|
||||
pop ebp
|
||||
|
||||
pop edi
|
||||
pop esi
|
||||
|
||||
pop ebx
|
||||
pop edi
|
||||
|
||||
ret 12 ; 0000000cH
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:57
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
xdraw3.asm Page 1 - 1
|
||||
|
||||
|
||||
@@ -2209,6 +2209,7 @@ xdraw3.asm Page 1 - 1
|
||||
= 0078 C reg_ptr = 00000078h
|
||||
= 0080 C lfb_ptr = 00000080h
|
||||
= 01E0 C cull_mode = 000001e0h
|
||||
= 96AC C checkPtr = 000096ach
|
||||
= 0124 C tsuDataList = 00000124h
|
||||
= 0DD8 C triPacketHdr = 00000dd8h
|
||||
= 0DDC C cullStripHdr = 00000ddch
|
||||
@@ -3411,7 +3412,7 @@ xdraw3.asm Page 1 - 1
|
||||
endif ; !GL_AMD3D
|
||||
|
||||
END
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:57
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
xdraw3.asm Symbols 2 - 1
|
||||
|
||||
|
||||
@@ -3502,7 +3503,9 @@ Symbols:
|
||||
|
||||
CPUType . . . . . . . . . . . . Number 0010h
|
||||
CoordinateSpace . . . . . . . . Number 0D98h
|
||||
GDBG_INFO_ON . . . . . . . . . . Text
|
||||
GLIDE_ALT_TAB . . . . . . . . . Text
|
||||
GLIDE_DEBUG . . . . . . . . . . Text
|
||||
GLIDE_INIT_HWC . . . . . . . . . Text
|
||||
GLIDE_PACKED_RGB . . . . . . . . Text 0
|
||||
GLIDE_TRI_CULLING . . . . . . . Text 1
|
||||
@@ -3543,6 +3546,7 @@ _vc . . . . . . . . . . . . . . Number 001Ch
|
||||
bInfo . . . . . . . . . . . . . Number 011Ch
|
||||
base_ptr . . . . . . . . . . . . Number 0074h
|
||||
ccoow . . . . . . . . . . . . . DWord 0004 _DATA
|
||||
checkPtr . . . . . . . . . . . . Number 96ACh
|
||||
colorType . . . . . . . . . . . Number 0B74h
|
||||
cullStripHdr . . . . . . . . . . Number 0DDCh
|
||||
cull_mode . . . . . . . . . . . Number 01E0h
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:56
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
xtexdl.asm Page 1 - 1
|
||||
|
||||
|
||||
@@ -23,6 +23,10 @@ xtexdl.asm Page 1 - 1
|
||||
;; $Header$
|
||||
;; $Revision$
|
||||
;; $Log$
|
||||
;; Revision 1.3 2000/11/15 23:32:54 joseph
|
||||
;; Syncing up with 3dfx internal source repository. These changes contain a
|
||||
;; number of bug fixes.
|
||||
;;
|
||||
;; Revision 1.1 2000/06/15 00:27:43 joseph
|
||||
;; Initial checkin into SourceForge.
|
||||
;;
|
||||
@@ -98,6 +102,7 @@ xtexdl.asm Page 1 - 1
|
||||
= 0078 C reg_ptr = 00000078h
|
||||
= 0080 C lfb_ptr = 00000080h
|
||||
= 01E0 C cull_mode = 000001e0h
|
||||
= 96AC C checkPtr = 000096ach
|
||||
= 0124 C tsuDataList = 00000124h
|
||||
= 0DD8 C triPacketHdr = 00000dd8h
|
||||
= 0DDC C cullStripHdr = 00000ddch
|
||||
@@ -238,11 +243,11 @@ ENDM ; GR_FIFO_WRITE
|
||||
ENDIF
|
||||
|
||||
00000014 85 F6 sub curT, eax ; curT = maxT - minT
|
||||
00000016 0F 84 0000012A mov fifo, [gc + fifoPtr] ; fifoPtr
|
||||
00000016 0F 84 0000013C mov fifo, [gc + fifoPtr] ; fifoPtr
|
||||
0000001C 8B 96 000096BC
|
||||
00000022 8B 0A mov curS, [esp + _maxS$] ; curS = maxS
|
||||
00000024 F7 C1 00000001 add curT, 1 ; curT = maxT - minT + 1
|
||||
0000002A 0F 85 00000116
|
||||
0000002A 0F 85 00000128
|
||||
femms ; we'll use MMX/3DNow!, make sure FPU register cleared
|
||||
|
||||
00000030 2B D8 mov edx, curS ; curS = maxS = scanline width in DWORDs
|
||||
@@ -282,10 +287,10 @@ ENDM ; GR_FIFO_WRITE
|
||||
ifdef USE_PACKET_FIFO
|
||||
push @Line ; Line # inside this function
|
||||
00000075 F7 C5 00000004 push 0 ; NULL file name
|
||||
0000007B 0F 84 0000009F
|
||||
0000007B 0F 84 000000B1
|
||||
push 4 ; fifo space required (bytes)
|
||||
00000081 83 FA 04 call __grCommandTransportMakeRoom@12 ; make fifo room
|
||||
00000084 7D 26 endif
|
||||
00000084 7D 2A endif
|
||||
|
||||
mov fifo, [gc + fifoPtr] ; fifoPtr modified by _grCommandTransportMakeRoom, reload
|
||||
00000086 68 000000C4
|
||||
@@ -301,23 +306,23 @@ ENDM ; GR_FIFO_WRITE
|
||||
000000A0 8B 4C 24 1C sub fRoom, 4 ; fifoRoom -= 4
|
||||
|
||||
000000A4 F7 C5 00000004 mov [gc + fifoRoom], fRoom ; store new fifoRoom
|
||||
000000AA 74 74 add fifo, 4 ; fifoPtr += 4
|
||||
000000AA 0F 84 00000082 add fifo, 4 ; fifoPtr += 4
|
||||
|
||||
000000AC IFDEF GLIDE_DEBUG
|
||||
000000B0 IFDEF GLIDE_DEBUG
|
||||
mov [gc + checkPtr], fifo ; checkPtr
|
||||
000000AC C7 45 00 ENDIF
|
||||
000000B0 C7 45 00 ENDIF
|
||||
00000000
|
||||
000000B3 83 EA 04
|
||||
000000B7 83 EA 04
|
||||
mov [gc + fifoPtr], fifo ; store new fifoPtr
|
||||
000000B6 89 96 00000DEC jmp __startDownload ; fifo aligned, download texture now
|
||||
000000BC 83 C5 04
|
||||
000000BA 89 96 00000DEC jmp __startDownload ; fifo aligned, download texture now
|
||||
000000C0 83 C5 04
|
||||
align 32
|
||||
|
||||
;; ebx = curT, edi = dataPtr, esi = gc, ebp = fifo, ecx = maxS = curS
|
||||
000000C3 89 AE 000096AC ;; ebx = curT, edi = dataPtr, esi = gc, ebp = fifo, ecx = maxS = curS
|
||||
;; edx=fifoRoom, mm1 = texAddr|packetHdr, mm2 = TEX_ROW_ADDR_INCR(1)|0
|
||||
|
||||
000000BF 89 AE 00000DE4 __loopT:
|
||||
000000C5 EB 59
|
||||
000000C9 89 AE 00000DE4 __loopT:
|
||||
000000CF EB 61
|
||||
IFDEF GLIDE_DEBUG
|
||||
|
||||
;; Make sure that we have a QWORD aligned fifoPtr; force GP if not aligned
|
||||
@@ -330,93 +335,93 @@ ENDM ; GR_FIFO_WRITE
|
||||
__alignmentOK:
|
||||
ENDIF ; GLIDE_DEBUG
|
||||
|
||||
;; Compute packet header words
|
||||
;; hdr1: downloadSpace[31:30] numWords[21:3] packetType[2:0]
|
||||
000000E0 F7 C5 00000004 ;; Compute packet header words
|
||||
000000E6 74 04 ;; hdr1: downloadSpace[31:30] numWords[21:3] packetType[2:0]
|
||||
;; hdr2: download address[29:0]
|
||||
|
||||
movq [fifo], mm1 ; store hdr2 | hdr1
|
||||
add fifo, 8 ; increment fifo ptr (hdr1 + hdr2)
|
||||
000000E8 33 C0
|
||||
000000EA 89 00 movq [fifo], mm1 ; store hdr2 | hdr1
|
||||
000000EC add fifo, 8 ; increment fifo ptr (hdr1 + hdr2)
|
||||
|
||||
;; S coordinate inner loop unrolled for 8 texels a write
|
||||
|
||||
__loopS:
|
||||
|
||||
movq mm0, [dataPtr] ; load 64 bit data (8 texels)
|
||||
000000E0 0F 7F 4D 00 add fifo, 8 ; pre-increment fifoPtr += 2 * sizeof(FxU32)
|
||||
000000E4 83 C5 08
|
||||
000000EC 0F 7F 4D 00 add fifo, 8 ; pre-increment fifoPtr += 2 * sizeof(FxU32)
|
||||
000000F0 83 C5 08
|
||||
add dataPtr, 8 ; dataPtr += 2 * sizeof(FxU32)
|
||||
sub curS, 8 ; curS -= 2 * sizeof(FxU32)
|
||||
|
||||
000000E7 movq [fifo - 8], mm0 ; *fifoPtr = texelData[64 bits]
|
||||
000000F3 movq [fifo - 8], mm0 ; *fifoPtr = texelData[64 bits]
|
||||
jnz __loopS ; loop while curS > 0
|
||||
000000E7 0F 6F 07
|
||||
000000EA 83 C5 08 mov ecx, [gc + fifoPtr] ; old fifo ptr
|
||||
000000F3 0F 6F 07
|
||||
000000F6 83 C5 08 mov ecx, [gc + fifoPtr] ; old fifo ptr
|
||||
nop ; filler
|
||||
000000ED 83 C7 08
|
||||
000000F0 83 E9 08 mov eax, fifo ; new fifo ptr
|
||||
000000F9 83 C7 08
|
||||
000000FC 83 E9 08 mov eax, fifo ; new fifo ptr
|
||||
mov [gc + fifoPtr], fifo ; save new fifo ptr
|
||||
000000F3 0F 7F 45 F8
|
||||
000000F7 75 EE IFDEF GLIDE_DEBUG
|
||||
000000FF 0F 7F 45 F8
|
||||
00000103 75 EE IFDEF GLIDE_DEBUG
|
||||
mov [gc + checkPtr], fifo ; checkPtr
|
||||
000000F9 8B 8E 00000DE4 ENDIF
|
||||
000000FF 90
|
||||
00000105 8B 8E 00000DE4 ENDIF
|
||||
0000010B 90
|
||||
sub eax, ecx ; new fifo ptr - old fifo ptr = fifo space used up
|
||||
00000100 8B C5 mov curS, [esp + _maxS$] ; curS = maxS = width of scanline (bytes)
|
||||
00000102 89 AE 00000DE4
|
||||
0000010C 8B C5 mov curS, [esp + _maxS$] ; curS = maxS = width of scanline (bytes)
|
||||
0000010E 89 AE 00000DE4
|
||||
sub fRoom, eax ; new fifo space available = old fifo space available - fifo space used up = new fifo space available
|
||||
sub curT, 1 ; curT--
|
||||
|
||||
00000114 89 AE 000096AC
|
||||
mov [gc + fifoRoom], fRoom ; save new fifo space available
|
||||
jz __dlDone ; loop while curT > 0
|
||||
00000108 2B C1
|
||||
0000010A 8B 4C 24 1C ;; Check for room to write the next texture scanline
|
||||
0000011A 2B C1
|
||||
0000011C 8B 4C 24 1C ;; Check for room to write the next texture scanline
|
||||
|
||||
0000010E 2B D0 ;; ebx = curT, edi = dataPtr, esi = gc, ebp = fifo
|
||||
00000110 83 EB 01 ;; edx = fifoRoom, mm1 = texAddr|packetHdr, mm2 = TEX_ROW_ADDR_INCR(1)|0
|
||||
00000120 2B D0 ;; ebx = curT, edi = dataPtr, esi = gc, ebp = fifo
|
||||
00000122 83 EB 01 ;; edx = fifoRoom, mm1 = texAddr|packetHdr, mm2 = TEX_ROW_ADDR_INCR(1)|0
|
||||
|
||||
00000113 89 96 00000DEC paddd mm1, mm2 ; texAddr+=TEX_ROW_ADDR_INCR(1) | packetHdr
|
||||
00000119 74 2B mov esp, esp ; filler
|
||||
00000125 89 96 00000DEC paddd mm1, mm2 ; texAddr+=TEX_ROW_ADDR_INCR(1) | packetHdr
|
||||
0000012B 74 2B mov esp, esp ; filler
|
||||
__startDownload:
|
||||
lea eax, [curS+8] ; fifo space needed = scan line width + header size
|
||||
|
||||
cmp fRoom, eax ; fifo space available >= fifo space required ?
|
||||
jge __loopT ; yup, write next scan line
|
||||
|
||||
0000011B 0F FE CA ifdef USE_PACKET_FIFO
|
||||
0000011E 8B E4 push @Line ; Line # inside this function
|
||||
00000120 push 0h ; NULL file name
|
||||
00000120 8D 41 08
|
||||
0000012D 0F FE CA ifdef USE_PACKET_FIFO
|
||||
00000130 8B E4 push @Line ; Line # inside this function
|
||||
00000132 push 0h ; NULL file name
|
||||
00000132 8D 41 08
|
||||
push eax ; fifo space required
|
||||
00000123 3B D0 call __grCommandTransportMakeRoom@12 ; make fifo room (if fifoPtr QWORD aligned before
|
||||
00000125 7D B9 endif
|
||||
00000135 3B D0 call __grCommandTransportMakeRoom@12 ; make fifo room (if fifoPtr QWORD aligned before
|
||||
00000137 7D A7 endif
|
||||
|
||||
mov fifo, [gc + fifoPtr] ; fifoPtr was modified by _grCommandTransportMakeRoom, reload
|
||||
00000127 68 0000012A
|
||||
0000012C 6A 00 mov fRoom, [gc + fifoRoom] ; fifoRoom was modified by _grCommandTransportMakeRoom, reload
|
||||
00000139 68 0000012A
|
||||
0000013E 6A 00 mov fRoom, [gc + fifoRoom] ; fifoRoom was modified by _grCommandTransportMakeRoom, reload
|
||||
mov curS, [esp + _maxS$] ; curS = maxS = width of scanline (bytes)
|
||||
0000012E 50 jmp __loopT ; we now have enough fifo room, write next scanline
|
||||
0000012F E8 00000000 E
|
||||
00000140 50 jmp __loopT ; we now have enough fifo room, write next scanline
|
||||
00000141 E8 00000000 E
|
||||
__dlDone:
|
||||
|
||||
00000134 8B AE 00000DE4 femms ; exit 3DNow!(tm) state
|
||||
00000146 8B AE 00000DE4 femms ; exit 3DNow!(tm) state
|
||||
|
||||
0000013A 8B 96 00000DEC pop ebp ; restore caller's register variable
|
||||
00000140 8B 4C 24 1C pop edi ; restore caller's register variable
|
||||
00000144 EB 9A
|
||||
0000014C 8B 96 00000DEC pop ebp ; restore caller's register variable
|
||||
00000152 8B 4C 24 1C pop edi ; restore caller's register variable
|
||||
00000156 EB 88
|
||||
pop esi ; restore caller's register variable
|
||||
00000146 pop ebx ; restore caller's register variable
|
||||
00000158 pop ebx ; restore caller's register variable
|
||||
|
||||
00000146 0F 0E ret 24 ; pop 6 DWORD parameters and return
|
||||
00000158 0F 0E ret 24 ; pop 6 DWORD parameters and return
|
||||
|
||||
00000148 5D __grTexDownload_3DNow_MMX@24 ENDP
|
||||
00000149 5F
|
||||
0000015A 5D __grTexDownload_3DNow_MMX@24 ENDP
|
||||
0000015B 5F
|
||||
_TEXT ENDS
|
||||
0000014A 5E
|
||||
0000014B 5B END
|
||||
0000014C C2 0018
|
||||
0000014F
|
||||
014F
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/20/00 17:18:56
|
||||
0000015C 5E
|
||||
0000015D 5B END
|
||||
0000015E C2 0018
|
||||
00000161
|
||||
0161
|
||||
Microsoft (R) Macro Assembler Version 6.14.8444 06/30/00 13:01:25
|
||||
xtexdl.asm Symbols 2 - 1
|
||||
|
||||
|
||||
@@ -434,19 +439,20 @@ Segments and Groups:
|
||||
N a m e Size Length Align Combine Class
|
||||
|
||||
FLAT . . . . . . . . . . . . . . GROUP
|
||||
_TEXT . . . . . . . . . . . . . 32 Bit 014F Page Public 'CODE'
|
||||
_TEXT . . . . . . . . . . . . . 32 Bit 0161 Page Public 'CODE'
|
||||
|
||||
|
||||
Procedures, parameters and locals:
|
||||
|
||||
N a m e Type Value Attr
|
||||
|
||||
__grTexDownload_3DNow_MMX@24 . . P Near 0000 _TEXT Length= 014F Public
|
||||
__mmxAlignFifo . . . . . . . . L Near 00AC _TEXT
|
||||
__grTexDownload_3DNow_MMX@24 . . P Near 0000 _TEXT Length= 0161 Public
|
||||
__mmxAlignFifo . . . . . . . . L Near 00B0 _TEXT
|
||||
__loopT . . . . . . . . . . . L Near 00E0 _TEXT
|
||||
__loopS . . . . . . . . . . . L Near 00E7 _TEXT
|
||||
__startDownload . . . . . . . L Near 0120 _TEXT
|
||||
__dlDone . . . . . . . . . . . L Near 0146 _TEXT
|
||||
__alignmentOK . . . . . . . . L Near 00EC _TEXT
|
||||
__loopS . . . . . . . . . . . L Near 00F3 _TEXT
|
||||
__startDownload . . . . . . . L Near 0132 _TEXT
|
||||
__dlDone . . . . . . . . . . . L Near 0158 _TEXT
|
||||
|
||||
|
||||
Symbols:
|
||||
@@ -455,7 +461,9 @@ Symbols:
|
||||
|
||||
CPUType . . . . . . . . . . . . Number 0010h
|
||||
CoordinateSpace . . . . . . . . Number 0D98h
|
||||
GDBG_INFO_ON . . . . . . . . . . Text
|
||||
GLIDE_ALT_TAB . . . . . . . . . Text
|
||||
GLIDE_DEBUG . . . . . . . . . . Text
|
||||
GLIDE_INIT_HWC . . . . . . . . . Text
|
||||
GLIDE_PACKED_RGB . . . . . . . . Text 0
|
||||
GLIDE_TRI_CULLING . . . . . . . Text 1
|
||||
@@ -490,6 +498,7 @@ _minT$ . . . . . . . . . . . . . Number 0020h
|
||||
_texData$ . . . . . . . . . . . Number 0028h
|
||||
bInfo . . . . . . . . . . . . . Number 011Ch
|
||||
base_ptr . . . . . . . . . . . . Number 0074h
|
||||
checkPtr . . . . . . . . . . . . Number 96ACh
|
||||
colorType . . . . . . . . . . . Number 0B74h
|
||||
cullStripHdr . . . . . . . . . . Number 0DDCh
|
||||
cull_mode . . . . . . . . . . . Number 01E0h
|
||||
|
||||
@@ -21,6 +21,10 @@
|
||||
/* $Header$ *
|
||||
/* $Revision$ *
|
||||
/* $Log$
|
||||
/* Revision 1.3 2000/11/15 23:32:54 joseph
|
||||
/* Syncing up with 3dfx internal source repository. These changes contain a
|
||||
/* number of bug fixes.
|
||||
/*
|
||||
/* Revision 1.1 2000/06/15 00:27:43 josep
|
||||
/* Initial checkin into SourceForge
|
||||
/
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
**
|
||||
** $Header$
|
||||
** $Log:
|
||||
** 7 3dfx 1.4.1.0.1.0 10/11/00 Brent Forced check in to enforce
|
||||
** branching.
|
||||
** 6 3dfx 1.4.1.0 06/20/00 Joseph Kain Changes to support the
|
||||
** Napalm Glide open source release. Changes include cleaned up offensive
|
||||
** comments and new legal headers.
|
||||
@@ -32,7 +34,7 @@
|
||||
** PCI_BUMP_N_GRIND on PowerPC.
|
||||
** 2 3dfx 1.1 09/22/99 Larry warner Created download procedures
|
||||
** for FXT1 format.
|
||||
** 1 3dfx 1.0 09/12/99 StarTeam VTS Administrator
|
||||
** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator
|
||||
** $
|
||||
**
|
||||
** 9 8/05/99 5:03p Larryw
|
||||
|
||||
Reference in New Issue
Block a user