1 2 3Dfx Glide device driver 3 4 5 6Requirements: 7------------- 8 9A Voodoo-based videocard/accelerator 10DOS (with DJGPP), Windows9x/2k (with MinGW), Linux 11Glide3x library for your OS 12 13http://sourceforge.net/projects/glide/ 14 15 16 17How to compile: 18--------------- 19 20DJGPP: 21 Place the Glide3 SDK in the top Mesa directory: 22 $(MESA)/glide3/include/ 23 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h 24 $(MESA)/glide3/lib/ 25 libgld3x.a, libgld3i.a, glide3x.dxe 26 Type: 27 make -f Makefile.DJ X86=1 FX=1 28 Look into the makefile for further information. 29 30MinGW: 31 Place the Glide3 SDK in the top Mesa directory: 32 $(MESA)/glide3/include/ 33 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h 34 $(MESA)/glide3/lib/ 35 libglide3x.a, glide3x.dll 36 Type: 37 make -f Makefile.mgw X86=1 FX=1 38 Look into the makefile for further information. 39 40Linux: 41 Place the Glide3 SDK in /usr/local/glide 42 /usr/local/glide/include/ 43 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h 44 /usr/local/glide/lib/ 45 libglide3x.a, libglide3x.so 46 Type: 47 make linux-glide 48 or 49 make linux-x86-glide 50 51 52 53Compilation defines: 54-------------------- 55 56FX_DEBUG 57 enable driver debug code 58FX_TRAP_GLIDE 59 enable Glide trace code 60FX_PACKEDCOLOR 61 use packed color in vertex structure 62FX_TC_NAPALM 63 map GL_COMPRESSED_RGB[A] to FXT1. Works with VSA100-based cards only. 64FX_COMPRESS_S3TC_AS_FXT1_HACK 65 map S3TC to FXT1 66FX_RESCALE_BIG_TEXURES_HACK 67 fake textures larger than HW can support 68 (see MESA_FX_MAXLOD environment variable) 69 70 71 72Environment variables: 73---------------------- 74 75The following environment variables affect MesaFX. Those that affect Glide 76only, are beyond the scope of this section. Entries that don't have a "Value" 77field, can have any value whatsoever 78 ex: set MESA_FX_IGNORE_CMBEXT=y 79 80"Note" (*) means that the environment variable affects Glide, too; also, if 81the var is not found in the environment, it is searched in windoze registry. 82"Note" (!) means that the environment variable is not working as expected; 83may have undefined effects, might have effects only at Glide level or might 84not have any effect whatsoever. Caveat emptor! Those are to be revised soon. 85 86It is recommended to leave the envvars alone, so that Mesa/Glide will run with 87default values. Use them only when you experience crashes or strange behavior. 88 89FX_GLIDE_NUM_TMU 90 OS: all 91 HW: dual-TMU cards (Voodoo2, Avenger, Napalm) 92 Desc: force single-TMU 93 Note: (*) 94 Value: "1" 95FX_GLIDE_SWAPPENDINGCOUNT 96 OS: all 97 HW: all 98 Desc: max # of buffers allowed to build up 99 Note: (*) (!) 100 Value: "0", "1", "2", "3", "4", "5" or "6" 101FX_GLIDE_SWAPINTERVAL 102 OS: all 103 HW: all 104 Desc: number of vertical retraces to wait before swapping 105 Note: (*) (!) works only at Glide-level? 106SSTH3_SLI_AA_CONFIGURATION 107 OS: all 108 HW: VSA100-based cards 109 Desc: SLI/AA setup 110 Note: (*) (!) works only at Glide-level? 111 Value: 112 1, 2, 4 chip cards 113 "0" - SLI & AA disable 114 "1" - SLI disabled, 2 sample AA enabled 115 2, 4 chip cards 116 "2" - 2-way SLI enabled, AA disabled 117 "3" - 2-way SLI enabled, 2 sample AA enabled 118 "4" - SLI disabled, 4 sample AA enabled 119 4 chip cards 120 "5" - 4-way SLI enabled, AA disabled 121 "6" - 4-way SLI enabled, 2 sample AA enabled 122 "7" - 2-way SLI enabled, 4 sample AA enabled 123 "8" - SLI disabled, 8 sample AA enabled 124SST_DUALHEAD 125 OS: win32 126 HW: ? 127 Desc: ? 128 Note: (!) disabled? 129MESA_FX_NO_SIGNALS 130 OS: linux 131 HW: all 132 Desc: avoid installing signals 133 Note: (!) untested! 134MESA_FX_INFO 135 OS: all 136 HW: all 137 Desc: verbose to stderr 138 Value: any; special value "r" to redirect stderr to MESA.LOG 139MESA_FX_NOSNAP 140 OS: all 141 HW: Voodoo1, Rush, Banshee 142 Desc: do not snap vertices inside Mesa 143 Note: to be used with Glide3x that snaps vertices internally 144MESA_FX_POINTCAST 145 OS: all 146 HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm) 147 Desc: try to use pointcast palette 148 Note: may give adverse effects on UMA cards (Avenger, Napalm) 149MESA_FX_IGNORE_PALEXT 150 OS: all 151 HW: all 152 Desc: disable 6666 palette 153MESA_FX_IGNORE_PIXEXT 154 OS: all 155 HW: Napalm 156 Desc: force 565 16bpp mode (traditional Voodoo, no 32/15bpp) 157MESA_FX_IGNORE_TEXFMT 158 OS: all 159 HW: Napalm 160 Desc: disable 32bit textures 161MESA_FX_IGNORE_CMBEXT 162 OS: all 163 HW: Napalm 164 Desc: disable Napalm combiners (color/alpha/texture) 165 Note: this option allows dual-TMU cards perform single-pass 166 trilinear, but some advanced (multi)texturing modes 167 won't work (GL_EXT_texture_env_combine) 168MESA_FX_IGNORE_MIREXT 169 OS: all 170 HW: all 171 Desc: disable mirror extension 172MESA_FX_IGNORE_TEXUMA 173 OS: all 174 HW: all 175 Desc: disable UMA 176MESA_FX_IGNORE_TEXUS2 177 OS: all 178 HW: all 179 Desc: disable Texus2 180MESA_FX_MAXLOD 181 OS: all 182 HW: non VSA-100 cards 183 Desc: enable large texture support using SW rescaling 184 Value: 185 "9" - 512x512 textures 186 "10" - 1024x1024 textures 187 "11" - 2048x2048 textures 188MESA_FX_ALLOW_VP 189 OS: all 190 HW: all 191 Desc: allow vertex program extensions 192MESA_GLX_FX 193 OS: linux 194 HW: Voodoo1, Rush, Voodoo2 195 Desc: display mode 196 Note: (!) experimental 197 Value: 198 "w" - windowed mode 199 "f" - fullscreen mode 200 "d" - disable glide driver 201 OS: win32 202 HW: Rush, Banshee, Avenger, Napalm 203 Desc: display mode 204 Note: (!) experimental 205 Value: 206 "w" - windowed mode 207 208 209 210Contact: 211-------- 212 213Daniel Borca <dborca 'at' users 'dot' sourceforge 'dot' net> 214Hiroshi Morii <koolsmoky 'at' users 'dot' sourceforge 'dot' net> 215 216 217 218WARNING! The info below this line is outdated (yet some of it useful). WARNING! 219******************************************************************************* 220 221 222 223Info for Mesa 4.1 224----------------- 225 226The 3dfx Glide driver in Mesa is disabled by default. Not too many people 227use this driver anymore and at some point down the road it will be dropped. 228 229To use/enable the Glide driver either do this: 230 231'./configure --with-glide=DIR' Where DIR is the location of Glide, like 232 /usr/ or /usr/local 233 234OR 235 236'make linux-x86-glide' If using the old-style Makefile system. 237 238The rest of this file hasn't changed since Mesa 3.3. Some of it's out of 239date, but some is still valid. 240 241 242 243What do you need ? 244------------------ 245 246 - A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board 247 (Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.). 248 The Quantum3D Obsidian3D-2 X-24 requires some special env. setting 249 under Linux (more information in the "Useful Glide Environment 250 Variables"); 251 252 - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). 253 The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not 254 compatible with the Glide 2.x so it doesn't work with the current 255 version of the driver; 256 257 - A compiler supported by the Glide library (Micro$oft VC++ (tested), 258 Watcom (tested), GCC for Linux (tested), etc.); 259 260 - It's nice to have two monitors - one for your normal graphics 261 card and one for your 3Dfx card. If something goes wrong with 262 an application using the 3Dfx hardware you can still see your 263 normal screen in order to recover. 264 265 266 267Tested on: 268---------- 269 Windows 95 - David Bucciarelli 270 Windows NT - Henri Fousse 271 MS-DOS 272 Linux - Daryll Strauss, Brian Paul, David Bucciarelli 273 FreeBSD 274 BeOS - Duncan Wilcox 275 MacOS - Fazekas Miklos 276 277 278What is able to do ? 279-------------------- 280 281 - It is able accelerate points, lines and polygon with flat 282 shading, gouraud shading, Z-buffer, texture mapping, blending, fog and 283 antialiasing (when possible). There is also the support for rendering 284 in a window with a slow trick for the Voodoo Graphics (available only 285 for Linux) and at full speed with the Voodoo Rush chipset. 286 Under Linux is also possible to switch on-the-fly between the fullscreen 287 and in-window rendering hack. 288 There is also the support for using more than one Voodoo Graphics in the 289 some application/PC (you can create one context for each board and use 290 multiple video outputs for driving monitors, videoprojectors or HMDs). 291 The driver is able to fallback to pure software rendering when afeature 292 isn't supported by the Voodoo hardware (however software rendering is 293 very slow compared to hardware supported rendering) 294 295 296 297How to compile: 298--------------- 299 300Linux: 301------ 302 Here are the basic steps for using the 3Dfx hardware with Mesa 303 on Linux: 304 305 - You'll need the Glide library and headers. Mesa expects: 306 /usr/local/glide/include/*.h // all the Glide headers 307 /usr/local/glide/lib/libglide2x.so 308 309 If your Glide libraries and headers are in a different directory 310 you'll have to modify the Mesa-config and mklib.glide files. 311 312 - Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives; 313 314 - If you're going to use a newer Mesa/Glide driver than v0.27 then 315 unpack the new driver archive over the Mesa directory. 316 317 - In the Mesa-3.1 directory type "make linux-glide" 318 319 - Compilation _should_ finish without errors; 320 321 - Set your LD_LIBRARY_PATH environment variable so that the 322 libglide2x.so and Mesa library files can be found. For example: 323 setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib" 324 325 - You'll have to run Glide-based programs as root or set the suid 326 bit on executables; 327 328 - Try a demo: 329 cd gdemos 330 su 331 setenv MESA_GLX_FX f 332 ./gears (hit ESC to exit) 333 334 - You can find the demos especially designed for the Voodoo driver in 335 in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile 336 everything). 337 338MacOS: 339------ 340 Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html 341 342MS Windows: 343----------- 344 345 For the MSVC++: 346 - The glide2x.lib have to be in the default MSVC++ lib directory; 347 348 - The Glide headers have to be in the default MSVC++ include directory; 349 350 - You must have the vcvars32.bat script in your PATH; 351 352 - Go to the directory Mesa-3.1 and run the mesafx.bat; 353 354 - The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll}, 355 Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and 356 Voodoo demos); 357 358 - At the end, you will be in the Mesa-3.1/3Dfx/demos directory; 359 360 - Try some demo (fire.exe, teapot.exe, etc.) in order to check if 361 everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between 362 the Voodoo screen and the windows desktop); 363 364 - Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the 365 some directory were you run your Mesa based applications. 366 367 - I think that you can easy change the Makefile.fx files in order 368 to work with other kind of compilers; 369 370 - To discover how open the 3Dfx screen, read the sources under 371 the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or 372 the Diego Picciani's wgl emulator. 373 374 NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the 375 SP3, you could have some problem (you can disable optimization in order 376 solve these kind of problems). 377 378 379Doing more with Mesa & Linux Glide: 380----------------------------------- 381 382 The MESA_GLX_FX environment variable can be used to coax most 383 GLX-based programs into using Glide (and the __GLUT library 384 is GLX-based__). 385 386 Full-screen 3Dfx rendering: 387 --------------------------- 388 389 1. Set the MESA_GLX_FX variable to "fullscreen": 390 391 ksh: 392 export MESA_GLX_FX = "fullscreen" 393 csh: 394 setenv MESA_GLX_FX fullscreen 395 396 2. As root, run a GLX-based program (any GLUT demo on Linux). 397 398 3. Be careful: once the 3Dfx screen appears you won't be able 399 to see the GLUT windows on your X display. This can make using 400 the mouse tricky! One solution is to hook up your 3Dfx card to 401 a second monitor. If you can do this then set these env vars 402 first: 403 404 setenv SST_VGA_PASS 1 405 setenv SST_NOSHUTDOWN 406 407 or for the Voodoo2: 408 409 setenv SSTV2_VGA_PASS 1 410 setenv SSTV2_NOSHUTDOWN 411 412 Rendering into an X window with the help of the Voodoo hardware: 413 ---------------------------------------------------------------- 414 415 1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16) 416 in order to have the best performance and the best visual 417 quality. However you can use any visual depth supported by X. 418 419 2. Set the following environment variables: 420 export MESA_GLX_FX="window" # to enable window rendering 421 export SST_VGA_PASS=1 # to stop video signal switching 422 export SST_NOSHUTDOWN=1 # to stop video signal switching 423 OR 424 setenv MESA_GLX_FX window 425 setenv SST_VGA_PASS 1 426 setenv SST_NOSHUTDOWN 1 427 428 (the Voodoo2 requires to use "SSTV2_" instead "SST_"). 429 430 3. As root, try running a GLX-based program 431 432 How does it work? We use the 3Dfx hardware to do rendering then 433 copy the image from the 3Dfx frame buffer into an X window when 434 the SwapBuffers() function is called. The problem with this 435 idea is it's slow. The image must be copied from the 3Dfx frame 436 buffer to main memory then copied into the X window (and when the X 437 visual depth doesn't match the Voodoo framebufffer bit per pixel, it 438 is required also a pixel format translation). 439 440 NOTE: the in-window rendering feature only works with double-buffering. 441 442 443 On the fly switching between in window rendering and full screen rendering 444 -------------------------------------------------------------------------- 445 446 The Mesa 2.6 has introduced the capability of switching 447 on-the-fly between the fullscreen/fullspeed rendering and the in-window 448 hack and vice versa. The on-the-fly switching requires a direct support 449 by the application but it is really easy to add. You have to start 450 your X server in 16 bpp mode and to add the following lines to your 451 application: 452 453 #if defined(FX) && define(XMESA) 454 #include <GL/xmesa.h> 455 456 static int fullscreen=1; 457 #endif 458 459 ... 460 461 /* In the GLUT keyboard event callback */ 462 463 #if defined(FX) && !define(WIN32) 464 case ' ': 465 fullscreen=(!fullscreen); 466 XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); 467 break; 468 #endif 469 ... 470 471 See the 3Dfx/demos/tunnel.c program 472 for an example. You have to set the -DXMESA flag in the Makefile's COPTS 473 to enable it. 474 475 Rendering into an X window with the X11 software driver: 476 -------------------------------------------------------- 477 478 Set the MESA_GLX_FX variable to "disable" your GLX-based program will use 479 the X11 software driver (the 3Dfx hardware isn't used at all). 480 481 482 483Useful Glide Environment Variables: 484----------------------------------- 485 486 - To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable. 487 488 - To disable video signal switching: 489 setenv SST_VGA_PASS 1 490 setenv SST_NOSHUTDOWN 491 or for the Voodoo2: 492 setenv SSTV2_VGA_PASS 1 493 setenv SSTV2_NOSHUTDOWN 494 495 - To set the default screen refresh rate: 496 setenv SST_SCREENREFRESH=75 497 498 the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120. 499 500 - To force the Mesa library to swap buffers as fast as possible, 501 without any vertical blanking synchronization (useful for benchmarks): 502 setenv FX_GLIDE_SWAPINTERVAL 0 503 setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0 504 505 - You can slight improve the performances of your Voodoo1 board with 506 the following env. var.: 507 setenv SST_FASTMEM 1 508 setenv SST_PCIRD 1 509 setenv SST_GRXCLK 57 510 511 (don't use this setting with the Quantum3D 100SB or with any other 512 SLI configuration: it will hang everything !). 513 The following setting can be used with the Voodoo2: 514 setenv SSTV2_FASTMEM_RAS_READS=1 515 setenv SSTV2_FASTPCIRD=1 516 setenv SSTV2_GRXCLK=95 517 518 - The Quantum3D Obsidian3D-2 X-24 requires some special env. setting 519 in order to work under Linux: 520 521 export SSTV2_FT_CLKDEL=5 522 export SSTV2_TF0_CLKDEL=7 523 export SSTV2_TF1_CLKDEL=7 524 export SSTV2_TF2_CLKDEL=7 525 export SSTV2_SLIM_VIN_CLKDEL=3 526 export SSTV2_SLIM_VOUT_CLKDEL=2 527 export SSTV2_SLIS_VIN_CLKDEL=3 528 export SSTV2_SLIS_VOUT_CLKDEL=2 529 530 (Thanks to Phil Ross for this trick). 531 532 533 534 535The Mesa/Voodoo Environment Variables: 536-------------------------------------- 537 538 - Only for Windows/Voodoo Rush users, if you define the 539 env. var. MESA_WGL_FX: 540 export MESA_WGL_FX=fullscreen 541 you will get fullscreen rendering; 542 543 - Only for Windows/Voodoo Rush users, if you define the 544 env. var. MESA_WGL_FX: 545 export MESA_WGL_FX=window 546 you will get window rendering (default value); 547 548 - Only for Linux users, you can find more informations about 549 the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide" 550 section; 551 552 - If you define the env. var. MESA_FX_SWAP_PENDING: 553 export MESA_FX_SWAP_PENDING=4 554 you will able to set the maximum number of swapbuffers 555 commands in the Voodoo FIFO after a swapbuffer (default value: 2); 556 557 - If you define the env. var. MESA_FX_INFO: 558 export MESA_FX_INFO=1 559 you will get some useful statistic. 560 561 - If you define the env. var. MESA_FX_NO_SIGNALS: 562 export MESA_FX_NO_SIGNALS=1 563 Mesa/FX will not install atexit() or signal() handlers. 564 565 566 567Know BUGS and Problems: 568----------------------- 569 570 - fog doesn't work in the right way when using the glDepthRange() function; 571 572 - Maximum texture size: 256x256 (this is an hardware limit); 573 574 - Texture border aren't yet supported; 575 576 - A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit); 577 578 - Use the glBindTexture extension (standard in OpenGL 1.1) for texture 579 mapping (the old way: glTexImage inside a display list, download 580 the texture map each time that you call the display list !!!); 581 582 - Stencil buffer and Accumulation buffer are emulated in software (they are not 583 directly supported by the Hardware); 584 585 - Color index mode not implemented (this is an hardware limit); 586 587 - Thre is an know bug in the Linux Glide library so the in-window-rendering hack 588 and any other operations that requires to read the Voodoo frame buffer 589 (like the accumulation buffer support) doesn't work on Voodoo SLI cards. 590 591 - The driver switch to pure software (_slow_) rendering when: 592 593 - Stencil enabled; 594 - Using the Accumulation buffer; 595 - Blend enabled and blend equation != GL_FUNC_ADD_EXT; 596 - Color logic operation enabled and color logic operation != GL_COPY; 597 - Using GL_SEPARATE_SPECULAR_COLOR; 598 - The four values of glColorMask() aren't the some; 599 - Texture 1D or 3D enabled; 600 - Texture function is GL_BLEND; 601 - Using the Multitexture extension with Voodoo cards with only one TMU; 602 - Using the Multitexture extension with Voodoo cards with more than 603 one TMU, and texture function isn't GL_MODULATE; 604 - Point size is != 1.0 or point params vector != (1.0,0.0,0.0); 605 - Line width != 1.0 or using stipple lines. 606 - Using polygon offset or stipple polygons; 607 608 NOTE: this is list is not yet complete. 609 610 611Hints and Special Features: 612--------------------------- 613 614 - Under Linux and with a Voodoo Graphics board, you can use 615 XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to 616 switch on the fly between fullscreen rendering and the in-window-rendering 617 hack. 618 619 - The driver is able to use all the texture memory available: 2/4MB on 620 Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards. 621 622 - Trilinear filtering is fully supported on Voodoo boards with two TMUs 623 (high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is 624 available the driver fallback to bilinear filter also if you ask 625 for trilinear filtering. 626 627 - The Voodoo driver support multiple Voodoo Graphics boards in the 628 some PC. Using this feature, you can write applications that use 629 multiple monitors, videoprojectors or HMDs for the output. See 630 Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one 631 context for each board. 632 633 - The v0.19 introduces a new powerful texture memory manager: the 634 texture memory is used as a cache of the set of all defined texture 635 maps. You can now define several MBs of texture maps also with a 2MB 636 of texture memory (the texture memory manager will do automatically 637 all the swap out/swap in 638 texture memory work). The new texture memory manager has also 639 solved a lot of other bugs/no specs compliance/problems 640 related to the texture memory usage. 641 642 - Use triangles and quads strip: they are a LOT faster than sparse 643 triangles and quads. 644 645 - The Voodoo driver supports the GL_EXT_paletted_texture. it works 646 only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value 647 is ignored because this is a limitation of the current Glide 648 version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for 649 a demo of this extension. 650 651 - The Voodoo driver directly supports 3Dfx Global Palette extension. 652 It was written for GLQuake and I think that it isn't a good idea 653 to use this extension for any other purpose (it is a trick). See 654 Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension. 655 656 - The Voodoo driver chooses the screen resolution according to the 657 requested window size. If you open a 640x480 window, you will get 658 a 640x480 screen resolution, if you open a 800x600 window, you 659 will get a 800x600 screen resolution, etc. 660 Most GLUT demos support the '-geometry' option, so you can choose 661 the screen resolution: 'tunnel -geometry 800x600'. 662 Clearly, you Voodoo board must have enough framebuffer RAM (otherwise 663 the window creation will fail). 664 665 - The glGetString(GL_RENDERER) returns more information 666 about the hardware configuration: "Mesa Glide <version> 667 <Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/ 668 <num> TM/<num> TMU/<NOSLI|SLI>" 669 where: <num> CARD is the card used for the current context, 670 <num> FB is the number of MB for the framebuffer, 671 <num> TM is the number of MB for the texture memory, 672 <num> TMU is the number of TMU. You can try to run 673 Mesa/demos/glinfo in order to have an example of the output. 674 675Did you find a lot BUGs and problems ? Good, send me an email. 676 677 678 679FAQ: 680---- 681 682For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO 683available at http://www.gamers.org/dEngine/xf3D (it includes also 684a lot of informations not strictly related to Linux, so it can be 685useful also if you don't use Linux) 686 6871. What is 3Dfx? 688 6893Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics 690chipset (and others) used in popular PC cards such as the Diamond Monster 3D 691and the Orchid Righteous 3D (more informations at http://www.3dfx.com). 692 693 6942. What is Glide? 695 696Glide is a "thin" programming interface for the 3Dfx hardware. It was 697originally written for Windows/Intel but has been ported to Linux/Intel 698by Daryll Strauss. 699 7003Dfx, Inc. should be applauded for allowing the Linux version of Glide 701to be written. 702 703You can directly program with the Glide library if you wish. You can 704obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com 705There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux 706 707 7083. What is fxmesa? 709 710"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library. 711It was written by David Bucciarelli and others. It works on both Linux 712and Windows. Basically, it allows you to write and run OpenGL-style programs 713on the 3Dfx hardware. 714 715 7164. What is GLQuake? 717 718Quake is a very popular game from id software, Inc. See www.idsoftware.com 719GLQuake is a version of Quake written for OpenGL. There is now a Linux 720version of GLQuake with works with the Mesa/3Dfx/Glide combo. 721 722Here's what you need to run GLQuake on Linux: 723 PC with 100MHz Pentium or better 724 a 3Dfx-based card 725 Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so 726 Glide 2.4 libraries: libglide2x.so libtexus.so 727 GLQuake for Linux. 728 729Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll, 730you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory 731in order to test 'MesaQuake'. 732 733 7345. What is GLUT? 735 736GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for 737writing portable OpenGL programs with support for multiple windows, pop- 738up menus, event handling, etc. 739 740Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd). 741 742Every OpenGL programmer should check out GLUT. 743 744GLUT on Linux uses GLX. 745 746 7476. What is GLX? 748 749GLX is the OpenGL extension to the X Window System. I defines both a 750programming API (glX*() functions) and a network protocol. Mesa implements 751an emulation of GLX on Linux. A real GLX implementation would requires 752hooks into the X server. The 3Dfx hardware can be used with GLX-based 753programs via the MESA_GLX_FX environment variable. 754 755 7567. Is the Voodoo driver able to use the 4Mb texture memory of 757the Pure3D boards ? 758 759Yes, the Voodoo driver v0.20 includes the support for Voodoo 760Graphics boards with more than 2Mb of texture memory. 761 762 7638. Do the Voodoo driver support the Voodoo Rush under Windows ? 764 765Yes, Diego Picciani has developed the support for the Voodoo 766Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul 767has a Monster3D, so the new versions of the Mesa/Voodoo sometime are 768not tested with the Voodoo Rush. 769 770 7719. Do the Voodoo driver support the Voodoo Rush under Linux ? 772 773No because the Linux Glide doesn't (yet) support the Voodoo Rush. 774 775 77610. Can I sell my Mesa/Voodoo based software and include 777a binary copy of the Mesa in order to make the software 778working out of the box ? 779 780Yes. 781 782 78311. Which is the best make target for compiling the Mesa for 784Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ? 785 786'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide' 787for Voodoo2 boards because it doesn't include the '-fPIC' 788option (4-5% faster). 789 790 79112. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide' 792for my applications/programs/demos ? 793 794Yes, there is only one constrain: you can't run two Mesa applications 795at the some time. This isn't a big issue with the today Voodoo Graphics. 796 797 798Thanks to: 799---------- 800 801Henri Fousse (he has written several parts of the v0.15 and the old GLUT 802 emulator for Win); 803 804Diego Picciani (he has developed all the Voodoo Rush support and the wgl 805 emulator); 806 807Daryll Strauss (for the Linux Glide and the first Linux support); 808 809Brian Paul (of course); 810 811Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports) 812 813Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer 814 a better Linux support) 815 8163Dfx and Quantum3D (for actively supporting Linux) 817 818The most update places where find Mesa VooDoo driver related informations are 819the Mesa mailing list and my driver WEB page 820(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml) 821 822 823David Bucciarelli (davibu@tin.it) 824 825Humanware s.r.l. 826Via XXIV Maggio 62 827Pisa, Italy 828Tel./Fax +39-50-554108 829email: info.hmw@plus.it 830www: www-hmw.caribel.pisa.it 831