Merge remote branch 'vdpau/pipe-video' into pipe-video
[mesa.git] / docs / README.DJ
index 95eb43c584fe01acea24b5e1149785ef4439f5ab..5f783ac53fb7f20421f7e20744c5072887350c11 100644 (file)
@@ -1,4 +1,4 @@
-                       Mesa 6.0 DOS/DJGPP Port v1.5
+                       Mesa 6.5 DOS/DJGPP Port v1.8
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
@@ -6,17 +6,16 @@
 Description:
 ~~~~~~~~~~~~
 
-Well, guess what... this is the DOS port of Mesa 6.0, for DJGPP fans... Whoa!
-The driver has its origins in ddsample.c, written by Brian Paul and found by me
-in Mesa 3.4.2.
+Well, guess what... this is the DOS port of Mesa 6.5, for DJGPP fans... Whoa!
+The driver uses OSMesa to draw off screen, and then blits the buffer.  This is
+not terribly efficient, and has some drawbacks, but saves maintenance costs.
 
 
 
 Legal:
 ~~~~~~
 
-Mesa copyright applies, provided this package is used within Mesa. For anything
-else, see GPL.
+Mesa copyright applies.
 
 
 
@@ -32,9 +31,6 @@ Available options:
      Environment variables:
        CPU             optimize for the given processor.
                        default = pentium
-       GLU=[mesa|sgi]  specify GLU directory; can be `sgi' (requires GNU/C++)
-                       or `mesa'.
-                       default = mesa
        GLIDE           path to Glide3 SDK; used with FX.
                        default = $(TOP)/glide3
        FX=1            build for 3dfx Glide3. Note that this disables
@@ -42,15 +38,7 @@ Available options:
                        As a consequence, you'll need the DJGPP Glide3
                        library to build any application.
                        default = no
-       HAVE_X86=1      optimize for i386.
-                       default = no
-       HAVE_MMX=1      allow MMX specializations, provided your assembler
-                       supports MMX instruction set. However, the true CPU
-                       capabilities are checked at run-time to avoid lockups.
-                       default = no
-       HAVE_SSE=1      (see HAVE_MMX)
-                       default = no
-       HAVE_3DNOW=1    (see HAVE_MMX)
+       X86=1           optimize for x86 (if possible, use MMX, SSE, 3DNow).
                        default = no
 
      Targets:
@@ -64,11 +52,9 @@ Available options:
 
 
 Tested on:
-       CPU:            AMD Athlon XP 1800+
-       Mainboard:      GA-7VTXE w/ 512 MB DDRAM
-       Video card:     Voodoo5 6000 AGP w/ 128 MB SDRAM
-       DJGPP:          djdev 2.04 + gcc v3.3.2 + make v3.80
-       OS:             DOS and Win98SE
+       Video card:     Radeon 9500
+       DJGPP:          djdev 2.04 + gcc v4.1.0 + make v3.80
+       OS:             DOS, Win98SE, WinXP (using Videoport driver)
 
 
 
@@ -99,10 +85,14 @@ FAQ:
 
 2. Using Mesa for DJGPP
 
+   Q) Every test I tried crashes badly.
+   A) If you have compiled with SSE and you're running under plain DOS, you
+      have to disable SSE at run-time. See environment variables below.
+
    Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better...
-   A) Is that a question? If you have a 3dfx Voodoo^2 or higher card, you're
+   A) Is that a question? If you have a 3dfx Voodoo (any model), you're
       lucky (check http://sourceforge.net/projects/glide for the DJGPP port).
-      If you haven't, sorry; everything is done in software. Suggestions?
+      If you haven't, sorry; everything is done in software.
 
    Q) I tried to set refresh rate w/ DMesa, but without success.
    A) Refresh rate control works only for VESA 3.0 and the 3dfx driver (in
@@ -111,11 +101,25 @@ FAQ:
 
    Q) I made a simple application and it does nothing. It exits right away. Not
       even a blank screen.
-   A) The pure software drivers (VESA/VGA) support only double-buffered modes.
+   A) Software drivers (VESA/VGA/NUL) must to be constructed as single-buffered
+      visuals.  However, DMesaSwapBuffers must be called to get any output.
    A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a
       lazy programmer and I found that the easiest way to keep buffer handling
       at peak performance ;-).
 
+   Q) I'm getting a "bad font!" fatal error.
+   A) Always use GLUT_STROKE_* and GLUT_BITMAP_* constants when dealing with
+      GLUT fonts. If you're using `glut.dxe', then make sure GLUT_STROKE_* and
+      GLUT_BITMAP_* are mapped to integer constants, not to the actual font
+      address (same mechanism used for Win32 _DLL).
+
+   Q) What is NUL driver good for, if I don't get any output at all?
+   A) For debugging. The NUL driver is very much like OSMesa. Everything is
+      done just the same as VESA/VGA drivers, only it doesn't touch your video
+      hardware. You can query the actual buffer by issuing:
+       DMesaGetIntegerv(DMESA_GET_BUFFER_ADDR, &buffer);
+      and dump it to a file.
+
    Q) How do I query for a list of available video modes to choose as a visual?
    A) This is an ugly hack, for which I'm sure I'll burn in hell.
       First, query for a list of modes:
@@ -125,7 +129,7 @@ FAQ:
        struct {
                int xres, yres;
                int bpp;
-       } **l = malloc(n * sizeof(void **));
+       } **l = malloc(n * sizeof(void *));
       Now pass the newly allocated buffer to fill in:
        DMesaGetIntegerv(DMESA_GET_VIDEO_MODES, (GLint *)l);
       And collect the info:
@@ -179,8 +183,13 @@ chosen in such a way that first window will fit. If you need high resolution
 with small windows, set initial position far to the right (or way down); then
 you can move them back to any position right before the main loop.
 
-The following environment variables can customize GLUT behaviour:
+
+
+Environment variables:
+~~~~~~~~~~~~~~~~~~~~~~
+       DMESA_NULDRV            - (any value) force NUL driver
        GLUT_FPS                - print frames/second statistics to stderr
+       MESA_NO_SSE             - (any value) safe option under pure DOS
        DMESA_GLUT_REFRESH      - set vertical screen refresh rate (VESA3)
        DMESA_GLUT_BPP          - set default bits per pixel (VGA needs 8)
        DMESA_GLUT_ALPHA        - set default alpha bits (8)
@@ -237,11 +246,30 @@ v1.5 (jan-2004)
        - removed Matrox Millennium MGA2064W driver
        x more changes to the 3dfx driver
 
+v1.6 (aug-2004)
+       + implemented NUL driver
+       + added DMesaGetProcAddress and glutGetProcAddress
+       * reorganized fxMesa wrapper to handle multiple contexts
+       ! fixed a horrible bug in VGA initialization routine
+       ! fixed partial clears
+
+v1.7 (???-2005)
+       + enabled OpenGL 2.0 support
+       + added support for sw texture compression
+       + added FreeGLUT specific functions
+       * no more GLX sources in DOS GLUT
+       * made GLUT timer callbacks less accurate but safer
+
+v1.8 (apr-2006)
+       * killed lots of code, the driver is now a front-end to OSMesa
+       * fixed problem with WinNT (http://www.volny.cz/martin.sulak/)
+       - removed 3dfx Glide3 support (temporarily?)
+
 
 
 Contact:
 ~~~~~~~~
 
-Name:   Borca Daniel
+Name:   Daniel Borca
 E-mail: dborca@users.sourceforge.net
 WWW:    http://www.geocities.com/dborca/