From: David M. <da...@hp...> - 2000-08-15 07:29:27
|
As promised, here is the patch necessary to make Glide_V3 work on IA-64 Linux. I tested this with an AGP Vodoo 3 1000, though it should work with other cards, too. The patch is relative to Glide_V3-DRI-3.10-6.src.rpm available from 3dfx (sorry, I didn't bother checking out the CVS tree at sourceforge). Caveat: the patch below may break backwards compatibility with 16-bit platforms. If anyone still cares about building on such a platform, you may want to scan the patch below for uses of "int" and use FxI32/FxU32 instead. To develop this patch, my approach was to first build Glide using the "standlone" mode. I got a bunch of test programs to work that way (test00, test01, etc. up to about test08) and then I realized that something was seriously wrong with the buffer allocation code (beyond 64-bit problems), so I didn't bother to push it any further and switched to the DRI mode instead. In DRI mode, those buffer allocation problems do not exist and all works fine as far as I know. In the patch, getting rid of some of the compiler warnings may seem pedantic, but I think it would have been a LOT harder to find some of the bad casts if the other warnings had been left unfixed. I'd strongly recommend to merge in those changes. A clean build with gcc -O -Wall" goes a long way towards 64-bit cleanliness. On the DRI front: note that you'll still need a 64-bit cleanup patch (and IA-64) support for the X server before DRM/DRI works on IA-64. I plan to send that patch sometime tomorrow or on Wednesday. Enjoy, --david PS: If you're interested in seeing the IA-64 Linux Voodoo in action, visit the HP booth at Linux World Expo in San Jose this week. ;-) diff -urN Glide_V3-DRI-3.10/ChangeLog Glide_V3-DRI-3.10-lia/ChangeLog --- Glide_V3-DRI-3.10/ChangeLog Wed Dec 31 16:00:00 1969 +++ Glide_V3-DRI-3.10-lia/ChangeLog Mon Aug 14 23:51:43 2000 @@ -0,0 +1,326 @@ +2000-08-14 David Mosberger <da...@hp...> + + * swlibs/texus/lib/util.c (txYABtoPal256): Change type of yabTable + from "long*" to "int*". Declare Y, A, and B to be of type "int*" + instead of "long*". + (txNearestColor): Change ir, ig, and ib arguments from "long" to + "int". + + * swlibs/texus/lib/texusint.h (txYABtoPal256): Change yabTable + argument from "long*" to "int*". + (txNearestColor): Change ir, ig, and ib arguments from "long" to + "int". + + * swlibs/texus/lib/texus.h [__LP64__]: Define FxI32 as "signed + int" and FxU32 as "unsigned int". + + * swlibs/texus/lib/rgt.c (swapShorts): Change type of "length" + from "long" to "int". + (swapLongs): Ditto. + (swapRGB): Ditto. + (_txReadRGTData): Change cast of info->width to "long". + + * swlibs/texus/lib/quantize.c: Put braces around each sub-array + initializer to keep compiler happy. + (_txPixQuantize_RGB332): Change type of argb from "unsigned long" + to "unsigned int". + (_txPixQuantize_RGB332_D4x4): Ditto. + (_txPixQuantize_RGB332_DErr): Ditto. + (_txPixQuantize_RGB332_A8): Ditto. + (_txPixQuantize_RGB332_I8): Ditto. + (_txPixQuantize_RGB332_AI44): Ditto. + (_txPixQuantize_RGB332_AI44_D4x4): Ditto. + (_txPixQuantize_RGB332_AI44_DErr): Ditto. + (_txPixQuantize_RGB332_ARGB8332): Ditto. + (_txPixQuantize_RGB332_ARGB8332_D4x4): Ditto. + (_txPixQuantize_RGB332_ARGB8332_DErr): Ditto. + (_txPixQuantize_RGB565): Ditto. + (_txPixQuantize_RGB565_D4x4): Ditto. + (_txPixQuantize_RGB565_DErr): Ditto. + (_txPixQuantize_ARGB1555): Ditto. + (_txPixQuantize_ARGB1555_D4x4): Ditto. + (_txPixQuantize_ARGB1555_DErr): Ditto. + (_txPixQuantize_ARGB4444): Ditto. + (_txPixQuantize_ARGB4444_D4x4): Ditto. + (_txPixQuantize_ARGB4444_DErr): Ditto. + (_txPixQuantize_AI88): Ditto. + (_txImgQuantize): Change type of quantizer callback to have a + first argument of type "unsigned int" instead of "unsigned long". + Cast "src" pointer to "unsigned int*" instead of "unsigned long*". + + * swlibs/texus/lib/pal256.c (Box): Change type of mean, weight, + and freq from "ulong" to "uint". + (Histogram): Change element type from "ulong" to "uint". + (SumPixels): Ditto. + (ColormaxI): Ditto. + (QuantHistogram): Change type of "pixels" from "ulong*" to + "uint*". + (txMipPal256): Change return value cast of txMalloc from "ulong*" + to "uint *". + (txMipPal256): In calls to bzero(), multiply by sizeof(uint) + instead of sizeof(ulong). + (txMipPal256): In call to QuantHistogram, change cast from + "ulong*" to "uint*". + (txMipPal256): Declare r, g, and b as "uint" instead of "ulong" + and truncate results of expressions for these variables to this + type as well. Change type of src from "ulong*" to "uint*". + (QuantHistogram): Change type of rf, gf, and bf from "ulong*" to + "uint *". + (FindCutpoint): Change type of optweight and curweight from + "ulong" to "uint". + (UpdateFrequencies): Change type of myfreq and 8 to "uint" and + "uint*", respectively. In calls to bzero(), multiply by + sizeof(uint) instead of sizeof(ulong). + + * swlibs/texus/lib/nccnnet.c (struct _weight): Change member types + from "long" to "int". + (struct _vector): Ditto. + (errR): Change type from "long" to "int". + (errG): Ditto. + (errB): Ditto. + (errMax): Ditto. + (totR): Ditto. + (totG): Ditto. + (totB): Ditto. + (_nn_modifyNeurons): Change type of arguments from "long" to + "int". Change type of "d", "dr", "dg", and "db" from "long" to + "int". + (txMapPal256toYAB): Change type of "bstR", "bstG", "bstB", + "bstMax" na "dyab2pal[]" from "long" to "int". Remove superfluous + cast in call to txYABtoPal256(). + (txMipNccNNet): Change type of "yabTable[]" from "long" to "int". + Remove superfluous cast in call to txYABtoPal256(). + + * swlibs/texus/lib/ncc.c: Put braces around each sub-array + initializer to keep compiler happy. + (_txImgNcc): Change type of idata from "unsigned long*" to + "unsigned int *". + (txMipNcc): Remove superfluous cast to "long*". + + * swlibs/texus/lib/mipmap.c (_txImgHalve): Change type of "indata" + from "long*" to "int*". + + * swlibs/texus/lib/dequant.c (_txImgDequantizeYIQ422): Change type + of yabTable from "long*" to FxU32*. Remove superfluous type casts + when passing argument to txYABtoPal256. + (_txImgDequantizeAYIQ8422): Change type of yab from "long*" to + FxU32*. Declare "pal[]" as array of type FxU32 instead of "long". + Remove superfluous type cast when passing pallete to + _txImgDequantizeYIQ422() and _txImgDequantizeAYIQ8422(). + + * swlibs/newpci/pcilib/pcilib.h (FxPlatformIOProces): Change type + of addrUnmap's linearAddr argument from FxU32 to "long*". Change + type of addrSetPermission's addrBase argument from FxU32 to + "long*". + + * swlibs/newpci/pcilib/fxpci.h (pciMapPhysicalToLinear): Change + type of linear_addr from FxU32* to "long*". + (pciMapPhysicalDeviceToLinear): Ditto. + (pciUnmapPhysical): Change type of linear_addr from FxU32 to + "long". + (pciLinearRangeSetPermission): Change type of addrBase from FxU32 + to "long". + + * swlibs/newpci/pcilib/fxpci.c (pciMapCardMulti): Change type of + virtAddress from FxU32 to "long". + (pciMapCardMulti): Cast "length" to "long" before casting it + to a pointer to avoid compiler warning. + (pciMapPhysicalToLinear): Change type of linear_addr from FxU32* + to "long*". + (pciMapPhysicalDeviceToLinear): Ditto. + (pciUnmapPhysical): Change type of linear_addr from FxU32 to "long". + (pciLinearRangeSetPermission): change type of addrBase from FxU32 + to "long". + + * swlibs/newpci/pcilib/fxlinux.c (pciMapLinearLinux): Change + linear_addr argument from FxU32* to "long*" type. + (pciUnmapLinearLinux): Change linear_addr type from FxU32 to + "long". + (pciSetPermissionLinux): Ditto. + (pciMapLinearLinux): Cast return value of mmap() to "long" instead + of FxU32 to avoid truncating top 32 bits. + + * swlibs/include/make/3dfx.mak (CNODEBUG): Don't use x86 specific + compiler option "-m486" and reduce optimization level to -O3. + + * swlibs/fxmisc/linutil.c: Explicitly give "init_done" a type of "int" + to avoid compiler warning. + + * swlibs/fxmisc/fxos.c (fxFopenPath): Explicitly compare result + of assignment against NULL to avoid compiler warning. + + * swlibs/fxmisc/fximg.c (_imgGuessType): Don't use non-portable + multi-byte character constants. + (_imgWriteP6Header): Remove extraneous argument in fprintf() call. + (imgReadFile): Explicitly compare result of assignment against + NULL to avoid compiler warning. + + * swlibs/fxmisc/3dfx.h [__LP64__]: Define FxI32 as "signed int" + and FxU32 as "unsigned int". + + * set-for-standalone: New script to set source for standalone + compilation. + * set-for-dri: New script to set up source for compilation with + DRI. + + * h3/minihwc/minihwc.h: Change type of linearAddress[] from FxU32 + to "long". Change type of ioMemBase, cmdAGPBase, waxBase, sstBase, + lfbBase, and rawLfbBase from FxU32 to "long". + + * h3/minihwc/minihwc.c (hwcMapBoard): Do not cast return value of + pciMapCardMulti() to FxU32 to avoid truncating top 32 bits. + + * h3/minihwc/linhwc.c.save (P6FENCE) [__ia64__]: Make P6FENCE + expand into "mf.a" instruction. + (loadEnvFile): Rename local "first" to "is_first" to avoid + collision with global "first" list head pointer. + (hwcInitRegisters): Cast pointers to "long" instead of FxU32. + + * h3/minihwc/linhwc.c.dri (P6FENCE) [__ia64__]: Make P6FENCE + expand into "mf.a" instruction. + (loadEnvFile): Rename local "first" to "is_first" to avoid + collision with global "first" list head pointer. + (hwcMapBoard): Cast pointers to "long" instead of FxU32. + (_grImportFifo): Declare as external function. + (_grInvalidateAll): Ditto. + (_grExportFifo): Ditto. + (grDRIResetSAREA): Cast fifoPtr to (int *). + + * h3/minihwc/hwcext.h (struct hwcExtLinearADdrRes_s): Change type + of baseAddresses[] from FxU32 to "long". + + * h3/incsrc/h3regs.h (struct vertex_Rec): Declare members as + FxU32/FxI32 instead of "unsigned long"/"long" to guarantee 32-bit + width. + (struct sstregs): Ditto. + + * h3/incsrc/h3info.h (FxU32) [__LP64__]: Define FxU32 as "unsigned + int". + * h3/incsrc/h3regs.h: Ditto. + + * h3/incsrc/h3defs.h (FLOAT_ISNEG): Define more suitable version + for IA-64. + (ISIGN): Ditto. + (FSIGN): Ditto. + (SST_WRAP): Cast "sst" pointer to "long" instead of FxI32 before + doing arithmetic on it. + (SST_CHIP): Ditto. + (SST_TMU): Ditto. + (SST_BASE_ADDRESS): Ditto. + + * h3/incsrc/gdebug.h (GDBG_INFO) [__GNUC__]: Use GNU CPP varag + macros to avoid flood of compiler warnings due to useless + expressions. + (GDBG_INFO_MORE): Ditto. + (GDBG_PRINF): Ditto. + (GDBG_ERROR_SET_CALLBACK): Ditto. + (GDBG_ERROR_CLEAR_CALLBACK): Ditto. + + * h3/glide3/src/makefile.linux (FX_GLIDE_CTRISETUP): Define as 1 + to use C source code instead of assembly code (should be done only + on platforms that don't have assembly versions of the triangle + setup code). + + * h3/glide3/src/gthread.c (setThreadValue): Change argument type + from FxU32 to "long". + (getThreadValueSlow): Change return value from FxU32 to "long". + + * h3/glide3/src/gtexdl.c (_grTexDownloadPalette): Put parens around + logical AND to avoid compiler warning. + + * h3/glide3/src/gsst.c.save (initGC): Cast pointers to "long" + before doing arithmetic on them. Cast pointer to "long" before + using it as a thread value. + (grSstWinOpen): Cast pointers to "long" instead of FxU32 before + doing arithmetic on them. Explicitly compare return value of + assignment against != 0 to avoid compiler warning. + (grSstWinClose): Cast pointer to "long" before using it as a + thread value. + + * h3/glide3/src/gpci.c (_triSetupProcs): Explicitly cast + _trisetup_null to GrTriSetupProc to avoid compiler warning. + (DllMain): Cast pointer to "long" before using it as a thread value. + + * h3/glide3/src/glide.h (GrContext_t): Change type from FxU32 to + "unsigned long". + + * h3/glide3/src/glfb.c.dri (grLfbWriteRegion): Cast pointer to + (long) instead of (int) before doing arithmetic on it. + (grLfbReadRegion): Ditto. + + * h3/glide3/src/gglide.c.save b(grGlideShutdown): Fix typo: replace + "readPtr0 != readPtr1" with "depth0 != depth1". Cast "gc" to + "long" instead of FxU32. + + * h3/glide3/src/gglide.c.dri (grDRIBufferSwap): Write 0xCC as + 0xCCu to avoid compiler warning regarding implicit conversion of + constant from signed to unsigned int. + (grGlideShutdown): Fix typo: replace "readPtr0 != readPtr1" with + "depth0 != depth1". Cast "gc" to "long" instead of FxU32. + + * h3/glide3/src/gerror.c (_grAssert): Cast pointers to (long" + instead of (FxU32) before doing arithmetic on them. * + h3/glide3/src/gglide.c.dri: Ditto. + + * h3/glide3/src/gdraw.c (GR_ENTRY): Don't assume that function + parameters are being passed on the stack. Instead, explicitly use + and initialize the new "vertices[]"" array with the "a" and "b" + pointers. + (DA_END): Cast pointers to "long" instead of FxU32 before doing + arithmetic on them. + (_grDrawPoints): If mode is not zero, initialize "stride" to the + number of floats that corresponds to the size of a pointer (1 on a + 32-bit platform, 2 on a 64-bit platform). This code works + properly as long as sizeof(void*)==N*sizeof(float) for some + integer constant N. + (_grDrawLineStrip): Ditto. + (_grDrawTriangles_Default): Ditto. + (_grDrawLineStrip): Cast &ADY and &DX to "int *" instead of "long *". + + * h3/glide3/src/gaa.c (aaVpDrawArrayEdgeSense): Cast pointers to + "long" instead of "int" before doing arithmetic on them. + (_grAADrawPoints): Ditto. + (_grAADrawLineStrip): Ditto. + (aaDrawArrayEdgeSense): Ditto. + + * h3/glide3/src/g3df.c: Include <ctype.h> to avoid warning due to + implicit declaration of "toupper". + + * h3/glide3/src/fxglide.h (GR_TEX_FLUSH_WRITE): Cast pointers to + "long" instead of FxU32 before doing arithmetic on them. + (GrGC_s): Change type of "fifoRead", "lfbBuffers[]", and + "lockPtrs[]" from FxU32 to "long". + (P6FENCE) [__ia64__]: Make P6FENCE expand into "mf.a" + instruction. + (threadValueLinux): Change type from FxU32 to "long". + (setThreadValue): Change thread value type from FxU32 to "long". + (getThreadValueSLOW): Ditto. + (GR_ASSERT) [!GLIDE_SANITY_ASSERT && __GNUC__]: Define GR_ASSERT() + as no-op. + (FARRAY): Cast pointer to "long" before doing arithmetic on it. + + * h3/glide3/src/fxcmd.h (REG_GROUP_END): Cast poitners to "long" + instead of FxU32 before doing arithmetic on them. + (TRI_END): Ditto. + (FIFO_LINEAR_WRITE_BEGIN): Ditto. + (FIFO_LINEAR_WRITE_END): Ditto. + (AA_TRI_VP_SETFS): Ditto. + (REG_GROUP_SETF_CLAMP): Remove trailing whitespace. + + * h3/glide3/src/fifo.c (_grHwFifoPtr): Change return type from + FxU32 to "long". + * h3/glide3/src/distrip.c (GR_DIENTRY): Cast pointers to "long" + instead of FxU32 before doing arithmetic on them. * + h3/glide3/src/fifo.c (GEN_INDEX): Ditto. + (_grCommandTransportMakeRoom): Comment out unused variable + "wrapAddr". + + * h3/glide3/src/disst.c (GR_DIENTRY): Cast thread value to (long) + not FxU32. + + * h3/glide3/src/diget.c (GR_DIENTRY): For GR_SURFACE_TEXTURE, + verify plength has the size of a "long" and return tBuffer address + as a "long". + + * h3/glide3/src/cpudtect.S: Add (minimal) IA-64 suppot. + diff -urN Glide_V3-DRI-3.10/h3/glide3/src/cpudtect.S Glide_V3-DRI-3.10-lia/h3/glide3/src/cpudtect.S --- Glide_V3-DRI-3.10/h3/glide3/src/cpudtect.S Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/cpudtect.S Wed Aug 9 13:36:45 2000 @@ -49,6 +49,19 @@ /* Neutered mutiplatform multiheaded monster. */ +#ifdef __ia64__ + + .align 32 + .global _cpu_detect_asm + .proc _cpu_detect_asm + +_cpu_detect_asm: + mov ret0=0 + br.ret.sptk.few b0 + + .end _cpu_detect_asm + +#else /* !__ia64__ */ .file "cpudtect.asm" @@ -324,3 +337,5 @@ .size double_precision_asm,.L_END_double_precision_asm-double_precision_asm .end + +#endif /* !__ia64__ */ diff -urN Glide_V3-DRI-3.10/h3/glide3/src/diget.c Glide_V3-DRI-3.10-lia/h3/glide3/src/diget.c --- Glide_V3-DRI-3.10/h3/glide3/src/diget.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/diget.c Mon Aug 14 21:38:41 2000 @@ -615,10 +615,10 @@ break; case GR_SURFACE_TEXTURE: - if (plength == 4) { + if (plength == sizeof(long)) { GR_DCL_GC; - *params = (FxU32) &gc->tBuffer; + *(long *)params = (long) &gc->tBuffer; retVal = plength; } break; diff -urN Glide_V3-DRI-3.10/h3/glide3/src/disst.c Glide_V3-DRI-3.10-lia/h3/glide3/src/disst.c --- Glide_V3-DRI-3.10/h3/glide3/src/disst.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/disst.c Wed Aug 9 14:58:01 2000 @@ -183,7 +183,7 @@ GrErrorCallback( "grSstSelect: non-existent SST", FXTRUE ); _GlideRoot.current_sst = which; - setThreadValue( (FxU32)&_GlideRoot.GCs[_GlideRoot.current_sst] ); + setThreadValue( (long)&_GlideRoot.GCs[_GlideRoot.current_sst] ); #ifdef GLIDE_MULTIPLATFORM _GlideRoot.curGCFuncs = _GlideRoot.curGC->gcFuncs; diff -urN Glide_V3-DRI-3.10/h3/glide3/src/distrip.c Glide_V3-DRI-3.10-lia/h3/glide3/src/distrip.c --- Glide_V3-DRI-3.10/h3/glide3/src/distrip.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/distrip.c Wed Aug 9 23:57:00 2000 @@ -544,10 +544,10 @@ else { void *b_ptr, *c_ptr; while ((int)Count >= 3) { - b_ptr = (void *)((FxU32)pointers + stride); - c_ptr = (void *)((FxU32)pointers + stride*2); + b_ptr = (void *)((long)pointers + stride); + c_ptr = (void *)((long)pointers + stride*2); TRISETUP(pointers, b_ptr, c_ptr); - pointers = (void *)((FxU32)c_ptr + stride); + pointers = (void *)((long)c_ptr + stride); Count -= 3; } } diff -urN Glide_V3-DRI-3.10/h3/glide3/src/fifo.c Glide_V3-DRI-3.10-lia/h3/glide3/src/fifo.c --- Glide_V3-DRI-3.10/h3/glide3/src/fifo.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/fifo.c Thu Aug 10 00:07:26 2000 @@ -475,7 +475,7 @@ } ; -#define GEN_INDEX(a) ((((FxU32) a) - ((FxU32) gc->reg_ptr)) >> 2) +#define GEN_INDEX(a) ((((long) a) - ((long) gc->reg_ptr)) >> 2) void _grFifoWriteDebug(FxU32 addr, FxU32 val, FxU32 fifoPtr) @@ -833,7 +833,9 @@ gc->contextP = 1; #endif if (gc->contextP) { +#if 0 FxU32 wrapAddr = 0x00UL; +#endif FxU32 checks; GR_ASSERT(blockSize > 0); @@ -973,7 +975,9 @@ P6FENCE; +#if 0 wrapAddr = (FxU32)gc->cmdTransportInfo.fifoPtr; +#endif /* Update roomXXX fields for the actual wrap */ gc->cmdTransportInfo.roomToReadPtr -= gc->cmdTransportInfo.roomToEnd; @@ -1047,10 +1051,10 @@ } -FxU32 +long _grHwFifoPtr(FxBool ignored) { - FxU32 rVal = 0; + long rVal = 0; FxU32 status, readPtrL1, readPtrL2; GR_DCL_GC; @@ -1069,7 +1073,7 @@ #endif readPtrL2 = GET(gc->cRegs->cmdFifo0.readPtrL); } while (readPtrL1 != readPtrL2); - rVal = (((FxU32)gc->cmdTransportInfo.fifoStart) + + rVal = (((long)gc->cmdTransportInfo.fifoStart) + readPtrL2 - (FxU32)gc->cmdTransportInfo.fifoOffset); } @@ -1191,13 +1195,13 @@ gcFifo=&gc->cmdTransportInfo; readPos=readPos-gcFifo->fifoOffset; gcFifo->fifoPtr = gcFifo->fifoStart + (readPos>>2); - gcFifo->fifoRead = (FxU32)gcFifo->fifoPtr; + gcFifo->fifoRead = (long)gcFifo->fifoPtr; #else gcFifo=&gc->cmdTransportInfo; gcFifo->fifoPtr = gc->rawLfb+(fifoPtr>>2); gcFifo->fifoRead = ((int)gc->rawLfb)+fifoRead; #endif - gcFifo->roomToReadPtr = gcFifo->fifoRead-((int)gcFifo->fifoPtr)-FIFO_END_ADJUST-sizeof(FxU32); + gcFifo->roomToReadPtr = gcFifo->fifoRead-((long)gcFifo->fifoPtr)-FIFO_END_ADJUST-sizeof(FxU32); if (gcFifo->roomToReadPtr<0) gcFifo->roomToReadPtr+=gcFifo->fifoSize; gcFifo->roomToEnd = gcFifo->fifoSize - ((gcFifo->fifoPtr-gcFifo->fifoStart)<<2) - @@ -1215,7 +1219,7 @@ GR_DCL_GC; gcFifo=&gc->cmdTransportInfo; *fifoPtr=(gcFifo->fifoPtr-gc->rawLfb)<<2; - *fifoRead=(gcFifo->fifoRead-(int)gc->rawLfb); + *fifoRead=(gcFifo->fifoRead-(long)gc->rawLfb); } #endif diff -urN Glide_V3-DRI-3.10/h3/glide3/src/fxcmd.h Glide_V3-DRI-3.10-lia/h3/glide3/src/fxcmd.h --- Glide_V3-DRI-3.10/h3/glide3/src/fxcmd.h Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/fxcmd.h Wed Aug 9 23:39:35 2000 @@ -182,7 +182,7 @@ /* NB: This should be used sparingly because it does a 'real' hw read * which is *SLOW*. */ -FxU32 _grHwFifoPtr(FxBool); +long _grHwFifoPtr(FxBool); #define HW_FIFO_PTR(a) _grHwFifoPtr(a) #if FIFO_ASSERT_FULL @@ -716,8 +716,8 @@ #define REG_GROUP_END() \ ASSERT(_checkP); \ - ASSERT((((FxU32)_regGroupFifoPtr - (FxU32)gc->cmdTransportInfo.fifoPtr) >> 2) == _groupNum + 1); \ - gc->cmdTransportInfo.fifoRoom -= ((FxU32)_regGroupFifoPtr - (FxU32)gc->cmdTransportInfo.fifoPtr); \ + ASSERT((((long)_regGroupFifoPtr - (long)gc->cmdTransportInfo.fifoPtr) >> 2) == _groupNum + 1); \ + gc->cmdTransportInfo.fifoRoom -= ((long)_regGroupFifoPtr - (long)gc->cmdTransportInfo.fifoPtr); \ gc->cmdTransportInfo.fifoPtr = (FxU32*)_regGroupFifoPtr; \ GDBG_INFO(gc->myLevel + 200, "\tGroupEnd: (0x%X : 0x%X)\n", \ gc->cmdTransportInfo.fifoPtr, gc->cmdTransportInfo.fifoRoom); \ @@ -1028,7 +1028,7 @@ #define TRI_END \ TRI_ASSERT(); \ - gc->cmdTransportInfo.fifoRoom -= ((FxU32)tPackPtr - (FxU32)gc->cmdTransportInfo.fifoPtr); \ + gc->cmdTransportInfo.fifoRoom -= ((long)tPackPtr - (long)gc->cmdTransportInfo.fifoPtr); \ gc->cmdTransportInfo.fifoPtr = tPackPtr; \ GDBG_INFO(gc->myLevel + 200, "\tTriEnd: (0x%X : 0x%X)\n", tPackPtr, gc->cmdTransportInfo.fifoRoom); \ FIFO_ASSERT(); \ @@ -1047,12 +1047,12 @@ GR_CHECK_COMPATABILITY(FN_NAME, \ !gc->open, \ "Called before grSstWinOpen()"); \ - GR_ASSERT(((FxU32)(packetPtr) & FIFO_ALIGN_MASK) == 0); /* alignment */ \ + GR_ASSERT(((long)(packetPtr) & FIFO_ALIGN_MASK) == 0); /* alignment */ \ GR_ASSERT((__numWords) > 0); /* packet size */ \ GR_ASSERT((__numWords) < ((0x01 << 19) - 2)); \ GR_ASSERT((((FxU32)(__numWords) + 2) << 2) <= (FxU32)gc->cmdTransportInfo.fifoRoom); \ - GR_ASSERT(((FxU32)packetPtr + (((__numWords) + 2) << 2)) < \ - (FxU32)gc->cmdTransportInfo.fifoEnd); \ + GR_ASSERT(((unsigned long)packetPtr + (((__numWords) + 2) << 2)) < \ + (unsigned long)gc->cmdTransportInfo.fifoEnd); \ GR_ASSERT((hdr2 & 0xE0000000UL) == 0x00UL); \ GR_ASSERT(((__addr) & 0x03UL) == 0x00UL); \ FIFO_ASSERT(); \ @@ -1097,8 +1097,8 @@ #define FIFO_LINEAR_WRITE_END \ DEBUGFIFODUMP_LINEAR(gc->cmdTransportInfo.fifoPtr); \ - GR_ASSERT((((FxU32)packetPtr - (FxU32)gc->cmdTransportInfo.fifoPtr) >> 2) == __writeSize + 2); \ - gc->cmdTransportInfo.fifoRoom -= ((FxU32)packetPtr - (FxU32)gc->cmdTransportInfo.fifoPtr); \ + GR_ASSERT((((long)packetPtr - (long)gc->cmdTransportInfo.fifoPtr) >> 2) == __writeSize + 2); \ + gc->cmdTransportInfo.fifoRoom -= ((long)packetPtr - (long)gc->cmdTransportInfo.fifoPtr); \ gc->cmdTransportInfo.fifoPtr = packetPtr; \ GDBG_INFO(gc->myLevel + 200, "\tLinearEnd: (0x%X : 0x%X)\n", \ packetPtr, gc->cmdTransportInfo.fifoRoom); \ @@ -1312,7 +1312,7 @@ #define REG_GROUP_SETF_CLAMP(__regBase, __regAddr, __val) \ do { \ const FxU32 fpClampVal = FP_FLOAT_CLAMP(__val); \ - REG_GROUP_ASSERT(__regAddr, fpClampVal, FXTRUE); \ + REG_GROUP_ASSERT(__regAddr, fpClampVal, FXTRUE); \ SET(((FxU32*)(__regBase))[offsetof(SstRegs, __regAddr) >> 2], fpClampVal); \ GR_INC_SIZE(sizeof(FxU32)); \ } while(0) @@ -1512,7 +1512,7 @@ } \ else { \ FxU32 argb; \ - argb = *((FxU32 *)((int)_s + i)) & 0x00ffffff; \ + argb = *((FxU32 *)((long)_s + i)) & 0x00ffffff; \ TRI_SETF(*((float *)&argb)); \ dataElem++; \ i = gc->tsuDataList[dataElem]; \ diff -urN Glide_V3-DRI-3.10/h3/glide3/src/fxglide.h Glide_V3-DRI-3.10-lia/h3/glide3/src/fxglide.h --- Glide_V3-DRI-3.10/h3/glide3/src/fxglide.h Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/fxglide.h Wed Aug 9 23:35:20 2000 @@ -1039,7 +1039,7 @@ SET(*curFifoPtr++, *curPktData++); \ } \ GR_INC_SIZE((__writeCount) * sizeof(FxU32)); \ - gc->cmdTransportInfo.fifoRoom -= ((FxU32)curFifoPtr - (FxU32)gc->cmdTransportInfo.fifoPtr); \ + gc->cmdTransportInfo.fifoRoom -= ((long)curFifoPtr - (long)gc->cmdTransportInfo.fifoPtr); \ gc->cmdTransportInfo.fifoPtr = curFifoPtr; \ } \ GR_CHECK_SIZE(); \ @@ -1158,7 +1158,7 @@ */ FxU32* fifoPtr; /* Current write pointer into fifo */ - FxU32 fifoRead; /* Last known hw read ptr. + long fifoRead; /* Last known hw read ptr. * If on an sli enabled system this will be * the 'closest' hw read ptr of the sli * master and slave. @@ -1244,11 +1244,12 @@ curBuffer, frontBuffer, backBuffer, - buffers[4], + buffers[4]; + long lfbBuffers[4]; /* Tile relative addresses of the color/aux * buffers for lfbReads. */ - FxU32 lockPtrs[2]; /* pointers to locked buffers */ + long lockPtrs[2]; /* pointers to locked buffers */ FxU32 fbStride; struct { @@ -1475,6 +1476,8 @@ # define P6FENCE __eieio() #elif defined(__GNUC__) && defined(__i386__) #define P6FENCE asm("xchg %%eax, %0" : : "m" (_GlideRoot.p6Fencer) : "eax"); +#elif defined(__GNUC__) && defined(__ia64__) +# define P6FENCE asm volatile ("mf.a" ::: "memory"); #else /* !defined ( P6FENCE ) */ # error "P6 Fencing code needs to be added for this compiler" #endif /* !defined ( P6FENCE ) */ @@ -1798,7 +1801,7 @@ #endif #ifdef __linux__ -extern FxU32 threadValueLinux; +extern long threadValueLinux; #define getThreadValueFast() threadValueLinux #endif @@ -1813,9 +1816,9 @@ initThreadStorage( void ); void -setThreadValue( FxU32 value ); +setThreadValue( long value ); -FxU32 +long getThreadValueSLOW( void ); void @@ -2093,7 +2096,11 @@ #if defined(GLIDE_SANITY_ASSERT) #define GR_ASSERT(exp) ((void)((!(exp)) ? (_grAssert(#exp, __FILE__, __LINE__),0) : 0xFFFFFFFF)) #else -#define GR_ASSERT(exp) ((void)(0 && ((FxU32)(exp)))) +# ifdef __GNUC__ +# define GR_ASSERT(exp) ((void) 0) +# else +# define GR_ASSERT(exp) ((void)(0 && ((FxU32)(exp)))) +# endif #endif #define INTERNAL_CHECK(__name, __cond, __msg, __fatalP) \ @@ -2163,7 +2170,7 @@ #define HW_TEX_PTR(__b) ((FxU32*)(((FxU32)(__b)) + HW_TEXTURE_OFFSET)) /* access a floating point array with a byte index */ -#define FARRAY(p,i) (*(float *)((i)+(int)(p))) +#define FARRAY(p,i) (*(float *)((i)+(long)(p))) #define ArraySize(__a) (sizeof(__a) / sizeof((__a)[0])) #if GDBG_INFO_ON diff -urN Glide_V3-DRI-3.10/h3/glide3/src/g3df.c Glide_V3-DRI-3.10-lia/h3/glide3/src/g3df.c --- Glide_V3-DRI-3.10/h3/glide3/src/g3df.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/g3df.c Wed Aug 9 23:23:12 2000 @@ -70,6 +70,7 @@ * Added GR_DIENTRY for di glide functions ** */ +#include <ctype.h> #include <stdio.h> #include <string.h> #include <3dfx.h> diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gaa.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gaa.c --- Glide_V3-DRI-3.10/h3/glide3/src/gaa.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gaa.c Wed Aug 9 23:36:10 2000 @@ -378,8 +378,8 @@ } else { ia = gc->state.vData.pargbInfo.offset; - *((FxU32 *)&v1a)=*((FxU32 *)((int)a + ia))&0x00ffffff; - *((FxU32 *)&v2a)=*((FxU32 *)((int)b + ia))&0x00ffffff; + *((FxU32 *)&v1a)=*((FxU32 *)((long)a + ia))&0x00ffffff; + *((FxU32 *)&v2a)=*((FxU32 *)((long)b + ia))&0x00ffffff; } { @@ -678,7 +678,7 @@ FxU32 argb; if (i == ia) { - argb = *((FxU32 *)((int)e + i)) & 0x00ffffff; + argb = *((FxU32 *)((long)e + i)) & 0x00ffffff; TRI_SETF(*((float *)&argb)); } else { @@ -855,8 +855,8 @@ ady = -ady; if (gc->state.vData.colorType != GR_FLOAT) { - *((FxU32 *)&v1a)=*((FxU32 *)((int)v1 + ia))&0x00ffffff; - *((FxU32 *)&v2a)=*((FxU32 *)((int)v2 + ia))&0x00ffffff; + *((FxU32 *)&v1a)=*((FxU32 *)((long)v1 + ia))&0x00ffffff; + *((FxU32 *)&v2a)=*((FxU32 *)((long)v2 + ia))&0x00ffffff; } if (adx >= ady) { /* X major line */ @@ -1255,8 +1255,8 @@ } else { ia = gc->state.vData.pargbInfo.offset; - *((FxU32 *)&v1a)=*((FxU32 *)((int)a + ia))&0x00ffffff; - *((FxU32 *)&v2a)=*((FxU32 *)((int)b + ia))&0x00ffffff; + *((FxU32 *)&v1a)=*((FxU32 *)((long)a + ia))&0x00ffffff; + *((FxU32 *)&v2a)=*((FxU32 *)((long)b + ia))&0x00ffffff; } { diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gdraw.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gdraw.c --- Glide_V3-DRI-3.10/h3/glide3/src/gdraw.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gdraw.c Thu Aug 10 23:52:27 2000 @@ -233,13 +233,15 @@ GR_ENTRY(grDrawLine, void, (const void *a, const void *b)) { #define FN_NAME "grDrawLine" + const void *vertices[2] = {a, b}; + GR_BEGIN_NOFIFOCHECK(FN_NAME, 91); GDBG_INFO_MORE(gc->myLevel, "(a = 0x%x, b = 0x%x)\n", a, b); if (gc->state.grEnableArgs.primitive_smooth_mode & GR_AA_ORDERED_LINES_MASK) - _grAADrawLineStrip(GR_VTX_PTR_ARRAY, GR_LINES, 2, (void *)&a); + _grAADrawLineStrip(GR_VTX_PTR_ARRAY, GR_LINES, 2, vertices); else - _grDrawLineStrip(GR_VTX_PTR_ARRAY, GR_LINES, 2, (void *)&a); + _grDrawLineStrip(GR_VTX_PTR_ARRAY, GR_LINES, 2, vertices); #undef FN_NAME } /* grDrawLine */ @@ -323,7 +325,7 @@ GR_INC_SIZE(sizeof(FxU32)) #define DA_END \ - gc->cmdTransportInfo.fifoRoom -= ((FxU32)packetPtr - (FxU32)gc->cmdTransportInfo.fifoPtr); \ + gc->cmdTransportInfo.fifoRoom -= ((long)packetPtr - (long)gc->cmdTransportInfo.fifoPtr); \ gc->cmdTransportInfo.fifoPtr = packetPtr; \ FIFO_ASSERT(); \ } @@ -348,7 +350,7 @@ * except the data set up is from the pointer array and * its data layout */ - FxI32 stride = mode; + FxI32 stride; /* we snap to an integer by adding a large enough number that it * shoves all fraction bits off the right side of the mantissa. @@ -382,8 +384,10 @@ */ #define POINTS_BUFFER 100 - if (stride == 0) + if (mode == 0) stride = gc->state.vData.vStride; + else + stride = sizeof(float *) / sizeof (float); if (gc->state.grCoordinateSpaceArgs.coordinate_space_mode == GR_WINDOW_COORDS) { while (count > 0) { @@ -573,7 +577,7 @@ int j; FxI32 sCount; FxU32 vertexParamOffset; - FxI32 stride = mode; + FxI32 stride; #define DX gc->pool.ftemp1 #define ADY gc->pool.ftemp2 @@ -589,8 +593,11 @@ #define LINES_BUFFER 100 - if (stride == 0) + if (mode == 0) stride = gc->state.vData.vStride; + else + stride = sizeof(float *) / sizeof (float); + if (ltype == GR_LINES) sCount = count >> 1; /* line list */ else @@ -618,16 +625,16 @@ ** compute absolute deltas and draw from low Y to high Y */ ADY = FARRAY(b, gc->state.vData.vertexInfo.offset+4) - FARRAY(a, gc->state.vData.vertexInfo.offset+4); - i = *(long *)&ADY; + i = *(int *)&ADY; if (i < 0) { float *tv; tv = a; a = b; b = tv; i ^= 0x80000000; /* ady = -ady; */ - (*(long *)&ADY) = i; + (*(int *)&ADY) = i; } DX = FARRAY(b, gc->state.vData.vertexInfo.offset) - FARRAY(a, gc->state.vData.vertexInfo.offset); - j = *(long *)&DX; + j = *(int *)&DX; if (j < 0) { j ^= 0x80000000; /* adx = -adx; */ } @@ -797,7 +804,7 @@ ** compute absolute deltas and draw from low Y to high Y */ ADY = tmp2 - tmp1; - i = *(long *)&ADY; + i = *(int *)&ADY; if (i < 0) { float *tv; owa = oowb; owb = oowa; @@ -805,7 +812,7 @@ fby = tmp1; tv = a; a = b; b = tv; i ^= 0x80000000; /* ady = -ady; */ - (*(long *)&ADY) = i; + (*(int *)&ADY) = i; } fax = FARRAY(a, gc->state.vData.vertexInfo.offset) *owa*gc->state.Viewport.hwidth+gc->state.Viewport.ox; @@ -813,7 +820,7 @@ *owb*gc->state.Viewport.hwidth+gc->state.Viewport.ox; DX = fbx - fax; - j = *(long *)&DX; + j = *(int *)&DX; if (j < 0) { j ^= 0x80000000; /* adx = -adx; */ } @@ -901,7 +908,7 @@ vSize, #endif k; - FxI32 stride = mode; + FxI32 stride; float *vPtr; GR_BEGIN_NOFIFOCHECK(FN_NAME, 90); @@ -917,9 +924,10 @@ GDBG_INFO(110, "%s: paramMask = 0x%x\n", FN_NAME, gc->cmdTransportInfo.paramMask); #endif - if (stride == 0) + if (mode == 0) stride = gc->state.vData.vStride; - + else + stride = sizeof(float *) / sizeof (float); gc->stats.trisProcessed+=(count/3); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gerror.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gerror.c --- Glide_V3-DRI-3.10/h3/glide3/src/gerror.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gerror.c Wed Aug 9 23:26:01 2000 @@ -280,7 +280,7 @@ gdbg_printf("Command Fifo:\n"); gdbg_printf("\tSoftware:\n"); - gdbg_printf("\t\tfifoPtr: 0x%X\n", (FxU32)gc->cmdTransportInfo.fifoPtr - (FxU32) gc->rawLfb); + gdbg_printf("\t\tfifoPtr: 0x%X\n", (long)gc->cmdTransportInfo.fifoPtr - (long) gc->rawLfb); gdbg_printf("\t\tfifoOffset: 0x%X\n", gc->cmdTransportInfo.fifoOffset); gdbg_printf("\t\tfifoEnd: 0x%X\n", gc->cmdTransportInfo.fifoEnd - gc->rawLfb); gdbg_printf("\t\tfifoSize: 0x%X\n", gc->cmdTransportInfo.fifoSize); @@ -290,7 +290,7 @@ if ( !gc->windowed ) { gdbg_printf("\tHardware:\n"); - gdbg_printf("\t\treadPtrL: 0x%X\n", HW_FIFO_PTR(FXTRUE) - (FxU32)gc->rawLfb); + gdbg_printf("\t\treadPtrL: 0x%X\n", HW_FIFO_PTR(FXTRUE) - (long)gc->rawLfb); gdbg_printf("\t\tdepth: 0x%X\n", GR_CAGP_GET(depth)); gdbg_printf("\t\tholeCount: 0x%X\n", GR_CAGP_GET(holeCount)); gdbg_printf("\t\tbaseAddrL: 0x%X\n", GR_CAGP_GET(baseAddrL)); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gglide.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c --- Glide_V3-DRI-3.10/h3/glide3/src/gglide.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c Wed Aug 9 23:41:48 2000 @@ -1179,8 +1179,8 @@ for ( i = 0; i < MAX_BUFF_PENDING && j == -1; i++) { if (gc->bufferSwaps[i] == 0xffffffff) { gc->bufferSwaps[i] = - (FxU32) gc->cmdTransportInfo.fifoPtr - - (FxU32) gc->cmdTransportInfo.fifoStart; + (long) gc->cmdTransportInfo.fifoPtr - + (long) gc->cmdTransportInfo.fifoStart; j = i; } } @@ -1222,7 +1222,7 @@ REG_GROUP_SET_WAX(hw, srcXY, x | ((driInfo.y+(y-driInfo.y))<<16)); REG_GROUP_SET_WAX(hw, dstSize, (w&0x1FFF)|((h&0x1FFF)<<16)); REG_GROUP_SET_WAX(hw, dstXY, (x&0x1FFF) | ((y&0x1FFF)<<16)); - REG_GROUP_SET_WAX(hw, command, (0xCC<<24) | 0x1 | BIT(8)); + REG_GROUP_SET_WAX(hw, command, (0xCCu<<24) | 0x1 | BIT(8)); REG_GROUP_END(); } while (cnt); @@ -1315,7 +1315,7 @@ do { depth0 = GET(gc->cRegs->cmdFifo0.depth); depth1 = GET(gc->cRegs->cmdFifo0.depth); - } while (readPtr0 != readPtr1); + } while (depth0 != depth1); if (depth0 == 0) { for (i = 0; i < MAX_BUFF_PENDING; i++) @@ -2114,7 +2114,7 @@ * continuing so that any internal glide calls have a valid * gc from tls via GR_DCL_GC. F*ck this up at your own peril. */ - setThreadValue((FxU32)gc); + setThreadValue((long)gc); #if (GLIDE_PLATFORM & GLIDE_OS_WIN32) /* Flush any remaining commands and cleanup any per gc state */ grSurfaceReleaseContext((GrContext_t)gc); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gglide.c.dri Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c.dri --- Glide_V3-DRI-3.10/h3/glide3/src/gglide.c.dri Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c.dri Wed Aug 9 23:41:48 2000 @@ -1179,8 +1179,8 @@ for ( i = 0; i < MAX_BUFF_PENDING && j == -1; i++) { if (gc->bufferSwaps[i] == 0xffffffff) { gc->bufferSwaps[i] = - (FxU32) gc->cmdTransportInfo.fifoPtr - - (FxU32) gc->cmdTransportInfo.fifoStart; + (long) gc->cmdTransportInfo.fifoPtr - + (long) gc->cmdTransportInfo.fifoStart; j = i; } } @@ -1222,7 +1222,7 @@ REG_GROUP_SET_WAX(hw, srcXY, x | ((driInfo.y+(y-driInfo.y))<<16)); REG_GROUP_SET_WAX(hw, dstSize, (w&0x1FFF)|((h&0x1FFF)<<16)); REG_GROUP_SET_WAX(hw, dstXY, (x&0x1FFF) | ((y&0x1FFF)<<16)); - REG_GROUP_SET_WAX(hw, command, (0xCC<<24) | 0x1 | BIT(8)); + REG_GROUP_SET_WAX(hw, command, (0xCCu<<24) | 0x1 | BIT(8)); REG_GROUP_END(); } while (cnt); @@ -1315,7 +1315,7 @@ do { depth0 = GET(gc->cRegs->cmdFifo0.depth); depth1 = GET(gc->cRegs->cmdFifo0.depth); - } while (readPtr0 != readPtr1); + } while (depth0 != depth1); if (depth0 == 0) { for (i = 0; i < MAX_BUFF_PENDING; i++) @@ -2114,7 +2114,7 @@ * continuing so that any internal glide calls have a valid * gc from tls via GR_DCL_GC. F*ck this up at your own peril. */ - setThreadValue((FxU32)gc); + setThreadValue((long)gc); #if (GLIDE_PLATFORM & GLIDE_OS_WIN32) /* Flush any remaining commands and cleanup any per gc state */ grSurfaceReleaseContext((GrContext_t)gc); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gglide.c.save Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c.save --- Glide_V3-DRI-3.10/h3/glide3/src/gglide.c.save Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gglide.c.save Wed Aug 9 19:19:07 2000 @@ -1163,7 +1163,7 @@ do { depth0 = GET(gc->cRegs->cmdFifo0.depth); depth1 = GET(gc->cRegs->cmdFifo0.depth); - } while (readPtr0 != readPtr1); + } while (depth0 != depth1); if (depth0 == 0) { for (i = 0; i < MAX_BUFF_PENDING; i++) @@ -1962,7 +1962,7 @@ * continuing so that any internal glide calls have a valid * gc from tls via GR_DCL_GC. F*ck this up at your own peril. */ - setThreadValue((FxU32)gc); + setThreadValue(gc); #if (GLIDE_PLATFORM & GLIDE_OS_WIN32) /* Flush any remaining commands and cleanup any per gc state */ grSurfaceReleaseContext((GrContext_t)gc); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/glfb.c Glide_V3-DRI-3.10-lia/h3/glide3/src/glfb.c --- Glide_V3-DRI-3.10/h3/glide3/src/glfb.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/glfb.c Wed Aug 9 23:59:31 2000 @@ -712,7 +712,7 @@ case GR_LFB_SRC_FMT_ZA16: dstData = (FxU32*)(((FxU16*)dstData) + dst_x); length = src_width * 2; - aligned = !((int)dstData&0x2); + aligned = !((long)dstData&0x2); srcJump = src_stride - length; dstJump = info.strideInBytes - length; if (aligned) { @@ -917,7 +917,7 @@ length = src_width * 2; dstJump = dst_stride - length; srcJump = info.strideInBytes - length; - aligned = !((int)srcData&0x2); + aligned = !((long)srcData&0x2); odd = (src_y+src_height) & 0x1; if (aligned) { diff -urN Glide_V3-DRI-3.10/h3/glide3/src/glfb.c.dri Glide_V3-DRI-3.10-lia/h3/glide3/src/glfb.c.dri --- Glide_V3-DRI-3.10/h3/glide3/src/glfb.c.dri Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/glfb.c.dri Wed Aug 9 23:59:31 2000 @@ -712,7 +712,7 @@ case GR_LFB_SRC_FMT_ZA16: dstData = (FxU32*)(((FxU16*)dstData) + dst_x); length = src_width * 2; - aligned = !((int)dstData&0x2); + aligned = !((long)dstData&0x2); srcJump = src_stride - length; dstJump = info.strideInBytes - length; if (aligned) { @@ -917,7 +917,7 @@ length = src_width * 2; dstJump = dst_stride - length; srcJump = info.strideInBytes - length; - aligned = !((int)srcData&0x2); + aligned = !((long)srcData&0x2); odd = (src_y+src_height) & 0x1; if (aligned) { diff -urN Glide_V3-DRI-3.10/h3/glide3/src/glide.h Glide_V3-DRI-3.10-lia/h3/glide3/src/glide.h --- Glide_V3-DRI-3.10/h3/glide3/src/glide.h Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/glide.h Wed Aug 9 18:33:13 2000 @@ -53,7 +53,7 @@ typedef FxU8 GrAlpha_t; typedef FxU32 GrMipMapId_t; typedef FxU8 GrFog_t; -typedef FxU32 GrContext_t; +typedef unsigned long GrContext_t; typedef int (FX_CALL *GrProc)(); /* diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gpci.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gpci.c --- Glide_V3-DRI-3.10/h3/glide3/src/gpci.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gpci.c Wed Aug 9 23:24:03 2000 @@ -418,14 +418,14 @@ { /* Window coords */ { - { _trisetup_null, _trisetup_null }, - { _trisetup_null, _trisetup_null }, + { (GrTriSetupProc) _trisetup_null, (GrTriSetupProc) _trisetup_null }, + { (GrTriSetupProc) _trisetup_null, (GrTriSetupProc) _trisetup_null }, }, /* Clip coordinates */ { - { _trisetup_null, _trisetup_null }, - { _trisetup_null, _trisetup_null }, + { (GrTriSetupProc) _trisetup_null, (GrTriSetupProc) _trisetup_null }, + { (GrTriSetupProc) _trisetup_null, (GrTriSetupProc) _trisetup_null }, }, }, }; @@ -1024,7 +1024,7 @@ GR_DCL_GC; /* If there is no current gc in tls then set the current context. */ - if (gc == NULL) setThreadValue((FxU32)&_GlideRoot.GCs[_GlideRoot.current_sst]); + if (gc == NULL) setThreadValue((long)&_GlideRoot.GCs[_GlideRoot.current_sst]); } break; case DLL_THREAD_DETACH: diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gsst.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c --- Glide_V3-DRI-3.10/h3/glide3/src/gsst.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c Thu Aug 10 00:13:53 2000 @@ -542,30 +542,30 @@ ResEntry _resTable[] = { - GR_RESOLUTION_320x200, 320, 200, /* 0x0 */ - GR_RESOLUTION_320x240, 320, 240, /* 0x1 */ - GR_RESOLUTION_400x256, 400, 256, /* 0x2 */ - GR_RESOLUTION_512x384, 512, 384, /* 0x3 */ - GR_RESOLUTION_640x200, 640, 200, /* 0x4 */ - GR_RESOLUTION_640x350, 640, 350, /* 0x5 */ - GR_RESOLUTION_640x400, 640, 400, /* 0x6 */ - GR_RESOLUTION_640x480, 640, 480, /* 0x7 */ - GR_RESOLUTION_800x600, 800, 600, /* 0x8 */ - GR_RESOLUTION_960x720, 960, 720, /* 0x9 */ - GR_RESOLUTION_856x480, 856, 480, /* 0xa */ - GR_RESOLUTION_512x256, 512, 256, /* 0xb */ - GR_RESOLUTION_1024x768, 1024, 768, /* 0xC */ - GR_RESOLUTION_1280x1024, 1280, 1024, /* 0xD */ - GR_RESOLUTION_1600x1200, 1600, 1200, /* 0xE */ - GR_RESOLUTION_400x300, 400, 300, /* 0xF */ - GR_RESOLUTION_1152x864, 1152, 864, /* 0x10 */ - GR_RESOLUTION_1280x960, 1280, 960, /* 0x11 */ - GR_RESOLUTION_1600x1024, 1600, 1024, /* 0x12 */ - GR_RESOLUTION_1792x1344, 1792, 1344, /* 0x13 */ - GR_RESOLUTION_1856x1392, 1856, 1392, /* 0x14 */ - GR_RESOLUTION_1920x1440, 1920, 1440, /* 0x15 */ - GR_RESOLUTION_2048x1536, 2048, 1536, /* 0x16 */ - GR_RESOLUTION_2048x2048, 2048, 2048 /* 0x17 */ + { GR_RESOLUTION_320x200, 320, 200 }, /* 0x0 */ + { GR_RESOLUTION_320x240, 320, 240 }, /* 0x1 */ + { GR_RESOLUTION_400x256, 400, 256 }, /* 0x2 */ + { GR_RESOLUTION_512x384, 512, 384 }, /* 0x3 */ + { GR_RESOLUTION_640x200, 640, 200 }, /* 0x4 */ + { GR_RESOLUTION_640x350, 640, 350 }, /* 0x5 */ + { GR_RESOLUTION_640x400, 640, 400 }, /* 0x6 */ + { GR_RESOLUTION_640x480, 640, 480 }, /* 0x7 */ + { GR_RESOLUTION_800x600, 800, 600 }, /* 0x8 */ + { GR_RESOLUTION_960x720, 960, 720 }, /* 0x9 */ + { GR_RESOLUTION_856x480, 856, 480 }, /* 0xa */ + { GR_RESOLUTION_512x256, 512, 256 }, /* 0xb */ + { GR_RESOLUTION_1024x768, 1024, 768 }, /* 0xC */ + { GR_RESOLUTION_1280x1024, 1280, 1024 }, /* 0xD */ + { GR_RESOLUTION_1600x1200, 1600, 1200 }, /* 0xE */ + { GR_RESOLUTION_400x300, 400, 300 }, /* 0xF */ + { GR_RESOLUTION_1152x864, 1152, 864 }, /* 0x10 */ + { GR_RESOLUTION_1280x960, 1280, 960 }, /* 0x11 */ + { GR_RESOLUTION_1600x1024, 1600, 1024 }, /* 0x12 */ + { GR_RESOLUTION_1792x1344, 1792, 1344 }, /* 0x13 */ + { GR_RESOLUTION_1856x1392, 1856, 1392 }, /* 0x14 */ + { GR_RESOLUTION_1920x1440, 1920, 1440 }, /* 0x15 */ + { GR_RESOLUTION_2048x1536, 2048, 1536 }, /* 0x16 */ + { GR_RESOLUTION_2048x2048, 2048, 2048 } /* 0x17 */ }; /* --------------------------------------------- @@ -756,8 +756,8 @@ gc->bufferSwaps[t] = 0xffffffff; } - gc->bufferSwaps[0] = ((FxU32) gc->cmdTransportInfo.fifoPtr - - (FxU32) gc->cmdTransportInfo.fifoStart); + gc->bufferSwaps[0] = ((long) gc->cmdTransportInfo.fifoPtr - + (long) gc->cmdTransportInfo.fifoStart); gc->swapsPending = 1; @@ -946,7 +946,7 @@ * current gc. This gc is valid for all threads in the fullscreen * context. */ - setThreadValue( (FxU32)&_GlideRoot.GCs[_GlideRoot.current_sst] ); + setThreadValue( (long)&_GlideRoot.GCs[_GlideRoot.current_sst] ); { /* Partial Argument Validation */ @@ -1076,12 +1076,12 @@ for (buffer = 0; buffer < nColBuffers; buffer++) { gc->buffers[buffer] = bufInfo->colBuffStart[buffer]; GDBG_INFO(80, "Buffer %d: Start: 0x%x\n", buffer, gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } if (nAuxBuffers != 0) { gc->buffers[buffer] = bufInfo->auxBuffStart; GDBG_INFO(80, "Aux Buffer: Start: 0x%x\n", gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } vInfo->hWnd = gc->grHwnd; @@ -1190,7 +1190,7 @@ gc->tBuffer.bufBPP = 0xffffffff; /* Don't matter to me */ GDBG_INFO(1, "autoBump: 0x%x\n", _GlideRoot.environment.autoBump); - if (gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump) { + if ((gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump) != 0) { if (!hwcInitFifo( bInfo, gc->cmdTransportInfo.autoBump)) { hwcRestoreVideo(bInfo); GrErrorCallback(hwcGetErrorString(), FXFALSE); @@ -1226,7 +1226,7 @@ gc->tmu_state[0].total_mem = gc->tramSize; #else /* gc->fbOffset = (FxU32)fxHalFbiGetMemory((SstRegs*)gc->reg_ptr); */ - gc->fbOffset = (FxU32)gc->rawLfb; + gc->fbOffset = (long)gc->rawLfb; gc->tmuMemInfo[0].tramOffset = 0x200000; gc->tmuMemInfo[0].tramSize = 0x200000; gc->tmuMemInfo[1].tramOffset = gc->tmuMemInfo[0].tramSize + gc->tmuMemInfo[0].tramOffset; @@ -1440,7 +1440,10 @@ gcFifo->fifoPtr ); #ifdef __linux__ - _grImportFifo(*driInfo.fifoPtr, *driInfo.fifoRead); + { + extern void _grImportFifo (int, int); + _grImportFifo(*driInfo.fifoPtr, *driInfo.fifoRead); + } #endif /* The hw is now in a usable state from the fifo macros. @@ -1591,7 +1594,7 @@ * the tls gc explicitly otherwise other whacky-ness (read 'random * crashes' will ensue). */ - setThreadValue((FxU32)gc); + setThreadValue((long) gc); if ((gc != NULL) && gc->open) grFlush(); /* Make sure that the user specified gc is not whacked */ diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gsst.c.dri Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c.dri --- Glide_V3-DRI-3.10/h3/glide3/src/gsst.c.dri Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c.dri Thu Aug 10 00:13:53 2000 @@ -542,30 +542,30 @@ ResEntry _resTable[] = { - GR_RESOLUTION_320x200, 320, 200, /* 0x0 */ - GR_RESOLUTION_320x240, 320, 240, /* 0x1 */ - GR_RESOLUTION_400x256, 400, 256, /* 0x2 */ - GR_RESOLUTION_512x384, 512, 384, /* 0x3 */ - GR_RESOLUTION_640x200, 640, 200, /* 0x4 */ - GR_RESOLUTION_640x350, 640, 350, /* 0x5 */ - GR_RESOLUTION_640x400, 640, 400, /* 0x6 */ - GR_RESOLUTION_640x480, 640, 480, /* 0x7 */ - GR_RESOLUTION_800x600, 800, 600, /* 0x8 */ - GR_RESOLUTION_960x720, 960, 720, /* 0x9 */ - GR_RESOLUTION_856x480, 856, 480, /* 0xa */ - GR_RESOLUTION_512x256, 512, 256, /* 0xb */ - GR_RESOLUTION_1024x768, 1024, 768, /* 0xC */ - GR_RESOLUTION_1280x1024, 1280, 1024, /* 0xD */ - GR_RESOLUTION_1600x1200, 1600, 1200, /* 0xE */ - GR_RESOLUTION_400x300, 400, 300, /* 0xF */ - GR_RESOLUTION_1152x864, 1152, 864, /* 0x10 */ - GR_RESOLUTION_1280x960, 1280, 960, /* 0x11 */ - GR_RESOLUTION_1600x1024, 1600, 1024, /* 0x12 */ - GR_RESOLUTION_1792x1344, 1792, 1344, /* 0x13 */ - GR_RESOLUTION_1856x1392, 1856, 1392, /* 0x14 */ - GR_RESOLUTION_1920x1440, 1920, 1440, /* 0x15 */ - GR_RESOLUTION_2048x1536, 2048, 1536, /* 0x16 */ - GR_RESOLUTION_2048x2048, 2048, 2048 /* 0x17 */ + { GR_RESOLUTION_320x200, 320, 200 }, /* 0x0 */ + { GR_RESOLUTION_320x240, 320, 240 }, /* 0x1 */ + { GR_RESOLUTION_400x256, 400, 256 }, /* 0x2 */ + { GR_RESOLUTION_512x384, 512, 384 }, /* 0x3 */ + { GR_RESOLUTION_640x200, 640, 200 }, /* 0x4 */ + { GR_RESOLUTION_640x350, 640, 350 }, /* 0x5 */ + { GR_RESOLUTION_640x400, 640, 400 }, /* 0x6 */ + { GR_RESOLUTION_640x480, 640, 480 }, /* 0x7 */ + { GR_RESOLUTION_800x600, 800, 600 }, /* 0x8 */ + { GR_RESOLUTION_960x720, 960, 720 }, /* 0x9 */ + { GR_RESOLUTION_856x480, 856, 480 }, /* 0xa */ + { GR_RESOLUTION_512x256, 512, 256 }, /* 0xb */ + { GR_RESOLUTION_1024x768, 1024, 768 }, /* 0xC */ + { GR_RESOLUTION_1280x1024, 1280, 1024 }, /* 0xD */ + { GR_RESOLUTION_1600x1200, 1600, 1200 }, /* 0xE */ + { GR_RESOLUTION_400x300, 400, 300 }, /* 0xF */ + { GR_RESOLUTION_1152x864, 1152, 864 }, /* 0x10 */ + { GR_RESOLUTION_1280x960, 1280, 960 }, /* 0x11 */ + { GR_RESOLUTION_1600x1024, 1600, 1024 }, /* 0x12 */ + { GR_RESOLUTION_1792x1344, 1792, 1344 }, /* 0x13 */ + { GR_RESOLUTION_1856x1392, 1856, 1392 }, /* 0x14 */ + { GR_RESOLUTION_1920x1440, 1920, 1440 }, /* 0x15 */ + { GR_RESOLUTION_2048x1536, 2048, 1536 }, /* 0x16 */ + { GR_RESOLUTION_2048x2048, 2048, 2048 } /* 0x17 */ }; /* --------------------------------------------- @@ -756,8 +756,8 @@ gc->bufferSwaps[t] = 0xffffffff; } - gc->bufferSwaps[0] = ((FxU32) gc->cmdTransportInfo.fifoPtr - - (FxU32) gc->cmdTransportInfo.fifoStart); + gc->bufferSwaps[0] = ((long) gc->cmdTransportInfo.fifoPtr - + (long) gc->cmdTransportInfo.fifoStart); gc->swapsPending = 1; @@ -946,7 +946,7 @@ * current gc. This gc is valid for all threads in the fullscreen * context. */ - setThreadValue( (FxU32)&_GlideRoot.GCs[_GlideRoot.current_sst] ); + setThreadValue( (long)&_GlideRoot.GCs[_GlideRoot.current_sst] ); { /* Partial Argument Validation */ @@ -1076,12 +1076,12 @@ for (buffer = 0; buffer < nColBuffers; buffer++) { gc->buffers[buffer] = bufInfo->colBuffStart[buffer]; GDBG_INFO(80, "Buffer %d: Start: 0x%x\n", buffer, gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } if (nAuxBuffers != 0) { gc->buffers[buffer] = bufInfo->auxBuffStart; GDBG_INFO(80, "Aux Buffer: Start: 0x%x\n", gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } vInfo->hWnd = gc->grHwnd; @@ -1190,7 +1190,7 @@ gc->tBuffer.bufBPP = 0xffffffff; /* Don't matter to me */ GDBG_INFO(1, "autoBump: 0x%x\n", _GlideRoot.environment.autoBump); - if (gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump) { + if ((gc->cmdTransportInfo.autoBump = _GlideRoot.environment.autoBump) != 0) { if (!hwcInitFifo( bInfo, gc->cmdTransportInfo.autoBump)) { hwcRestoreVideo(bInfo); GrErrorCallback(hwcGetErrorString(), FXFALSE); @@ -1226,7 +1226,7 @@ gc->tmu_state[0].total_mem = gc->tramSize; #else /* gc->fbOffset = (FxU32)fxHalFbiGetMemory((SstRegs*)gc->reg_ptr); */ - gc->fbOffset = (FxU32)gc->rawLfb; + gc->fbOffset = (long)gc->rawLfb; gc->tmuMemInfo[0].tramOffset = 0x200000; gc->tmuMemInfo[0].tramSize = 0x200000; gc->tmuMemInfo[1].tramOffset = gc->tmuMemInfo[0].tramSize + gc->tmuMemInfo[0].tramOffset; @@ -1440,7 +1440,10 @@ gcFifo->fifoPtr ); #ifdef __linux__ - _grImportFifo(*driInfo.fifoPtr, *driInfo.fifoRead); + { + extern void _grImportFifo (int, int); + _grImportFifo(*driInfo.fifoPtr, *driInfo.fifoRead); + } #endif /* The hw is now in a usable state from the fifo macros. @@ -1591,7 +1594,7 @@ * the tls gc explicitly otherwise other whacky-ness (read 'random * crashes' will ensue). */ - setThreadValue((FxU32)gc); + setThreadValue((long) gc); if ((gc != NULL) && gc->open) grFlush(); /* Make sure that the user specified gc is not whacked */ diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gsst.c.save Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c.save --- Glide_V3-DRI-3.10/h3/glide3/src/gsst.c.save Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gsst.c.save Wed Aug 9 19:50:51 2000 @@ -937,7 +937,7 @@ * current gc. This gc is valid for all threads in the fullscreen * context. */ - setThreadValue( (FxU32)&_GlideRoot.GCs[_GlideRoot.current_sst] ); + setThreadValue( (long)&_GlideRoot.GCs[_GlideRoot.current_sst] ); { /* Partial Argument Validation */ @@ -1056,12 +1056,12 @@ for (buffer = 0; buffer < nColBuffers; buffer++) { gc->buffers[buffer] = bufInfo->colBuffStart[buffer]; GDBG_INFO(80, "Buffer %d: Start: 0x%x\n", buffer, gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } if (nAuxBuffers != 0) { gc->buffers[buffer] = bufInfo->auxBuffStart; GDBG_INFO(80, "Aux Buffer: Start: 0x%x\n", gc->buffers[buffer]); - gc->lfbBuffers[buffer] = (FxU32)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; + gc->lfbBuffers[buffer] = (long)gc->rawLfb + bufInfo->lfbBuffAddr[buffer]; } vInfo->hWnd = gc->grHwnd; @@ -1552,7 +1552,7 @@ * the tls gc explicitly otherwise other whacky-ness (read 'random * crashes' will ensue). */ - setThreadValue((FxU32)gc); + setThreadValue((long)gc); if ((gc != NULL) && gc->open) grFlush(); /* Make sure that the user specified gc is not whacked */ diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gtexdl.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gtexdl.c --- Glide_V3-DRI-3.10/h3/glide3/src/gtexdl.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gtexdl.c Thu Aug 10 00:05:56 2000 @@ -417,7 +417,7 @@ while(i < start + slopCount) { FxU32 entry; - entry = (0x80000000 | ((i & 0xFE) << 23) | pal->data[i] & 0xFFFFFF); + entry = (0x80000000 | ((i & 0xFE) << 23) | (pal->data[i] & 0xFFFFFF)); gc->state.shadow.paletteRow[i>>3].data[i&7] = entry; REG_GROUP_SET(hw, nccTable0[4 + (i & 0x07)], entry ); @@ -435,7 +435,7 @@ while(i < endIndex) { FxU32 entry; - entry = (0x80000000 | ((i & 0xFE) << 23) | pal->data[i] & 0xFFFFFF); + entry = (0x80000000 | ((i & 0xFE) << 23) | (pal->data[i] & 0xFFFFFF)); gc->state.shadow.paletteRow[i>>3].data[i&7] = entry; REG_GROUP_SET(hw, nccTable0[4 + (i & 0x07)], entry ); @@ -454,7 +454,7 @@ while(i <= end) { FxU32 entry; - entry = (0x80000000 | ((i & 0xFE) << 23) | pal->data[i] & 0xFFFFFF); + entry = (0x80000000 | ((i & 0xFE) << 23) | (pal->data[i] & 0xFFFFFF)); gc->state.shadow.paletteRow[i>>3].data[i&7] = entry; REG_GROUP_SET(hw, nccTable0[4 + (i & 0x07)], entry ); diff -urN Glide_V3-DRI-3.10/h3/glide3/src/gthread.c Glide_V3-DRI-3.10-lia/h3/glide3/src/gthread.c --- Glide_V3-DRI-3.10/h3/glide3/src/gthread.c Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/gthread.c Wed Aug 9 15:02:18 2000 @@ -63,13 +63,13 @@ } /* initThreadStorage */ -void setThreadValue( FxU32 value ) { +void setThreadValue( long value ) { GR_CHECK_F( "setThreadValue", !threadInit, "Thread storage not initialized\n" ); TlsSetValue( _GlideRoot.tlsIndex, (void*)value ); } #pragma warning (4:4035) /* No return value */ -FxU32 getThreadValueSLOW( void ) { +long getThreadValueSLOW( void ) { GR_CHECK_F( "getThreadValue", !threadInit, "Thread storage not initialized\n" ); #if 0 @@ -122,7 +122,7 @@ { } -void setThreadValue( FxU32 value ) +void setThreadValue( long value ) { _threadValueMacOS = value; } @@ -157,18 +157,18 @@ #include "fxglide.h" #include "fxcmd.h" -FxU32 threadValueLinux; +long threadValueLinux; void initThreadStorage(void) { } -void setThreadValue( FxU32 value ) +void setThreadValue( long value ) { threadValueLinux = value; } -FxU32 getThreadValueSLOW( void ) +long getThreadValueSLOW( void ) { return threadValueLinux; } diff -urN Glide_V3-DRI-3.10/h3/glide3/src/makefile.linux Glide_V3-DRI-3.10-lia/h3/glide3/src/makefile.linux --- Glide_V3-DRI-3.10/h3/glide3/src/makefile.linux Thu Mar 2 14:53:42 2000 +++ Glide_V3-DRI-3.10-lia/h3/glide3/src/makefile.linux Wed Aug 9 13:34:45 2000 @@ -43,7 +43,7 @@ FX_GLIDE_REAL_HW= 1 FX_GLIDE_NO_FIFO= 1 -FX_GLIDE_CTRISETUP = 0 +FX_GLIDE_CTRISETUP = 1 HWSPEC = fifo.c LCDEFS += -DH3 $(CMDXPORTDEFS) diff -urN Glide_V3-DRI-3.10/h3/glide3/tests/.gdbinit Glide_V3-DRI-3.10-lia/h3/glide3/tests/.gdbinit --- Glide_V3-DRI-3.10/h3/glide3/tests/.gdbinit Wed Dec 31 16:00:00 1969 +++ Glide_V3-DRI-3.10-lia/h3/glide3/tests/.gdbinit Wed Aug 9 15:46:12 2000 @@ -0,0 +1,3 @@ +dir /r/erikson/usr/src/redhat/BUILD/Glide_V3-DRI-3.10/h3/glide3/src:/r/erikson/usr/src/redhat/BUILD/Glide_V3-DRI-3.10/h3/minihwc:/r/erikson/usr/src/redhat/BUILD/XFree86-4.0/xc/lib/Xxf86vm +set gdbg_debuglevel[80]=255 +set gdbg_debuglevel[280]=255 diff -urN Glide_V3-DRI-3.10/h3/incsrc/gdebug.h Glide_V3-DRI-3.10-lia/h3/incsrc/gdebug.h --- Glide_V3-DRI-3.10/h3/incsrc/gdebug.h Thu Mar 2 14:53:43 2000 +++ Glide_V3-DRI-3.10-lia/h3/incsrc/gdebug.h Wed Aug 9 23:08:21 2000 @@ -67,12 +67,21 @@ #pragma disable_message (111, 201, 302) #endif /* defined(__WATCOMC__) || defined(__WATCOM_CPLUSPLUS__) */ -#define GDBG_INFO 0 && (unsigned long) -#define GDBG_INFO_MORE 0 && (unsigned long) -#define GDBG_PRINTF 0 && (unsigned long) +#ifdef __GNUC__ +# define GDBG_INFO(x...) +# define GDBG_INFO_MORE(x...) +# define GDBG_PRINTF(x...) -#define GDBG_ERROR_SET_CALLBACK 0 && (unsigned long) -#define GDBG_ERROR_CLEAR_CALLBACK 0 && (unsigned long) +# define GDBG_ERROR_SET_CALLBACK(x...) +# define GDBG_ERROR_CLEAR_CALLBACK(x...) +#else +# define GDBG_INFO 0 && (unsigned long) +# define GDBG_INFO_MORE 0 && (unsigned long) +# define GDBG_PRINTF 0 && (unsigned long) + +# define GDBG_ERROR_SET_CALLBACK 0 && (unsigned long) +# define GDBG_ERROR_CLEAR_CALLBACK 0 && (unsigned long) +#endif #define GDBG_GET_DEBUGLEVEL(x) 0 #define GDBG_SET_DEBUGLEVEL(a,b) diff -urN Glide_V3-DRI-3.10/h3/incsrc/h3defs.h Glide_V3-DRI-3.10-lia/h3/incsrc/h3defs.h --- Glide_V3-DRI-3.10/h3/incsrc/h3defs.h Thu Mar 2 14:53:43 2000 +++ Glide_V3-DRI-3.10-lia/h3/incsrc/h3defs.h Thu Aug 10 00:02:29 2000 @@ -56,11 +56,21 @@ // this crazy macro tests the sign bit of a float by loading it into // an integer register and then testing the sign bit of the integer -#define FLOAT_ISNEG(f) ((*(int *)(&(f))) < 0) +#ifdef __ia64__ + /* On IA-64, it's faster to do this the obvious way... --davidm 00/08/09 */ +# define FLOAT_ISNEG(f) ((f) < 0.0) +#else +# define FLOAT_ISN... [truncated message content] |