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