diff options
Diffstat (limited to 'xc/extras/Mesa/docs')
38 files changed, 6748 insertions, 0 deletions
diff --git a/xc/extras/Mesa/docs/CONFIG b/xc/extras/Mesa/docs/CONFIG new file mode 100644 index 000000000..eaaa52c99 --- /dev/null +++ b/xc/extras/Mesa/docs/CONFIG @@ -0,0 +1,120 @@ + + Mesa config file documentation + + +As of Mesa 3.1 beta 2, a config file can be used to configure various +Mesa parameters. For example, extensions can be enable/disabled, +glHints can be specified, etc. More config options will be added +in the future. + +The config file uses a Lisp-like syntax. + +Here's Keith's description of the file with a few examples. + + + +;; -*-lisp-*- +;; +;; KW: New mesa configuration file, syntax following a lisp style. +;; +;; valid syntax: +;; +;; (config-mesa version configs) +;; +;; where: +;; version - is the version number of mesa for which the configuration +;; was written. Future versions will use this to check for upwards +;; compatibility. There is however no guarentee that old configurations +;; will continue to be respected. +;; +;; configs - is a list of valid configuration lists, as specified by: +;; +;; (default-hint variable value) +;; (disable-extension name) +;; (fx-catch-signals {true|false}) +;; +;; Mesa will look for an environment variable MESA_CONFIG, and try to +;; execute that profile. Otherwise, it will fallback to the profile +;; with the same name as the current mesa version. As default +;; profiles should normally be empty or near-empty, this should be +;; sufficiently powerful. +;; + + +;; Guareenteed to be an empty config. +;; +(config-mesa empty ()) + + +;; Default profile - should normally be an empty list of +;; configurations. +;; +(config-mesa mesa3.1beta1 ()) + + +(config-mesa no-cva ((disable-extension GL_EXT_compiled_vertex_array))) + + +;; Turn off some compliance for the sake of speed. +;; +(config-mesa quake2 + ( + ;; Quake2 likes this extension, but it really hurts performance if + ;; you don't also disable software fallbacks, below. (And do + ;; something else to stop the eye-space calculations too...) + ;; + (disable-extension GL_EXT_point_parameters) + + ;; These hints are honoured only by the 3dfx driver - the X driver + ;; continues to function even if you specify hardware-only + ;; rendering. + ;; + ;(default-hint GL_ALLOW_DRAW_OBJ_HINT_PGI GL_TRUE) ; wishful thinking + ;(default-hint GL_ALLOW_DRAW_WIN_HINT_PGI GL_TRUE) ; allow 3dfx +hardware... + ;(default-hint GL_ALLOW_DRAW_SPN_HINT_PGI GL_FALSE) ; no software spans + ;(default-hint GL_ALLOW_DRAW_MEM_HINT_PGI GL_FALSE) ; no softare pixels + + ;; Lock in the hints specified above. + ;; + (disable-extension GL_PGI_misc_hints))) + + +;; Turn off some compliance for the sake of speed. +;; +(config-mesa quake2b + ( + ;; Quake2 likes this extension, but it really hurts performance if + ;; you don't also disable software fallbacks, below. (And do + ;; something else to stop the eye-space calculations too...) + ;; + ;(disable-extension GL_EXT_point_parameters) + + ;; These hints are honoured only by the 3dfx driver - the X driver + ;; continues to function even if you specify hardware-only + ;; rendering. + ;; + (default-hint GL_ALLOW_DRAW_OBJ_HINT_PGI GL_TRUE) ; wishful thinking + (default-hint GL_ALLOW_DRAW_WIN_HINT_PGI GL_TRUE) ; allow 3dfx +hardware... + (default-hint GL_ALLOW_DRAW_SPN_HINT_PGI GL_FALSE) ; no software spans + (default-hint GL_ALLOW_DRAW_MEM_HINT_PGI GL_FALSE) ; no softare pixels + + ;; Lock in the hints specified above. + ;; + (disable-extension GL_PGI_misc_hints))) + + +;; Just some reminders for me. +;; +(config-mesa todo-list + ( + ;; Allows us to slot in simpler lighting routines - not + ;; implemented. + ;; + (default-hint GL_STRICT_POINT_DISTANCE_HINT_MESA GL_FALSE) + (default-hint GL_STRICT_LIGHTING_HINT_PGI GL_FALSE))) + + +---------------------------------------------------------------------- +$Id: CONFIG,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/CONFORM b/xc/extras/Mesa/docs/CONFORM new file mode 100644 index 000000000..b5345022f --- /dev/null +++ b/xc/extras/Mesa/docs/CONFORM @@ -0,0 +1,754 @@ + +I (Brian Paul) have been given the OpenGL conformance tests for the +purpose of testing Mesa. The test source code can not be disclosed. + +Below are the results of testing Mesa 3.4 beta as of November 1, 2000. +The results are identical to Mesa 3.3. + +The tests were run using the software X11 device driver on a 24-bit +display. Using 16-bit or 8-bit display modes results in some conformance +failures. That's almost certainly because of dithering errors. + +Mesa's antialiased line algorithm will have to be rewritten to +pass the remaining conformance failures. + + +----------------------------------------------------------------------------- + + +COVERAGE TESTS +-------------- + +Test that all API functions accept the spec'd parameters and reject +illegal parameters. Results of each test is either pass or fail. + +covgl test: passed. + +covglu test: can't compile; Mesa doesn't have GLU 1.2 + +covglx test: passed. + +primtest: 292159 Combinations tested. Passed. + + + + +GL CONFORMANCE TEST +=================== + +Render test images, read them back, then test for expected results. + + +---------------------------------------------------------------------- +% conform -v 2 + +OpenGL Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path inactive. + +Visual Report. + Display ID = 34. Indirect Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +Must Pass test passed. +Divide By Zero test passed. +Viewport Clamp test passed. +Matrix Stack test passed. +Matrix Stack Mixing test passed. +Vertex Order test passed. +Transformations test passed. +Transformation Normal test passed. +Viewport Transformation test passed. +Buffer Clear test passed. +Buffer Corners test passed. +Buffer Color test passed. +Color Ramp test passed. +Mask test passed. +Buffer Invariance test passed. +Accumulation Buffer test passed. +Select test passed. +Feedback test passed. +Scissor test passed. +Alpha Plane Function test passed. +Stencil Plane Clear test passed. +Stencil Plane Corners test passed. +Stencil Plane Operation test passed. +Stencil Plane Function test passed. +Depth Buffer Clear test passed. +Depth Buffer Function test passed. +Blend test passed. +Dither test passed. +LogicOp Function test does not exist for an RGB visual. +DrawPixels test passed. +CopyPixels test passed. +Bitmap Rasterization test passed. +Point Rasterization test passed. +Anti-aliased Point test passed. +Line Rasterization test passed. +Line Stipple test passed. +Anti-aliased Line test passed. +Horizontal and Vertical Line test passed. +Triangle Rasterization test passed. +Triangle Tile test passed. +Triangle Stipple test passed. +Anti-aliased Triangles test passed. +Quad Rasterization test passed. +Polygon Face test passed. +Polygon Cull test passed. +Polygon Stipple test passed. +Polygon Edge test passed. +Ambient Light test passed. +Ambient Material test passed. +Ambient Scene test passed. +Attenuation Constants test passed. +Attenuation Position test passed. +Diffuse Light test passed. +Diffuse Material test passed. +Diffuse Material Normal test passed. +Diffuse Material Positioning test passed. +Emissive Material test passed. +Specular Exponent test passed. +Specular Exponent Normal test passed. +Specular Local Eye Half Angle test passed. +Specular Light test passed. +Specular Material test passed. +Specular Normal test passed. +Spot Positioning test passed. +Spot Exponent and Positioning test passed. +Spot Exponent and Direction test passed. +Fog Exponential test passed. +Fog Linear test passed. +Texture Decal test passed. +Texture Border test passed. +Mipmaps Selection test passed. +Mipmaps Interpolation test passed. +Display Lists test passed. +Evaluator test passed. +Evaluator Color test passed. + +Conform passed. + +---------------------------------------------------------------------- +% conform -v 2 -p 1 + +OpenGL Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path level = 1. + +Visual Report. + Display ID = 34. Indirect Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +Must Pass test passed. +Divide By Zero test passed. +Viewport Clamp test passed. +Matrix Stack test passed. +Matrix Stack Mixing test passed. +Vertex Order test passed. +Transformations test passed. +Transformation Normal test passed. +Viewport Transformation test passed. +Buffer Clear test passed. +Buffer Corners test passed. +Buffer Color test passed. +Color Ramp test passed. +Mask test passed. +Buffer Invariance test passed. +Accumulation Buffer test passed. +Select test passed. +Feedback test passed. +Scissor test passed. +Alpha Plane Function test passed. +Stencil Plane Clear test passed. +Stencil Plane Corners test passed. +Stencil Plane Operation test passed. +Stencil Plane Function test passed. +Depth Buffer Clear test passed. +Depth Buffer Function test passed. +Blend test passed. +Dither test passed. +LogicOp Function test does not exist for an RGB visual. +DrawPixels test passed. +CopyPixels test passed. +Bitmap Rasterization test passed. +Point Rasterization test passed. +Anti-aliased Point test passed. +Line Rasterization test passed. +Line Stipple test passed. +Anti-aliased Line test passed. +Horizontal and Vertical Line test passed. +Triangle Rasterization test passed. +Triangle Tile test passed. +Triangle Stipple test passed. +Anti-aliased Triangles test passed. +Quad Rasterization test passed. +Polygon Face test passed. +Polygon Cull test passed. +Polygon Stipple test passed. +Polygon Edge test passed. +Ambient Light test passed. +Ambient Material test passed. +Ambient Scene test passed. +Attenuation Constants test passed. +Attenuation Position test passed. +Diffuse Light test passed. +Diffuse Material test passed. +Diffuse Material Normal test passed. +Diffuse Material Positioning test passed. +Emissive Material test passed. +Specular Exponent test passed. +Specular Exponent Normal test passed. +Specular Local Eye Half Angle test passed. +Specular Light test passed. +Specular Material test passed. +Specular Normal test passed. +Spot Positioning test passed. +Spot Exponent and Positioning test passed. +Spot Exponent and Direction test passed. +Fog Exponential test passed. +Fog Linear test passed. +Texture Decal test passed. +Texture Border test passed. +Mipmaps Selection test passed. +Mipmaps Interpolation test passed. +Display Lists test passed. +Evaluator test passed. +Evaluator Color test passed. + +Conform passed. + +---------------------------------------------------------------------- +% conform -v 2 -p 2 + +OpenGL Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path level = 2. + +Visual Report. + Display ID = 34. Indirect Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +Must Pass test passed. +Divide By Zero test passed. +Viewport Clamp test passed. +Matrix Stack test passed. +Matrix Stack Mixing test passed. +Vertex Order test passed. +Transformations test passed. +Transformation Normal test passed. +Viewport Transformation test passed. +Buffer Clear test passed. +Buffer Corners test passed. +Buffer Color test passed. +Color Ramp test passed. +Mask test passed. +Buffer Invariance test passed. +Accumulation Buffer test passed. +Select test passed. +Feedback test passed. +Scissor test passed. +Alpha Plane Function test passed. +Stencil Plane Clear test passed. +Stencil Plane Corners test passed. +Stencil Plane Operation test passed. +Stencil Plane Function test passed. +Depth Buffer Clear test passed. +Depth Buffer Function test passed. +Blend test passed. +Dither test passed. +LogicOp Function test does not exist for an RGB visual. +DrawPixels test passed. +CopyPixels test passed. +Bitmap Rasterization test passed. +Point Rasterization test passed. +Anti-aliased Point test passed. +Line Rasterization test passed. +Line Stipple test passed. +Anti-aliased Line test failed. + File - lineaa.c, line - 165. + Coverage is 1.99216, initial coverage was 0.996078. Error margin is + 0.655922. + State Report. (Current) <-> (Default) + GL_ATTRIB_STACK_DEPTH (State Information) + 1.00 <-> 0.00 + GL_BLEND (State Information) + GL_TRUE <-> GL_FALSE + GL_BLEND_DST (State Information) + GL_LINES <-> GL_NONE + GL_BLEND_SRC (State Information) + GL_SRC_ALPHA <-> GL_LINES + GL_CURRENT_COLOR (State Information) + 1.00 0.00 0.00 1.00 <-> 1.00 1.00 1.00 1.00 + GL_DITHER (State Information) + GL_FALSE <-> GL_TRUE + GL_LINE_SMOOTH (State Information) + GL_TRUE <-> GL_FALSE + GL_LINE_STIPPLE_PATTERN (State Information) + 0.00 <-> 65535.00 + GL_LOGIC_OP (State Information) + GL_TRUE <-> GL_FALSE + GL_PROJECTION_MATRIX (State Information) + +0.020 +0.000 +0.000 +0.000 <-> +1.000 +0.000 +0.000 +0.000 + +0.000 +0.020 +0.000 +0.000 <-> +0.000 +1.000 +0.000 +0.000 + +0.000 +0.000 -1.000 +0.000 <-> +0.000 +0.000 +1.000 +0.000 + -1.000 -1.000 +0.000 +1.000 <-> +0.000 +0.000 +0.000 +1.000 + GL_POLYGON_STIPPLE (State Information) + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + 0 0 0 0 0 0 0 0 <-> FF FF FF FF FF FF FF FF + Path Report. + Alias Path inactive. + Alpha Path inactive. + Blend Path inactive. + Depth Path inactive. + Dither Path active. + Fog Path inactive. + LogicOp Path active. + Function = GL_COPY. + Shade model Path = GL_SMOOTH. + Stencil Path inactive. + Stipple Path inactive. +Horizontal and Vertical Line test passed. +Triangle Rasterization test passed. +Triangle Tile test passed. +Triangle Stipple test passed. +Anti-aliased Triangles test passed. +Quad Rasterization test passed. +Polygon Face test passed. +Polygon Cull test passed. +Polygon Stipple test passed. +Polygon Edge test passed. +Ambient Light test passed. +Ambient Material test passed. +Ambient Scene test passed. +Attenuation Constants test passed. +Attenuation Position test passed. +Diffuse Light test passed. +Diffuse Material test passed. +Diffuse Material Normal test passed. +Diffuse Material Positioning test passed. +Emissive Material test passed. +Specular Exponent test passed. +Specular Exponent Normal test passed. +Specular Local Eye Half Angle test passed. +Specular Light test passed. +Specular Material test passed. +Specular Normal test passed. +Spot Positioning test passed. +Spot Exponent and Positioning test passed. +Spot Exponent and Direction test passed. +Fog Exponential test passed. +Fog Linear test passed. +Texture Decal test passed. +Texture Border test passed. +Mipmaps Selection test passed. +Mipmaps Interpolation test passed. +Display Lists test passed. +Evaluator test passed. +Evaluator Color test passed. + +Conform failed. + Anti-aliased Line test (Test number #36) failed. + +---------------------------------------------------------------------- +% conform -v 2 -p 3 + +OpenGL Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path level = 3. + +Visual Report. + Display ID = 34. Indirect Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +Must Pass test passed. +Divide By Zero test passed. +Viewport Clamp test passed. +Matrix Stack test passed. +Matrix Stack Mixing test passed. +Vertex Order test passed. +Transformations test passed. +Transformation Normal test passed. +Viewport Transformation test passed. +Buffer Clear test passed. +Buffer Corners test passed. +Buffer Color test passed. +Color Ramp test passed. +Mask test passed. +Buffer Invariance test passed. +Accumulation Buffer test passed. +Select test passed. +Feedback test passed. +Scissor test passed. +Alpha Plane Function test passed. +Stencil Plane Clear test passed. +Stencil Plane Corners test passed. +Stencil Plane Operation test passed. +Stencil Plane Function test passed. +Depth Buffer Clear test passed. +Depth Buffer Function test passed. +Blend test passed. +Dither test passed. +LogicOp Function test does not exist for an RGB visual. +DrawPixels test passed. +CopyPixels test passed. +Bitmap Rasterization test passed. +Point Rasterization test passed. +Anti-aliased Point test passed. +Line Rasterization test passed. +Line Stipple test passed. +Anti-aliased Line test failed. + File - lineaa.c, line - 165. + Coverage is 1.99216, initial coverage was 0.996078. Error margin is + 0.655922. + State Report. (Current) <-> (Default) + GL_ATTRIB_STACK_DEPTH (State Information) + 1.00 <-> 0.00 + GL_BLEND (State Information) + GL_TRUE <-> GL_FALSE + GL_BLEND_DST (State Information) + GL_LINES <-> GL_NONE + GL_BLEND_SRC (State Information) + GL_SRC_ALPHA <-> GL_LINES + GL_CURRENT_COLOR (State Information) + 1.00 0.00 0.00 1.00 <-> 1.00 1.00 1.00 1.00 + GL_DITHER (State Information) + GL_FALSE <-> GL_TRUE + GL_FOG (State Information) + GL_TRUE <-> GL_FALSE + GL_FOG_COLOR (State Information) + 1.00 1.00 1.00 1.00 <-> 0.00 0.00 0.00 0.00 + GL_FOG_DENSITY (State Information) + 0.00 <-> 1.00 + GL_FOG_MODE (State Information) + GL_EXP2 <-> GL_EXP + GL_LINE_SMOOTH (State Information) + GL_TRUE <-> GL_FALSE + GL_LINE_STIPPLE (State Information) + GL_TRUE <-> GL_FALSE + GL_LINE_STIPPLE_REPEAT (State Information) + 10.00 <-> 1.00 + GL_POLYGON_STIPPLE (State Information) + GL_TRUE <-> GL_FALSE + GL_PROJECTION_MATRIX (State Information) + +0.020 +0.000 +0.000 +0.000 <-> +1.000 +0.000 +0.000 +0.000 + +0.000 +0.020 +0.000 +0.000 <-> +0.000 +1.000 +0.000 +0.000 + +0.000 +0.000 -1.000 +0.000 <-> +0.000 +0.000 +1.000 +0.000 + -1.000 -1.000 +0.000 +1.000 <-> +0.000 +0.000 +0.000 +1.000 + GL_SHADE_MODEL (State Information) + GL_FLAT <-> GL_SMOOTH + GL_STENCIL_FUNC (State Information) + GL_GEQUAL <-> GL_ALWAYS + GL_STENCIL_REF (State Information) + 1.00 <-> 0.00 + GL_STENCIL_TEST (State Information) + GL_TRUE <-> GL_FALSE + GL_STENCIL_VALUE_MASK (State Information) + 0.00 <-> 255.00 + Path Report. + Alias Path inactive. + Alpha Path inactive. + Blend Path inactive. + Depth Path active. + Clear value = 0.000000. + Range = 0.000000, 1.000000. + Function = GL_ALWAYS. + Dither Path active. + Fog Path active. + RGBA color = 1.000000, 1.000000, 1.000000, 1.000000. + Color Index = 0.0. + Density = 0.000000. + Start and end values = 0.000000, 1.000000. + Mode = GL_EXP2. + LogicOp Path inactive. + Shade model Path = GL_FLAT. + Stencil Path active. + Clear value = 0. + Mask value = FF. + Function = GL_GEQUAL, reference = 1, mask = 0. + Op1 = GL_KEEP, op2 = GL_KEEP, op3 = GL_KEEP. + Stipple Path active. + Line stipple = FFFF, repeat = 10. + Polygon stipple = FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF + FF, FF, FF, FF, FF, FF, FF, FF +Horizontal and Vertical Line test passed. +Triangle Rasterization test passed. +Triangle Tile test passed. +Triangle Stipple test passed. +Anti-aliased Triangles test passed. +Quad Rasterization test passed. +Polygon Face test passed. +Polygon Cull test passed. +Polygon Stipple test passed. +Polygon Edge test passed. +Ambient Light test passed. +Ambient Material test passed. +Ambient Scene test passed. +Attenuation Constants test passed. +Attenuation Position test passed. +Diffuse Light test passed. +Diffuse Material test passed. +Diffuse Material Normal test passed. +Diffuse Material Positioning test passed. +Emissive Material test passed. +Specular Exponent test passed. +Specular Exponent Normal test passed. +Specular Local Eye Half Angle test passed. +Specular Light test passed. +Specular Material test passed. +Specular Normal test passed. +Spot Positioning test passed. +Spot Exponent and Positioning test passed. +Spot Exponent and Direction test passed. +Fog Exponential test passed. +Fog Linear test passed. +Texture Decal test passed. +Texture Border test passed. +Mipmaps Selection test passed. +Mipmaps Interpolation test passed. +Display Lists test passed. +Evaluator test passed. +Evaluator Color test passed. + +Conform failed. + Anti-aliased Line test (Test number #36) failed. + +---------------------------------------------------------------------- +% conform -v 2 -p 4 + +OpenGL Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path level = 4. + +Visual Report. + Display ID = 34. Indirect Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +Must Pass test passed. +Divide By Zero test passed. +Viewport Clamp test passed. +Matrix Stack test passed. +Matrix Stack Mixing test passed. +Vertex Order test passed. +Transformations test passed. +Transformation Normal test passed. +Viewport Transformation test passed. +Buffer Clear test passed. +Buffer Corners test passed. +Buffer Color test passed. +Color Ramp test passed. +Mask test passed. +Buffer Invariance test passed. +Accumulation Buffer test passed. +Select test passed. +Feedback test passed. +Scissor test passed. +Alpha Plane Function test passed. +Stencil Plane Clear test passed. +Stencil Plane Corners test passed. +Stencil Plane Operation test passed. +Stencil Plane Function test passed. +Depth Buffer Clear test passed. +Depth Buffer Function test passed. +Blend test passed. +Dither test passed. +LogicOp Function test does not exist for an RGB visual. +DrawPixels test passed. +CopyPixels test passed. +Bitmap Rasterization test passed. +Point Rasterization test passed. +Anti-aliased Point test passed. +Line Rasterization test passed. +Line Stipple test passed. +Anti-aliased Line test passed. +Horizontal and Vertical Line test passed. +Triangle Rasterization test passed. +Triangle Tile test passed. +Triangle Stipple test passed. +Anti-aliased Triangles test passed. +Quad Rasterization test passed. +Polygon Face test passed. +Polygon Cull test passed. +Polygon Stipple test passed. +Polygon Edge test passed. +Ambient Light test passed. +Ambient Material test passed. +Ambient Scene test passed. +Attenuation Constants test passed. +Attenuation Position test passed. +Diffuse Light test passed. +Diffuse Material test passed. +Diffuse Material Normal test passed. +Diffuse Material Positioning test passed. +Emissive Material test passed. +Specular Exponent test passed. +Specular Exponent Normal test passed. +Specular Local Eye Half Angle test passed. +Specular Light test passed. +Specular Material test passed. +Specular Normal test passed. +Spot Positioning test passed. +Spot Exponent and Positioning test passed. +Spot Exponent and Direction test passed. +Fog Exponential test passed. +Fog Linear test passed. +Texture Decal test passed. +Texture Border test passed. +Mipmaps Selection test passed. +Mipmaps Interpolation test passed. +Display Lists test passed. +Evaluator test passed. +Evaluator Color test passed. + +Conform passed. + + + + +GLX CONFORMANCE TEST +==================== + +% conformx -v 2 + +OpenGL X Conformance Test +Version 1.1.1 + +Setup Report. + Verbose level = 2. + Random number seed = 1. + Path inactive. + +Visual Report. + Display ID = 34. Direct Rendering. + Double Buffered. + RGBA (8, 8, 8, 0). + Stencil (8). + Depth (16). + Accumulation (16, 16, 16, 16). + +Epsilon Report. + zero error epsilon = 0.000122. + RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122. + Depth buffer error epsilon = 0.000137. + Stencil plane error epsilon = 0.00404. + Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137. + +Default State test passed. +glReadPixels() test passed. +Font test passed. + +Conformx passed. + + +NOTE: conformx passes for all machine path levels (-p option). + + +----------------------------------------------------------------------------- +$Id: CONFORM,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/COPYRIGHT b/xc/extras/Mesa/docs/COPYRIGHT new file mode 100644 index 000000000..466b9af56 --- /dev/null +++ b/xc/extras/Mesa/docs/COPYRIGHT @@ -0,0 +1,155 @@ + + Mesa Copyright Information + + +The Mesa distribution consists of several components. Different copyrights +apply to different components. For example, GLUT is copyrighted by Mark +Kilgard, some demo programs are copyrighted by SGI, some of the Mesa +device drivers are copyrighted by the respective authors. + +Through version 3.0, the core Mesa library was been distributed under the +GNU Library General Public License. + +In Mesa 3.1 (and later) the core library instead uses the XFree86 copyright. +The copyright was being changed so that Mesa could be integrated into the +XFree86 X server in order to support 3D hardware acceleration. Mesa will +still also be supported as a stand-alone library. + +If you have contributed code to Mesa in the past and don't want your +code included in the non-GNU LGPL version please contact Brian to +have your code removed. + + + + +Common questions about the copyright change +------------------------------------------- + +Q1. Why was the copyright changed? + +A1. Mesa is being integrated with XFree86 (the free X server for Linux +and other Unix-like operating systems) in order to better support +3D hardware on Linux. All code used in XFree86 must use the XFree86 +copyright. 3D hardware acceleration on Linux is long overdue. The +Mesa copyright change will allow better hardware support on Linux in +the near future. + + +Q2. Is it legal to change the copyright? + +A2. Yes, since I (Brian Paul) hold the copyright. + + +Q3. I contributed code to Mesa while under the GNU copyright and don't +agree with the new copyright. What can I do? + +A3. I'll remove any such code upon request. So far, no one has made +this request. + + +Q4. The XFree86 copyright allows people/companies to release binary-only +works derived from the Mesa code. Isn't that bad? + +A4. It's somewhat unfortunate, but acceptable. However, it really is in a +company's best interest to keep modification to open-source software in the +open-source domain. See the open-source essays written by Eric Raymond for +the reasoning. Also note that any such concerns can be applied to the +XFree86 project as well. It seems to be doing well. + + + +Attention Contributors +---------------------- + +If you want to contribute to the Mesa project please consider the +copyright issues. If you contribute a bug fix or new feature to +an existing component you should agree to the copyright on that +component before submitting the bug fix or feature code. + +If you want to contribute a new component, such as a new device +driver or demo program, then you can put whatever copyright you want +on your code. Insert the copyright into all files to avoid confusion. + + + + +Mesa component copyrights +------------------------- + +Component Files Primary Author Copyright +------------------------------------------------------------------------------- +core Mesa code src/*.[ch] Brian Paul See below (*) + include/GL/gl.h + +GLU library src-glu/* Brian Paul GNU-LGPL + include/GL/glu.h + +GLX driver src/X/* Brian Paul See below (*) + include/GL/glx.h + include/GL/xmesa.h + +OS/Mesa driver src/OSmesa/* Brian Paul See below (*) + include/GL/osmesa.h + +3Dfx driver src/FX/* David Bucciarelli GNU-LGPL + include/GL/fxmesa.h + +MGL driver src/MGL/* SciTech, Inc SciTech copyright + include/GL/mglmesa.h + +Windows driver src/Windows/* Li Wei copyright by Li Wei + include/GL/wmesa.h + +SVGA driver src/SVGA/* Brian Paul GNU-LGPL + include/GL/svgamesa.h + +DOS driver src/DOS/* Charlie Wallace GNU-LGPL + include/GL/dosmesa.h + +GGI driver src/GGI/* Uwe Maurer GNU-LGPL + include/GL/ggimesa.h + +S3 driver src/S3/* S3, Inc. S3 copyright + +BeOS R4 driver src/BeOS/* Brian Paul See below (*) + +GLUT src-glut/* Mark Kilgard Mark's copyright + include/GL/*glut*.h + +demo programs demos/* various see source file + +X demos xdemos/* Brian Paul see source file + +SGI demos samples/* SGI SGI copyright + +RedBook demos book/* SGI SGI copyright + + + +(*) Main Mesa Copyright +----------------------- + +Mesa code without an explicit copyright is covered by the following +copyright: + +Copyright (C) 1999 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +---------------------------------------------------------------------- +$Id: COPYRIGHT,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/DEVINFO b/xc/extras/Mesa/docs/DEVINFO new file mode 100644 index 000000000..51787676e --- /dev/null +++ b/xc/extras/Mesa/docs/DEVINFO @@ -0,0 +1,148 @@ + + + Information for Mesa developers + + +Adding Extentions +----------------- + +To add a new GL extension to Mesa you have to do the following. + + Edit include/GL/gl.h and add + - new enum tokens + - new API function entry points + - #define GL_EXT_the_extension_name 1 + + If adding a new API function (call it glNewFunctionEXT): + - insert glNewFunctionEXT()into src/apiext.h + - edit src/types.h and add NewFunction to the gl_api_table struct + - implement gl_NewFunction() in the appropriate src file + - hook gl_NewFunction() into pointers.c + - add display list support in dlist.c for save_NewFunction() + - add glNewFunctionEXT to gl_GetProcAddress() in extensions.c or + in the device driver's GetProcAddress() function if appropriate + + If adding new GL state be sure to update get.c and enable.c + + Document the extension in the README file. Either include a pointer + to the extension spec or write an extension spec and put it in the + Mesa/docs/ directory. + + + +Coding Style +------------ + +Mesa's code style has changed over the years. Here's the latest. + +Comment your code! It's extremely important that open-source code be +well documented. Also, strive to write clean, easily understandable code. + +3-space indentation + +If you use tabs, set them to 8 columns + +Brace example: + + if (condition) { + foo; + } + else { + bar; + } + +Here's the GNU indent command which will best approximate my preferred style: + + indent -br -i3 -npcs infile.c -o outfile.c + + +Local variable name example: localVarName (no underscores) + +Constants and macros are ALL UPPERCASE, with _ between words + +Global vars not allowed. + +Function name examples: + glFooBar() - a public GL entry point + _mesa_FooBar() - the internal immediate mode function + save_FooBar() - retained mode (display list) function in dlist.c + foo_bar() - a static (private) function + _mesa_foo_bar() - an internal Mesa function + + + +Writing a Device Driver +----------------------- + +XXX to do + + + +Making a New Mesa Release +------------------------- + +These are the instructions for making a new Mesa release. + +Be sure to do a "cvs update -d ." in the Mesa directory to +get all the latest files. + +Update the version strings in src/get.c, src-glu/glu.c, and +src/X/fakeglx.c to return the new Mesa version number. + +Edit the docs/RELNOTES file to document what's new in the release. +Edit the docs/VERSIONS file too. +Update the docs/IAFA-PACKAGE file. + +Edit the GNU configure stuff to change versions numbers as needed: +Update the version string (second argument) in the line +"AM_INIT_AUTOMAKE(Mesa, 3.3)". +Remove the leading `dnl' from the line "dnl AM_MAINTAINER_MODE". +For both LIBGL_VERSION and LIBGLU_VERSION (libGL and libGLU version) do: +* If the library source code has changed at all since the last + update, then increment REVISION (`C:R:A' becomes `C:R+1:A'). +* If any interfaces have been added, removed, or changed since the + last update, increment CURRENT, and set REVISION to 0. +* If any interfaces have been added since the last public release, + then increment AGE. +* If any interfaces have been removed since the last public release, + then set AGE to 0. + +Run "fixam -f" to disable automatic dependency tracking. +Run the bootstrap script to generate the configure script. +(Requires autoconf 2.13 and automake 1.4, available from ftp.gnu.org) + +Edit Make-config and change the MESA_MAJOR and/or MESA_MINOR versions. + +Edit Makefile.X11 and verify DIRECTORY is set correctly. The Mesa +sources must be in that directory (or there must be a symbolic link). + +Edit Makefile.X11 and verify that LIB_NAME and DEMO_NAME are correct. +If it's a beta release, be sure the bump up the beta release number. + +cp Makefile.X11 to Makefile so that the old-style Mesa makefiles +still work. ./configure will overwrite it if that's what the user runs. + +Make a symbolic link from $(DIRECTORY) to Mesa. For example, +ln -s Mesa Mesa-3.3 This is needed in order to make a correct +tar file in the next step. + +Make the distribution files. From inside the Mesa directory: + make -f Makefile.X11 lib_tar + make -f Makefile.X11 demo_tar + make -f Makefile.X11 lib_zip + make -f Makefile.X11 demo_zip + +Copy the distribution files to a temporary directory, unpack them, +compile everything, and run some demos to be sure everything works. + +Upload the *.tar.gz and *.zip files to ftp.mesa3d.org + +Update the web site. CJ Beyer (cj@styx.phy.vanderbilt.edu) can +help with this and uploading to the ftp site. + +Make the announcement to mesa-dev@mesa3d.org, mesa@iqm.unicamp.br, +mesa-announce@iqm.unicamp.br and other sites. + + +---------------------------------------------------------------------- +$Id: DEVINFO,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/IAFA-PACKAGE b/xc/extras/Mesa/docs/IAFA-PACKAGE new file mode 100644 index 000000000..3e30cca76 --- /dev/null +++ b/xc/extras/Mesa/docs/IAFA-PACKAGE @@ -0,0 +1,9 @@ +Title: The Mesa 3-D graphics library +Version: 3.4 +Description: A 3-D graphics library which uses the OpenGL API. +Author: Brian Paul brianp@mesa3d.org +Maintained-by: Brian Paul brianp@mesa3d.org +Maintained-at: www.mesa3d.org +Platforms: Almost anything with an ANSI C compiler. +Copying-Policy: Freely Redistributable +Keywords: Mesa, OpenGL, 3-D graphics library diff --git a/xc/extras/Mesa/docs/INSTALL b/xc/extras/Mesa/docs/INSTALL new file mode 100644 index 000000000..bf6984eb6 --- /dev/null +++ b/xc/extras/Mesa/docs/INSTALL @@ -0,0 +1,236 @@ + + Mesa compilation and installation instructions + + +Mesa now uses GNU autoconfig for compilation and installation. +Previous (before version 3.1), traditional Makefiles were used to +compile Mesa. + +You now have the choice of how you want to build Mesa: + + NEW-STYLE: Basically, type "./configure" followed by "make" + This should work on most Unix-like operating systems. + For more details, see the NEW-STYLE section below. + + OLD-STYLE: Simply type "make" and you'll see a list of supported + system configurations. Pick one and type "make <config>" + For more details, see the OLD-STYLE section below. + + + +=============================================================================== +NEW-STYLE Mesa compilation and installation instructions begin here +------------------------------------------------------------------------------- + +0) If you've downloaded Mesa via CVS there will not be a "configure" + script. You'll have to run the "bootstrap" script first. This script + may not work on any OS other than Linux. + +1) Run the configure script + + ./configure [options] + +For Linux, it is recommended that you use: + ./configure --prefix=/usr +So that the headers and libs are located according to the Linux/OpenGL +standard spec at http://oss.sgi.com/projects/ogl-sample/ABI/ + +Possible options are: + +--prefix=DIR + The toplevel directory of the hierachy in which Mesa + will be installed (DIR/include,DIR/lib etc.). + The default is "/usr/local". + +--sysconfdir=DIR + The directory where Mesa configuration files + will be stored. The default is "$prefix/etc". + You may want to overwrite the default with --sysconfdir=/etc. + +--enable-static + Enable building of static libraries. + Static libraries are NOT built by default. + +--disable-shared + Disable building of shared libraries. + Shared libraries are built by default. + +--with-pic +--without-pic + In normal operation, libtool will build shared libraries from + PIC objects and static archives from non-PIC objects, except where one + or the other is not provided by the target host. By specifying + --with-pic you are asking libtool to build static archives from + PIC objects, and similarly by specifying --without-pic you are asking + libtool to build shared libraries from non-PIC objects. + libtool will only honour this flag where it will produce a + working library, otherwise it reverts to the default. + +--enable-debug + Enable debugging messages (disabled by default). + +--enable-profile + Enable profiling (disabled by default). + +--disable-optimize + Disable extra optimizations (enabled by default, + i.e., optimize for maximum performance). + +--enable-warn + Enable extended compiler warnings (disabled by default). + +--enable-x86[=ARG] +--disable-x86 + Enable/disable x86 assembler support to speed up Mesa + (autodetected by default). You may set `on' or `off'. + +--enable-3dnow[=ARG] +--disable-3dnow + Enable/disable 3Dnow support to speed up Mesa + (autodetected by default). You may set `on' or `off'. + +--enable-mmx[=ARG] +--disable-mmx + Enable/disable MMX support to speed up Mesa + (autodetected by default). You may set `on' or `off'. + +--enable-sse[=ARG] +--disable-sse + Enable/disable SSE support to speed up Mesa + (autodetected by default). You may set `on' or `off'. + If you have a PentiumIII and want to use SSE make sure you have the + PIII Linux kernel-patch installed or things will fail! + You can get the patch from http://www.redhat.com/~dledford/linux_kernel.html + +--with-glide[=DIR] +--without-glide + Enable/disable support for Glide (autodetected by default). + DIR is the installation directory of Glide. + If Glide cannot be found, the driver won't be built. + +--with-glut[=DIR] +--without-glut + Don't/use already-installed GLUT (autodetected by default). + DIR is the installation directory of Glut. + If GLUT cannot be found, the version shipped with Mesa will be built. + +--with-ggi[=DIR] +--without-ggi + Enable/disable support for GGI (autodetected by default). + DIR is the installation directory of GGI. + If GGI cannot be found, the driver won't be built. + +--disable-ggi-fbdev + Don't build the GGI fbdev target (autodetected by default). + +--disable-ggi-genkgi + Don't build the GGI generic KGI driver (autodetected by default). + +--disable-ggi-savage4 + Don't build the GGI Savage4 KGI driver (autodetected by default). + +--disable-osmesa + Disable OSmesa (offscreen rendering) support (enabled by default). + +--with-svga[=DIR] +--without-svga + Enable/disable support for SVGALib (autodetected by default). + DIR is the installation directory of SVGALib. + If SVGALib cannot be found, the driver won't be built. + +--x-includes=DIR + Search for the X include files in DIR. + +--x-libraries=DIR + Search for the X library files in DIR. + +User specific compiler options can be set using the shell variable +CFLAGS. For instance, + CFLAGS="-g -O2" ./configure +(on some systems: env CFLAGS="-g -O2" ./configure) +sets the compiler flags to "-g -O2". + +For more options run "./configure --help" and read INSTALL.GNU. + + +2) To build the Mesa libraries run: + + make + +Optionally, you can strip the libraries using + + make strip + +Now make sure that you have the permissions to install Mesa in the +specified directories, for example, by becoming super user ("su") +Then run: + + make install + +Mesa is now installed. +Please don't move the installed files but rerun all installation +steps if you want to use other directories. + + +3) To test whether Mesa works properly you might want to run the Mesa demos: + + make check + +Builds all demos. + + make exec + +Builds and executes all demos. + + + + + + +=============================================================================== +OLD-STYLE Mesa compilation and installation instructions begin here +------------------------------------------------------------------------------- + +To build Mesa on most Unix-like operations systems, start by typing +"make" alone. You'll see a list of supported system configurations. +Choose one, call it <config>, type "make <config>". + +For system-specific information check out these files in the docs/ +directory: + + System README file + ----------------- ------------ + Unix/X11 README.X11 + Windows 95/N% README.WIN32 + DOS README.DOS + Linux/Windows w/ 3Dfx hardware README.3DFX + Linux with GGI README.GGI + Linux with threading README.MITS + Amigas with Amiwin README.AMIWIN + BeOS README.BEOS + LynxOS README.LYNXOS + SciTech MGL README.MGL + IBM OS/2 README.OS2 + Windows w/ S3 Virge hardware README.VIRGE + VMS README.VMS + Allegro DJGPP README.DJA + Direct3D driver README.D3D + + +Header and library files: + After you've compiled Mesa and tried the demos I recommend the following + procedure for "installing" Mesa on Unix systems. This is in compliance + with the Linux/OpenGL standard base specification. + See http://oss.sgi.com/projects/ogl-sample/ABI/ + + Copy the Mesa include/GL directory to /usr/local/include: + cp -r include/GL /usr/include + + Copy the Mesa library files to /usr/local/lib: + cp lib/* /usr/lib + + (actually, use "cp -d" on Linux to preserve symbolic links) + + +=============================================================================== +$Id: INSTALL,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/INSTALL.GNU b/xc/extras/Mesa/docs/INSTALL.GNU new file mode 100644 index 000000000..b42a17ac4 --- /dev/null +++ b/xc/extras/Mesa/docs/INSTALL.GNU @@ -0,0 +1,182 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. diff --git a/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec b/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec new file mode 100644 index 000000000..ad6b00c05 --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_copy_sub_buffer.spec @@ -0,0 +1,88 @@ +Name + + MESA_copy_sub_buffer + +Name Strings + + GLX_MESA_copy_sub_buffer + +Contact + + Brian Paul (brian 'at' mesa3d.org) + +Status + + Shipping since Mesa 2.6 in February, 1998. + +Version + + Last Modified Date: 8 June 2000 + +Number + + 215 + +Dependencies + + OpenGL 1.0 or later is required. + GLX 1.0 or later is required. + +Overview + + The glxCopySubBufferMESA() function copies a rectangular region + of the back color buffer to the front color buffer. This can be + used to quickly repaint 3D windows in response to expose events + when the back color buffer cannot be damaged by other windows. + +IP Status + + Open-source; freely implementable. + +Issues + + None. + +New Procedures and Functions + + void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, + int x, int y, int width, int height ); + +New Tokens + + None. + +Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) + + Add to section 3.3.10 Double Buffering: + + The function + + void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, + int x, int y, int width, int height ); + + may be used to copy a rectangular region of the back color buffer to + the front color buffer. This can be used to quickly repaint 3D windows + in response to expose events when the back color buffer cannot be + damaged by other windows. + + <x> and <y> indicates the lower-left corner of the region to copy and + <width> and <height> indicate the size in pixels. Coordinate (0,0) + corresponds to the lower-left pixel of the window, like glReadPixels. + +GLX Protocol + + None at this time. The extension is implemented in terms of ordinary + Xlib protocol inside of Mesa. + +Errors + + None. + +New State + + None. + +Revision History + + 8 June 2000 - initial specification + diff --git a/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec b/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec new file mode 100644 index 000000000..56a2c7c82 --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_pixmap_colormap.spec @@ -0,0 +1,90 @@ +Name + + MESA_pixmap_colormap + +Name Strings + + GLX_MESA_pixmap_colormap + +Contact + + Brian Paul (brian 'at' mesa3d.org) + +Status + + Shipping since Mesa 1.2.8 in May, 1996. + +Version + + Last Modified Date: 8 June 2000 + +Number + + 216 + +Dependencies + + OpenGL 1.0 or later is required. + GLX 1.0 or later is required. + +Overview + + Since Mesa allows RGB rendering into drawables with PseudoColor, + StaticColor, GrayScale and StaticGray visuals, Mesa needs a colormap + in order to compute pixel values during rendering. + + The colormap associated with a window can be queried with normal + Xlib functions but there is no colormap associated with pixmaps. + + The glXCreateGLXPixmapMESA function is an alternative to glXCreateGLXPixmap + which allows specification of a colormap. + +IP Status + + Open-source; freely implementable. + +Issues + + None. + +New Procedures and Functions + + GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, + Pixmap pixmap, Colormap cmap ); + +New Tokens + + None. + +Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) + + Add to section 3.4.2 Off Screen Rendering + + The Mesa implementation of GLX allows RGB rendering into X windows and + pixmaps of any visual class, not just TrueColor or DirectColor. In order + to compute pixel values from RGB values Mesa requires a colormap. + + The function + + GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, + Pixmap pixmap, Colormap cmap ); + + allows one to create a GLXPixmap with a specific colormap. The image + rendered into the pixmap may then be copied to a window (which uses the + same colormap and visual) with the expected results. + +GLX Protocol + + None since this is a client-side extension. + +Errors + + None. + +New State + + None. + +Revision History + + 8 June 2000 - initial specification diff --git a/xc/extras/Mesa/docs/MESA_release_buffers.spec b/xc/extras/Mesa/docs/MESA_release_buffers.spec new file mode 100644 index 000000000..34de0146c --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_release_buffers.spec @@ -0,0 +1,85 @@ +Name + + MESA_release_buffers + +Name Strings + + GLX_MESA_release_buffers + +Contact + + Brian Paul (brian 'at' mesa3d.org) + +Status + + Shipping since Mesa 2.0 in October, 1996. + +Version + + Last Modified Date: 8 June 2000 + +Number + + 217 + +Dependencies + + OpenGL 1.0 or later is required. + GLX 1.0 or later is required. + +Overview + + Mesa's implementation of GLX is entirely implemented on the client side. + Therefore, Mesa cannot immediately detect when an X window or pixmap is + destroyed in order to free any ancilliary data associated with the window + or pixmap. + + The glxMesaReleaseBuffers() function can be used to explicitly indicate + when the back color buffer, depth buffer, stencil buffer, and/or accum- + ulation buffer associated with a drawable can be freed. + +IP Status + + Open-source; freely implementable. + +Issues + + None. + +New Procedures and Functions + + Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); + +New Tokens + + None. + +Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) + + The function + + Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); + + causes all software ancilliary buffers (back buffer, depth, stencil, + accum, etc) associated with the named drawable to be immediately + deallocated. True is returned if <d> is a valid Mesa GLX drawable, + else False is returned. After calling glXReleaseBuffersMESA, the + drawable should no longer be used for GL rendering. Results of + attempting to do so are undefined. + + +GLX Protocol + + None, since this is a client-side operation. + +Errors + + None. + +New State + + None. + +Revision History + + 8 June 2000 - initial specification diff --git a/xc/extras/Mesa/docs/MESA_resize_buffers.spec b/xc/extras/Mesa/docs/MESA_resize_buffers.spec new file mode 100644 index 000000000..6225ba652 --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_resize_buffers.spec @@ -0,0 +1,82 @@ +Name + + MESA_resize_buffers + +Name Strings + + GL_MESA_resize_buffers + +Contact + + Brian Paul, brianp 'at' mesa3d.org + +Status + + Shipping (since Mesa version 2.2) + +Version + + $Id: MESA_resize_buffers.spec,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ + +Number + + 196 + +Dependencies + + Mesa 2.2 or later is required. + +Overview + + Mesa is often used as a client library with no integration with + the computer's window system (an X server, for example). And since + Mesa does not have an event loop nor window system callbacks, it + cannot properly respond to window system events. In particular, + Mesa cannot automatically detect when a window has been resized. + + Mesa's glViewport command queries the current window size and updates + its internal data structors accordingly. This normally works fine + since most applications call glViewport in responce to window size + changes. + + In some situations, however, the application may not call glViewport + when a window size changes but would still like Mesa to adjust to + the new window size. This extension exports a new function to solve + this problem. + +New Procedures and Functions + + void glResizeBuffersMESA( void ) + +New Tokens + + none + +Additions to the OpenGL Specification (no particular section) + + The glResizeBuffersMESA command may be called when the client + determines that a window has been resized. Calling + glResizeBuffersMESA causes Mesa to query the current window size + and adjust its internal data structures. This may include + reallocating depth, stencil, alpha and accumulation buffers. + +Additions to the AGL/GLX/WGL Specifications + + None + +Errors + + INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen + Begin and End. + +New State + + None. + +New Implementation Dependent State + + None. + +Revision History + + * Revision 1.0 - Initial specification diff --git a/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec b/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec new file mode 100644 index 000000000..baea030c1 --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_set_3dfx_mode.spec @@ -0,0 +1,85 @@ +Name + + MESA_set_3dfx_mode + +Name Strings + + GLX_MESA_set_3dfx_mode + +Contact + + Brian Paul (brian 'at' mesa3d.org) + +Status + + Shipping since Mesa 2.6 in February, 1998. + +Version + + Last Modified Date: 8 June 2000 + +Number + + 218 + +Dependencies + + OpenGL 1.0 or later is required. + GLX 1.0 or later is required. + +Overview + + The Mesa Glide driver allows full-screen rendering or rendering into + an X window. The glXSet3DfxModeMESA() function allows an application + to switch between full-screen and windowed rendering. + +IP Status + + Open-source; freely implementable. + +Issues + + None. + +New Procedures and Functions + + GLboolean glXSet3DfxModeMESA( GLint mode ); + +New Tokens + + GLX_3DFX_WINDOW_MODE_MESA 0x1 + GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 + +Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) + + The Mesa Glide device driver allows either rendering in full-screen + mode or rendering into an X window. An application can switch between + full-screen and window rendering with the command: + + GLboolean glXSet3DfxModeMESA( GLint mode ); + + <mode> may either be GLX_3DFX_WINDOW_MODE_MESA to indicate window + rendering or GLX_3DFX_FULLSCREEN_MODE_MESA to indicate full-screen mode. + + GL_TRUE is returned if <mode> is valid and the operation completed + normally. GL_FALSE is returned if <mode> is invalid or if the Glide + driver is not being used. + + Note that only one drawable and context can be created at any given + time with the Mesa Glide driver. + +GLX Protocol + + None since this is a client-side extension. + +Errors + + None. + +New State + + None. + +Revision History + + 8 June 2000 - initial specification diff --git a/xc/extras/Mesa/docs/MESA_window_pos.spec b/xc/extras/Mesa/docs/MESA_window_pos.spec new file mode 100644 index 000000000..da95d9287 --- /dev/null +++ b/xc/extras/Mesa/docs/MESA_window_pos.spec @@ -0,0 +1,127 @@ +Name + + MESA_window_pos + +Name Strings + + GL_MESA_window_pos + +Contact + + Brian Paul, brianp 'at' mesa3d.org + +Status + + Shipping (since Mesa version 1.2.8) + +Version + + $Id: MESA_window_pos.spec,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ + +Number + + 197 + +Dependencies + + OpenGL 1.0 is required. + The extension is written against the OpenGL 1.2 Specification + +Overview + + In order to set the current raster position to a specific window + coordinate with the RasterPos command, the modelview matrix, projection + matrix and viewport must be set very carefully. Furthermore, if the + desired window coordinate is outside of the window's bounds one must + rely on a subtle side-effect of the Bitmap command in order to circumvent + frustum clipping. + + This extension provides a set of functions to directly set the + current raster position, bypassing the modelview matrix, the + projection matrix and the viewport to window mapping. Furthermore, + clip testing is not performed. + + This greatly simplifies the process of setting the current raster + position to a specific window coordinate prior to calling DrawPixels, + CopyPixels or Bitmap. + +New Procedures and Functions + + void WindowPos2dMESA(double x, double y) + void WindowPos2fMESA(float x, float y) + void WindowPos2iMESA(int x, int y) + void WindowPos2sMESA(short x, short y) + void WindowPos2ivMESA(const int *p) + void WindowPos2svMESA(const short *p) + void WindowPos2fvMESA(const float *p) + void WindowPos2dvMESA(const double *p) + void WindowPos3iMESA(int x, int y, int z) + void WindowPos3sMESA(short x, short y, short z) + void WindowPos3fMESA(float x, float y, float z) + void WindowPos3dMESA(double x, double y, double z) + void WindowPos3ivMESA(const int *p) + void WindowPos3svMESA(const short *p) + void WindowPos3fvMESA(const float *p) + void WindowPos3dvMESA(const double *p) + void WindowPos4iMESA(int x, int y, int z, int w) + void WindowPos4sMESA(short x, short y, short z, short w) + void WindowPos4fMESA(float x, float y, float z, float w) + void WindowPos4dMESA(double x, double y, double z, double ) + void WindowPos4ivMESA(const int *p) + void WindowPos4svMESA(const short *p) + void WindowPos4fvMESA(const float *p) + void WindowPos4dvMESA(const double *p) + +New Tokens + + none + +Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) + + - (2.12, p. 41) Insert after third paragraph: + + Alternately, the current raster position may be set by one of the + WindowPosMESA commands: + + void WindowPos{234}{sidf}MESA( T coords ); + void WindowPos{234}{sidf}vMESA( T coords ); + + WindosPos4MESA takes four values indicating x, y, z, and w. + WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only + x, y, and z with w implicitly set to 1 (or only x and y with z + implicititly set to 0 and w implicitly set to 1). + + WindowPosMESA operates like RasterPos except that the current modelview + matrix, projection matrix and viewport parameters are ignored and the + clip test operation always passes. The current raster position values + are directly set to the parameters passed to WindowPosMESA. The current + color, color index and texture coordinate update the current raster + position's associated data. + +Additions to the AGL/GLX/WGL Specifications + + None + +GLX Protocol + + Not specified at this time. However, a protocol message very similar + to that of RasterPos is expected. + +Errors + + INVALID_OPERATION is generated if WindowPosMESA is called betweeen + Begin and End. + +New State + + None. + +New Implementation Dependent State + + None. + +Revision History + + * Revision 1.0 - Initial specification + * Revision 1.1 - Minor clean-up (7 Jan 2000, Brian Paul) + diff --git a/xc/extras/Mesa/docs/README b/xc/extras/Mesa/docs/README new file mode 100644 index 000000000..38172e0db --- /dev/null +++ b/xc/extras/Mesa/docs/README @@ -0,0 +1,513 @@ + + Mesa 3.4 + (stable release version) + + Copyright (C) 1995-2000 Brian Paul + + www.mesa3d.org + + +Disclaimer +========== + +Mesa is a 3-D graphics library with an API which is very similar to that +of OpenGL*. To the extent that Mesa utilizes the OpenGL command syntax +or state machine, it is being used with authorization from Silicon Graphics, +Inc. However, the author makes no claim that Mesa is in any way a +compatible replacement for OpenGL or associated with Silicon Graphics, Inc. +Those who want a licensed implementation of OpenGL should contact a licensed +vendor. + +While Mesa is not a licensed OpenGL implementation, it is currently +being tested with the OpenGL conformance tests. For the current +conformance status see the CONFORM file included in the Mesa distribution. + +* OpenGL(R) is a registered trademark of Silicon Graphics, Inc. + + + +Author +====== + +Brian Paul +brian@mesa3d.org + + + +Copyright Information +===================== + +See the docs/COPYRIGHT file. + + + +Introduction +============ + +While Mesa uses the OpenGL API and mimics its semantics, it is +important to understand that Mesa is not a real implementation of OpenGL +since it is not licensed. That said, Mesa is still a viable alternative +to OpenGL. Most OpenGL applications should run with Mesa without code +changes. + +The first six years of Mesa development were done during my spare time +from August 1993 to August 1999. Now, much of the Mesa development +work is done during my working hours with Precision Insight, Inc. + +The core library was originally written on an Amiga using the DCC compiler. +Later, development was moved to an SGI workstation. Current development +is done on PC/Linux systems. + +Mesa works on most Unix workstations with ANSI C and X11. There are also +drivers for Amiga, Microsoft Windows, Macintosh, MS DOS, NeXT, BeOS and +other systems. Unix/X11 is still the best-supported platform. + +Since the OpenGL API is used, OpenGL documentation can serve as the +documentation for Mesa's core functions. Visit http://www.opengl.org/ +for extensive OpenGL information. + +The primary design goal of this library has been correctness. Performance +has been a secondary (but still very important!) priority. At this point, +most common rendering operations have been optimized a great deal. +However, if you find an obscure code path that isn't as fast as you +think it could be (like glDrawPixels with lookup tables and a crazy +blend mode) send a note to the author; it might not be hard to improve +the path. Better yet, try optimizing that path yourself and send a patch. + + + +Getting the software +==================== + +Mesa can be downloaded from +http://sourceforge.net/project/filelist.php?group_id=3 or from +http://www.mesa3d.org/ + +Since version 2.3, Mesa is distributed in two pieces: main library code +and demos. If you're upgrading from a previous version of Mesa or you're not +interested in the demos you can just download the core Mesa archive file. + +Mesa is available in at least three archive formats: + +1. GNU zip/tar + + Download MesaLib-3.4.tar.gz and optionally MesaDemos-3.4.tar.gz + Unpack with: + gzcat MesaLib-3.4.tar.gz | tar xf - + gzcat MesaDemos-3.4.tar.gz | tar xf - + or + gunzip MesaLib-3.4.tar.gz ; tar xf MesaLib-3.4.tar + gunzip MesaDemos-3.4.tar.gz ; tar xf MesaLib-3.4.tar + or + tar zxf MesaLib-3.4.tar.gz + tar zxf MesaDemos-3.4.tar.gz + + If you don't have gzcat try zcat instead. + +2. Unix compressed/tar + + Download MesaLib-3.4.tar.Z and optionally MesaDemos-3.4.tar.Z + Unpack with: + zcat MesaLib-3.4.tar.Z | tar xf - + zcat MesaDemos-3.4.tar.Z | tar xf - + +3. ZIP format + + Download MesaLib-3.4.zip and optionally MesaDemos-3.4.zip + Unpack with: + unzip MesaLib-3.4.zip + unzip MesaDemos-3.4.zip + + +Note, there may be other package formats on the Mesa ftp/web site. + + +After unpacking you'll have these files (and more): + +docs/README - this file +docs/README.* - detailed information for specific OS/hardware systems +docs/COPYRIGHT - copyright info +docs/VERSIONS - version history +docs/RELNOTES - release notes for the new version +docs/CONFORM - results of conformance testing +Makefile.X11 - "old" top-level Makefile for X11-based systems +Make-config - "old" system configurations used by the Makefiles +bin/mklib.* - shell scripts for making shared libraries for some systems +include/ - client include files +lib/ - client libraries, created during installation +src/ - source code for core library +src-glu/ - source code for utility library +util/ - handly utility functions +widgets-mesa/ - Mesa widgets for Xt/Motif +widgets-sgi/ - SGI OpenGL widgets for Xt/Motif + +and if you downloaded and unpacked the demos: + +src-glut/ - source code for GLUT toolkit +demos/ - GLUT demos +xdemos/ - X11 and SVGA demo programs +samples/ - sample OpenGL programs from SGI +book/ - example programs from the OpenGL Programming Guide, + converted to GLUT by Mark Kilgard, from GLUT distribution. +images/ - image files +3Dfx/ - 3Dfx demos and tests +mtdemos/ - multi-threading demos + + + +GLUT +==== + +Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit). +GLUT is built automatically on systems which support it. + +The GLUT tests, demos, examples, etc are not included, just the main library. +To obtain the latest complete release of GLUT please visit +http://reality.sgi.com/employees/mjk_asd/glut3/glut3.html + + + +Compiling and Installation +========================== + +See the INSTALL file for instructions. + + + +Using the Library +================= + +Performance tips for software rendering: + 1. Turn off smooth shading when you don't need it (glShadeModel) + 2. Turn off depth buffering when you don't need it. + 3. Turn off dithering when not needed. + 4. Use double buffering as it's often faster than single buffering + 5. Compile in the X Shared Memory extension option if it's supported + on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for + your system in the Make-config file. + 6. Recompile Mesa with more optimization if possible. + 7. Try to maximize the amount of drawing done between glBegin/glEnd pairs. + 8. Use the MESA_BACK_BUFFER variable to find best performance in double + buffered mode. (X users only) + 9. Optimized polygon rasterizers are employed when: + rendering into back buffer which is an XImage + RGB mode, not grayscale, not monochrome + depth buffering is GL_LESS, or disabled + flat or smooth shading + dithered or non-dithered + no other rasterization operations enabled (blending, stencil, etc) + 10. Optimized line drawing is employed when: + rendering into back buffer which is an XImage + RGB mode, not grayscale, not monochrome + depth buffering is GL_LESS or disabled + flat shading + dithered or non-dithered + no other rasterization operations enabled (blending, stencil, etc) + 11. Textured polygons are fastest when: + using a 3-component (RGB), 2-D texture + minification and magnification filters are GL_NEAREST + texture coordinate wrap modes for S and T are GL_REPEAT + GL_DECAL environment mode + glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST ) + depth buffering is GL_LESS or disabled + 12. Lighting is fastest when: + Two-sided lighting is disabled + GL_LIGHT_MODEL_LOCAL_VIEWER is false + GL_COLOR_MATERIAL is disabled + No spot lights are used (all GL_SPOT_CUTOFFs are 180.0) + No local lights are used (all position W's are 0.0) + All material and light coefficients are >= zero + 13. XFree86 users: if you want to use 24-bit color try starting your + X server in 32-bit per pixel mode for better performance. That is, + start your X server with + startx -- -bpp 32 + instead of + startx -- -bpp 24 + 14. Try disabling dithering with the MESA_NO_DITHER environment variable. + If this env var is defined Mesa will disable dithering and the + command glEnable(GL_DITHER) will be ignored. + + +Debugging: + Normally Mesa records but does not notify the user of errors. It is up + to the application to call glGetError to check for errors. Mesa supports + an environment variable, MESA_DEBUG, to help with debugging. If MESA_DEBUG + is defined, a message will be printed to stdout whenever an error occurs. + + More extensive error checking is done when Mesa is compiled with the + DEBUG symbol defined. You'll have to edit the Make-config file and + add -DDEBUG to the CFLAGS line for your system configuration. You may + also want to replace any optimization flags with the -g flag so you can + use your debugger. After you've edited Make-config type 'make clean' + before recompiling. + + In your debugger you can set a breakpoint in gl_error() to trap Mesa + errors. + + There is a display list printing/debugging facility. See the end of + src/dlist.c for details. + + +Fortran bindings: + Fortan bindings are no longer included with Mesa. William F. Mitchell + (william.mitchell@nist.gov) has developed a new set of Mesa/OpenGL and + GLUT bindings for Fortran. See http://math.nist.gov/f90gl for more + information. + + +Off-screen rendering: + Mesa 1.2.4 introduced off-screen rendering, a facility for generating + 3-D imagery without having to open a window on your display. Mesa's + simple off-screen rendering interface is completely operating system + and window system independent so programs which use off-screen rendering + should be very portable. This new feature effectively enables you to + use Mesa as an off-line, batch-oriented renderer. + + The "OSMesa" API provides 3 functions for making off-screen renderings: + OSMesaCreateContext(), OSMesaMakeCurrent(), and OSMesaDestroyContext(). + See the Mesa/include/GL/osmesa.h header for more information. See the + demos/osdemo.c file for an example program. There is no facility for + writing images to files. + + If you want to generate large images (larger than 1280x1024) you'll + have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT + then recompile Mesa. Image size should only be limited by available + memory. + + +Profiling (may no longer work in Mesa 3.1 or later, sorry): + Mesa 1.2.6 introduced a simple profiling facility. It counts and + measures the time spent in a number of important rendering operations + and prints the information in a report before your program exits. + + By default, profiling is disabled. To enable it, add -DPROFILE to + the appropriate CFLAGS entry in the Make-config file, then recompile + Mesa. In general, you should only enable profiling during program + development to gain insight into Mesa's performance. Mesa runs a bit + slower when profiling is enabled because it requires frequent polling + of the system clock. + + The profiling report will be printed when glXDestroyContext is called + _if_ the MESA_PROFILE environment variable is set. You must be sure + glXDestroyContext is called before exiting to get the profile report. + The report will be printed to stdout and includes: + + glBegin/glEnd - number of glBegin/glEnd pairs called, total time, + and rate in pairs/second. + vertexes transformed - number of vertices transformed, lit, clip- + tested, fogged, and mapped to window coordinates, total time, + and rate in vertexes/second. + points rasterized - number of points drawn, time, and rate. + lines rasterized - number of lines drawn, time, and rate. + polygons rasterized - number of polygons drawn, time and rate. + overhead - time between glBegin/glEnd not accounted for by vertexes, + points, lines, and polygons. This is time spent executing + glVertex, glNormal, glColor, etc, clipping, primitive assembly, + and user code between glBegin/glEnd. + glClear - number of glClears executed, total time and clears/second. + SwapBuffers - number of swaps executed, total time and swaps/second. + + Note that the real point, line, and polygon rates should be computed by + adding in the vertex transformation and overhead time factors. + + +Extensions: + Mesa supports quite a few OpenGL extensions. The set of available + extensions depends on the device driver you're using. Run the glinfo + program to learn which extensions are available on your computer. + + There are a few Mesa-specific extensions: + + GL_MESA_window_pos + + This extension adds the glWindowPos*MESA() functions. These functions + are convenient alternatives to glRasterPos*() because they set the + current raster position to a specific window coordinate, bypassing the + usual modelview, projection and viewport transformations. This is + especially useful for setting the position for glDrawPixels() or + glBitmap() to a specific window coordinate. + + See the docs/MESA_window_pos.spec file for details. + + GL_MESA_resize_buffers + + This extension adds the glResizeBuffersMESA() function. When this + function is called, Mesa checks if the color buffer (window) has + been resized. If it has, Mesa reallocates the ancillary (depth, + stencil, accum) buffers. + + Normally, Mesa checks for window size changes whenever glViewport() + is called. In some applications it may not be appropriate to call + glViewport() when the window is resized. Such applications should + call glResizeBuffersMESA() instead so the ancillary buffers are + correctly updated. + + See the docs/MESA_resize_buffers.spec file for more details. + This extension is new in version 2.2. + + +Runtime Configuration File: + See the CONFIG file for information on how to setup a Mesa runtime + config file. + + +Version 2.x features: + Version 2.x of Mesa implements the OpenGL 1.1 API with the following + new features. + + Texture mapping: + glAreTexturesResident + glBindTexture + glCopyTexImage1D + glCopyTexImage2D + glCopyTexSubImage1D + glCopyTexSubImage2D + glDeleteTextures + glGenTextures + glIsTexture + glPrioritizeTextures + glTexSubImage1D + glTexSubImage2D + + Vertex Arrays: + glArrayElement + glColorPointer + glDrawElements + glEdgeFlagPointer + glIndexPointer + glInterleavedArrays + glNormalPointer + glTexCoordPointer + glVertexPointer + + Client state management: + glDisableClientState + glEnableClientState + glPopClientAttrib + glPushClientAttrib + + Misc: + glGetPointer + glIndexub + glIndexubv + glPolygonOffset + + +Version 3.x features: + Version 3.x of Mesa implements the OpenGL 1.2 API with the following + new features: + + BGR, BGRA and packed pixel formats + New texture border clamp mode + glDrawRangeElements() + standard 3-D texturing + advanced MIPMAP control + separate specular color interpolation + + +Summary of environment variables: + MESA_DEBUG - if defined, error messages are printed to stderr + MESA_NO_DITHER - disable dithering, overriding glEnable(GL_DITHER) + MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) + MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) + MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) + MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) + MESA_GAMMA - gamma correction coefficients (X only) + MESA_PROFILE - enable reporting of performance measurements + MESA_XSYNC - enable synchronous X behavior (for X debugging only) + + + +Mailing List +============ + +Visit the Mesa web site at http://www.mesa3d.org to join the mailing +lists. There is a user's list and developer's list. + + + +Reporting Bugs +============== + +If you think you've found a bug in Mesa: + + 1. Check if there's a new version of Mesa to download. + + 2. Check if the bug has already been reported in the Mesa bug + database at http://www.mesa3d.org + + 3. If you've found a new bug, submit it to the bug database. + Provide as much information as possible! Check back on the + bug report from time to time to monitor its status. + + 4. Please provide small test programs when possible. + + +The following people have made contributions to the Mesa project +and may be able to help with specific problems: + +Area Contact +---------------------- ------------------------------------------- +GLU polygon tessellator Gareth Hugues gareth@precisioninsight +GLU NURBS Bogdan Sikorski bogdan@cira.it +Evaluators Bernd Barsuhn bernd@berlin.muc.de +Xt/Motif widgets Thorsten Ohl ohl@crunch.ikp.physik.th-darmstadt.de + and Jeroen van der Zijp jvz@cyberia.cfdrc.com +Fortran bindings William Mitchell william.mitchell@nist.gov +Amiga driver Stefan Zivkovic d94sz@efd.lth.se +Amiwin driver Victor Ng-Thow-Hing victorng@dgp.toronto.edu +Macintosh driver Miklos Fazekas boga@augusta.elte.hu +NeXT driver Pascal Thibaudeau pthibaud@frbdx11.cribx1.u-bordeaux.fr +OS/2 driver Darren Abbott abbott@hiwaay.net +VMS support Jouk Jansen joukj@crys.chem.uva.nl +Windows 95/NT driver Theodore A. Jump tjump@spgs.com +MS-DOS driver Charlie Wallace cwallace@dreamworks.com +BeOS driver Tinic Uro 5uro@informatik.uni-hamburg.de +GLX encoder/decoder Steven Parker sparker@taz.cs.utah.edu +SciTech MGL driver Kendall Bennett KendallB@scitechsoft.com +Cygnus Win32 support No maintainer. Any volunteers? +S3 Virge driver rkoduri@s3.com or pcgamedev@s3.com +Allegro DJGPP driver Bernhard Tschirren bernie-t@geocities.com +Direct3D driver Leigh McRae leigh@altsoftware.com +GGI driver Jon Taylor jtaylor@creaf.com +Mailing list help Pedro Vazquez vazquez@iqm.unicamp.br + +None of the people on this list are under any obligation to respond to bug +reports. However, they have been pretty helpful so far. + + + +Why is it the library called Mesa? +================================== + +Why not? More obvious names were considered but had to be rejected: +FreeGL (too similar to the trademarked name OpenGL), Free3D (too similar +to DEC's Open3D). Also, I'm tired of acronyms. + + + +Contributors +============ + +Many people have contributed to Mesa. I really appreciate the help! +See the Mesa web site for a list of past and current contributors. + +If you want to help with Mesa, first join the Mesa developer's +mailing list. Then post a message explaining what you might like +to help with. The Mesa web page has a list of a few work items +which you may consider. + +Anyone is welcome to contribute code to the Mesa project, provided you +agree to the copyright terms of the relevant code. See the COPYRIGHT +file. + +If you're contribution code to the Mesa library itself: + 1. Try to write clean code (uniform indentation, comments, meaningful + identifiers, etc). It must be readable and maintainable! + 2. Test your code. On several occations I've incorporated code from + users which later turned out to have bugs. Now, I'm pretty hesitant + to use code which doesn't look good. + + +-------------------------------------------------------------------------- +$Id: README,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/README.3DFX b/xc/extras/Mesa/docs/README.3DFX new file mode 100644 index 000000000..ad7cb7850 --- /dev/null +++ b/xc/extras/Mesa/docs/README.3DFX @@ -0,0 +1,598 @@ + + 3Dfx Glide device driver for Mesa 3.4 + (see below for FAQ) + + + +What do you need ? +------------------ + + - A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board + (Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.). + The Quantum3D Obsidian3D-2 X-24 requires some special env. setting + under Linux (more information in the "Useful Glide Environment + Variables"); + + - Mesa 3.1; + + - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). + The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not + compatible with the Glide 2.x so it doesn't work with the current + version of the driver; + + - A compiler supported by the Glide library (Micro$oft VC++ (tested), + Watcom (tested), GCC for Linux (tested), etc.); + + - A lot of patience, this is an alpha release. + + - It's nice to have two monitors - one for your normal graphics + card and one for your 3Dfx card. If something goes wrong with + an application using the 3Dfx hardware you can still see your + normal screen in order to recover. + + + +Tested on: +---------- + Windows 95 - David Bucciarelli + Windows NT - Henri Fousse + MS-DOS + Linux - Daryll Strauss, Brian Paul, David Bucciarelli + FreeBSD + BeOS - Duncan Wilcox + MacOS - Fazekas Miklos + + +What is able to do ? +-------------------- + + - It is able accelerate points, lines and polygon with flat + shading, gouraud shading, Z-buffer, texture mapping, blending, fog and + antialiasing (when possible). There is also the support for rendering + in a window with a slow trick for the Voodoo Graphics (available only + for Linux) and at full speed with the Voodoo Rush chipset. + Under Linux is also possible to switch on-the-fly between the fullscreen + and in-window rendering hack. + There is also the support for using more than one Voodoo Graphics in the + some application/PC (you can create one context for each board and use + multiple video outputs for driving monitors, videoprojectors or HMDs). + The driver is able to fallback to pure software rendering when afeature + isn't supported by the Voodoo hardware (however software rendering is + very slow compared to hardware supported rendering) + + + +How to compile: +--------------- + +Linux: +------ + Here are the basic steps for using the 3Dfx hardware with Mesa + on Linux: + + - You'll need the Glide library and headers. Mesa expects: + /usr/local/glide/include/*.h // all the Glide headers + /usr/local/glide/lib/libglide2x.so + + If your Glide libraries and headers are in a different directory + you'll have to modify the Mesa-config and mklib.glide files. + + - Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives; + + - If you're going to use a newer Mesa/Glide driver than v0.27 then + unpack the new driver archive over the Mesa directory. + + - In the Mesa-3.1 directory type "make linux-glide" + + - Compilation _should_ finish without errors; + + - Set your LD_LIBRARY_PATH environment variable so that the + libglide2x.so and Mesa library files can be found. For example: + setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib" + + - You'll have to run Glide-based programs as root or set the suid + bit on executables; + + - Try a demo: + cd gdemos + su + setenv MESA_GLX_FX f + ./gears (hit ESC to exit) + + - You can find the demos especially designed for the Voodoo driver in + in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile + everything). + +MacOS: +------ + Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html + +MS Windows: +----------- + + For the MSVC++: + - The glide2x.lib have to be in the default MSVC++ lib directory; + + - The Glide headers have to be in the default MSVC++ include directory; + + - You must have the vcvars32.bat script in your PATH; + + - Go to the directory Mesa-3.1 and run the mesafx.bat; + + - The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll}, + Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and + Voodoo demos); + + - At the end, you will be in the Mesa-3.1/3Dfx/demos directory; + + - Try some demo (fire.exe, teapot.exe, etc.) in order to check if + everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between + the Voodoo screen and the windows desktop); + + - Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the + some directory were you run your Mesa based applications. + + - I think that you can easy change the Makefile.fx files in order + to work with other kind of compilers; + + - To discover how open the 3Dfx screen, read the sources under + the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or + the Diego Picciani's wgl emulator. + + NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the + SP3, you could have some problem (you can disable optimization in order + solve these kind of problems). + + +Doing more with Mesa & Linux Glide: +----------------------------------- + + The MESA_GLX_FX environment variable can be used to coax most + GLX-based programs into using Glide (and the __GLUT library + is GLX-based__). + + Full-screen 3Dfx rendering: + --------------------------- + + 1. Set the MESA_GLX_FX variable to "fullscreen": + + ksh: + export MESA_GLX_FX = "fullscreen" + csh: + setenv MESA_GLX_FX fullscreen + + 2. As root, run a GLX-based program (any GLUT demo on Linux). + + 3. Be careful: once the 3Dfx screen appears you won't be able + to see the GLUT windows on your X display. This can make using + the mouse tricky! One solution is to hook up your 3Dfx card to + a second monitor. If you can do this then set these env vars + first: + + setenv SST_VGA_PASS 1 + setenv SST_NOSHUTDOWN + + or for the Voodoo2: + + setenv SSTV2_VGA_PASS 1 + setenv SSTV2_NOSHUTDOWN + + Rendering into an X window with the help of the Voodoo hardware: + ---------------------------------------------------------------- + + 1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16) + in order to have the best performance and the best visual + quality. However you can use any visual depth supported by X. + + 2. Set the following environment variables: + export MESA_GLX_FX="window" # to enable window rendering + export SST_VGA_PASS=1 # to stop video signal switching + export SST_NOSHUTDOWN=1 # to stop video signal switching + OR + setenv MESA_GLX_FX window + setenv SST_VGA_PASS 1 + setenv SST_NOSHUTDOWN 1 + + (the Voodoo2 requires to use "SSTV2_" instead "SST_"). + + 3. As root, try running a GLX-based program + + How does it work? We use the 3Dfx hardware to do rendering then + copy the image from the 3Dfx frame buffer into an X window when + the SwapBuffers() function is called. The problem with this + idea is it's slow. The image must be copied from the 3Dfx frame + buffer to main memory then copied into the X window (and when the X + visual depth doesn't match the Voodoo framebufffer bit per pixel, it + is required also a pixel format translation). + + NOTE: the in-window rendering feature only works with double-buffering. + + + On the fly switching between in window rendering and full screen rendering + -------------------------------------------------------------------------- + + The Mesa 2.6 has introduced the capability of switching + on-the-fly between the fullscreen/fullspeed rendering and the in-window + hack and vice versa. The on-the-fly switching requires a direct support + by the application but it is really easy to add. You have to start + your X server in 16 bpp mode and to add the following lines to your + application: + + #if defined(FX) && define(XMESA) + #include <GL/xmesa.h> + + static int fullscreen=1; + #endif + + ... + + /* In the GLUT keyboard event callback */ + + #if defined(FX) && !define(WIN32) + case ' ': + fullscreen=(!fullscreen); + XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); + break; + #endif + ... + + See the 3Dfx/demos/tunnel.c program + for an example. You have to set the -DXMESA flag in the Makefile's COPTS + to enable it. + + Rendering into an X window with the X11 software driver: + -------------------------------------------------------- + + Set the MESA_GLX_FX variable to "disable" your GLX-based program will use + the X11 software driver (the 3Dfx hardware isn't used at all). + + + +Useful Glide Environment Variables: +----------------------------------- + + - To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable. + + - To disable video signal switching: + setenv SST_VGA_PASS 1 + setenv SST_NOSHUTDOWN + or for the Voodoo2: + setenv SSTV2_VGA_PASS 1 + setenv SSTV2_NOSHUTDOWN + + - To set the default screen refresh rate: + setenv SST_SCREENREFRESH=75 + + the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120. + + - To force the Mesa library to swap buffers as fast as possible, + without any vertical blanking synchronization (useful for benchmarks): + setenv FX_GLIDE_SWAPINTERVAL 0 + setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0 + + - You can slight improve the performances of your Voodoo1 board with + the following env. var.: + setenv SST_FASTMEM 1 + setenv SST_PCIRD 1 + setenv SST_GRXCLK 57 + + (don't use this setting with the Quantum3D 100SB or with any other + SLI configuration: it will hang everything !). + The following setting can be used with the Voodoo2: + setenv SSTV2_FASTMEM_RAS_READS=1 + setenv SSTV2_FASTPCIRD=1 + setenv SSTV2_GRXCLK=95 + + - The Quantum3D Obsidian3D-2 X-24 requires some special env. setting + in order to work under Linux: + + export SSTV2_FT_CLKDEL=5 + export SSTV2_TF0_CLKDEL=7 + export SSTV2_TF1_CLKDEL=7 + export SSTV2_TF2_CLKDEL=7 + export SSTV2_SLIM_VIN_CLKDEL=3 + export SSTV2_SLIM_VOUT_CLKDEL=2 + export SSTV2_SLIS_VIN_CLKDEL=3 + export SSTV2_SLIS_VOUT_CLKDEL=2 + + (Thanks to Phil Ross for this trick). + + + + +The Mesa/Voodoo Environment Variables: +-------------------------------------- + + - Only for Windows/Voodoo Rush users, if you define the + env. var. MESA_WGL_FX: + export MESA_WGL_FX=fullscreen + you will get fullscreen rendering; + + - Only for Windows/Voodoo Rush users, if you define the + env. var. MESA_WGL_FX: + export MESA_WGL_FX=window + you will get window rendering (default value); + + - Only for Linux users, you can find more informations about + the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide" + section; + + - If you define the env. var. MESA_FX_SWAP_PENDING: + export MESA_FX_SWAP_PENDING=4 + you will able to set the maximum number of swapbuffers + commands in the Voodoo FIFO after a swapbuffer (default value: 2); + + - If you define the env. var. MESA_FX_INFO: + export MESA_FX_INFO=1 + you will get some useful statistic. + + - If you define the env. var. MESA_FX_NO_SIGNALS: + export MESA_FX_NO_SIGNALS=1 + Mesa/FX will not install atexit() or signal() handlers. + + + +Know BUGS and Problems: +----------------------- + + - fog doesn't work in the right way when using the glDepthRange() function; + + - Maximum texture size: 256x256 (this is an hardware limit); + + - Texture border aren't yet supported; + + - A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit); + + - Use the glBindTexture extension (standard in OpenGL 1.1) for texture + mapping (the old way: glTexImage inside a display list, download + the texture map each time that you call the display list !!!); + + - Stencil buffer and Accumulation buffer are emulated in software (they are not + directly supported by the Hardware); + + - Color index mode not implemented (this is an hardware limit); + + - Thre is an know bug in the Linux Glide library so the in-window-rendering hack + and any other operations that requires to read the Voodoo frame buffer + (like the accumulation buffer support) doesn't work on Voodoo SLI cards. + + - The driver switch to pure software (_slow_) rendering when: + + - Stencil enabled; + - Using the Accumulation buffer; + - Blend enabled and blend equation != GL_FUNC_ADD_EXT; + - Color logic operation enabled and color logic operation != GL_COPY; + - Using GL_SEPARATE_SPECULAR_COLOR; + - The four values of glColorMask() aren't the some; + - Texture 1D or 3D enabled; + - Texture function is GL_BLEND; + - Using the Multitexture extension with Voodoo cards with only one TMU; + - Using the Multitexture extension with Voodoo cards with more than + one TMU, and texture function isn't GL_MODULATE; + - Point size is != 1.0 or point params vector != (1.0,0.0,0.0); + - Line width != 1.0 or using stipple lines. + - Using polygon offset or stipple polygons; + + NOTE: this is list is not yet complete. + + +Hints and Special Features: +--------------------------- + + - Under Linux and with a Voodoo Graphics board, you can use + XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to + switch on the fly between fullscreen rendering and the in-window-rendering + hack. + + - The driver is able to use all the texture memory available: 2/4MB on + Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards. + + - Trilinear filtering is fully supported on Voodoo boards with two TMUs + (high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is + available the driver fallback to bilinear filter also if you ask + for trilinear filtering. + + - The Voodoo driver support multiple Voodoo Graphics boards in the + some PC. Using this feature, you can write applications that use + multiple monitors, videoprojectors or HMDs for the output. See + Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one + context for each board. + + - The v0.19 introduces a new powerful texture memory manager: the + texture memory is used as a cache of the set of all defined texture + maps. You can now define several MBs of texture maps also with a 2MB + of texture memory (the texture memory manager will do automatically + all the swap out/swap in + texture memory work). The new texture memory manager has also + solved a lot of other bugs/no specs compliance/problems + related to the texture memory usage. + + - Use triangles and quads strip: they are a LOT faster than sparse + triangles and quads. + + - The Voodoo driver supports the GL_EXT_paletted_texture. it works + only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value + is ignored because this is a limitation of the the current Glide + version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for + a demo of this extension. + + - The Voodoo driver directly supports 3Dfx Global Palette extension. + It was written for GLQuake and I think that it isn't a good idea + to use this extension for any other purpose (it is a trick). See + Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension. + + - The Voodoo driver chooses the screen resolution according to the + requested window size. If you open a 640x480 window, you will get + a 640x480 screen resolution, if you open a 800x600 window, you + will get a 800x600 screen resolution, etc. + Most GLUT demos support the '-geometry' option, so you can choose + the screen resolution: 'tunnel -geometry 800x600'. + Clearly, you Voodoo board must have enough framebuffer RAM (otherwise + the window creation will fail). + + - The glGetString(GL_RENDERER) returns more information + about the hardware configuration: "Mesa Glide <version> + <Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/ + <num> TM/<num> TMU/<NOSLI|SLI>" + where: <num> CARD is the card used for the current context, + <num> FB is the number of MB for the framebuffer, + <num> TM is the number of MB for the texture memory, + <num> TMU is the number of TMU. You can try to run + Mesa/demos/glinfo in order to have an example of the output. + +Did you find a lot BUGs and problems ? Good, send me an email. + + + +FAQ: +---- + +For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO +available at http://www.gamers.org/dEngine/xf3D (it includes also +a lot of informations not strictly related to Linux, so it can be +useful also if you don't use Linux) + +1. What is 3Dfx? + +3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics +chipset (and others) used in popular PC cards such as the Diamond Monster 3D +and the Orchid Righteous 3D (more informations at http://www.3dfx.com). + + +2. What is Glide? + +Glide is a "thin" programming interface for the 3Dfx hardware. It was +originally written for Windows/Intel but has been ported to Linux/Intel +by Daryll Strauss. + +3Dfx, Inc. should be applauded for allowing the Linux version of Glide +to be written. + +You can directly program with the Glide library if you wish. You can +obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com +There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux + + +3. What is fxmesa? + +"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library. +It was written by David Bucciarelli and others. It works on both Linux +and Windows. Basically, it allows you to write and run OpenGL-style programs +on the 3Dfx hardware. + + +4. What is GLQuake? + +Quake is a very popular game from id software, Inc. See www.idsoftware.com +GLQuake is a version of Quake written for OpenGL. There is now a Linux +version of GLQuake with works with the Mesa/3Dfx/Glide combo. + +Here's what you need to run GLQuake on Linux: + PC with 100MHz Pentium or better + a 3Dfx-based card + Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so + Glide 2.4 libraries: libglide2x.so libtexus.so + GLQuake for Linux. + +Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll, +you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory +in order to test 'MesaQuake'. + + +5. What is GLUT? + +GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for +writing portable OpenGL programs with support for multiple windows, pop- +up menus, event handling, etc. + +Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd). + +Every OpenGL programmer should check out GLUT. + +GLUT on Linux uses GLX. + + +6. What is GLX? + +GLX is the OpenGL extension to the X Window System. I defines both a +programming API (glX*() functions) and a network protocol. Mesa implements +an emulation of GLX on Linux. A real GLX implementation would requires +hooks into the X server. The 3Dfx hardware can be used with GLX-based +programs via the MESA_GLX_FX environment variable. + + +7. Is the Voodoo driver able to use the 4Mb texture memory of +the Pure3D boards ? + +Yes, the Voodoo driver v0.20 includes the support for Voodoo +Graphics boards with more than 2Mb of texture memory. + + +8. Do the Voodoo driver support the Voodoo Rush under Windows ? + +Yes, Diego Picciani has developed the support for the Voodoo +Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul +has a Monster3D, so the new versions of the Mesa/Voodoo sometime are +not tested with the Voodoo Rush. + + +9. Do the Voodoo driver support the Voodoo Rush under Linux ? + +No because the Linux Glide doesn't (yet) support the Voodoo Rush. + + +10. Can I sell my Mesa/Voodoo based software and include +a binary copy of the Mesa in order to make the software +working out of the box ? + +Yes. + + +11. Which is the best make target for compiling the Mesa for +Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ? + +'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide' +for Voodoo2 boards because it doesn't include the '-fPIC' +option (4-5% faster). + + +12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide' +for my applications/programs/demos ? + +Yes, there is only one constrain: you can't run two Mesa applications +at the some time. This isn't a big issue with the today Voodoo Graphics. + + +Thanks to: +---------- + +Henri Fousse (he has written several parts of the v0.15 and the old GLUT + emulator for Win); + +Diego Picciani (he has developed all the Voodoo Rush support and the wgl + emulator); + +Daryll Strauss (for the Linux Glide and the first Linux support); + +Brian Paul (of course); + +Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports) + +Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer + a better Linux support) + +3Dfx and Quantum3D (for actively supporting Linux) + +The most update places where find Mesa VooDoo driver related informations are +the Mesa mailing list and my driver WEB page +(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml) + + +David Bucciarelli (davibu@tin.it) + +Humanware s.r.l. +Via XXIV Maggio 62 +Pisa, Italy +Tel./Fax +39-50-554108 +email: info.hmw@plus.it +www: www-hmw.caribel.pisa.it diff --git a/xc/extras/Mesa/docs/README.AMIWIN b/xc/extras/Mesa/docs/README.AMIWIN new file mode 100644 index 000000000..47cf696cc --- /dev/null +++ b/xc/extras/Mesa/docs/README.AMIWIN @@ -0,0 +1,181 @@ +AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION +======================================================== +Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu) +Original Author (Brian Paul (brianp@ssec.wisc.edu) + +Dec.1 , 1995: Port of release Mesa 1.2.5 + - Modifications made to minimize changes to Mesa distribution. + +Nov.25, 1995: Port of release Mesa 1.2.4 + + +HISTORY +======= +As a 3D graphics progammer, I was increasingly frustrated to see OpenGL +appearing on so many platforms EXCEPT the Amiga. Up to now, the task +of porting OpenGL directly from native Amiga drawing routines seemed like +a daunting task. However, two important events made this port possible. + +First of all, Brian Paul wrote Mesa, the OpenGL software emulator that +can be found on many platforms - except the Amiga and Atari (who cares +about the latter!). This was pretty ironic considering that Mesa was +originally prototyped on an Amiga! The second great event was when +Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely +register for this great piece of software) and released a development kit +so one could compile X programs with SAS/C. + +Since Mesa had X routines as its primitive drawing operations, this made +a marriage of Mesa and Amiwin feasible. I copied over the sources from +an ftp site, played with the code, wrote some Smakefiles, and voila, +I had OpenGL programs displaying on my Amiga. + +Although the speed is nothing to be impressed about, this port can be +potentially useful to those who want to quickly test their code in +wireframe or perhaps learn more about programming with the OpenGL API. + +I hope Amiga developers will continue to write excellent software for +their machine, especially more X clients for Amiwin. If you have any +solutions so some of my problems in the porting notes, please send me +some email! + +See you around, +Vic. + +HOW TO CREATE THE LIBRARIES AND SAMPLE CODE +=========================================== + +Just run the shell script mklib.amiwin in the mesa directory. This will +make all the libraries and copy them into the mesa/lib directory. If you +don't want to compile everything, just go to the desired directory and +type smake in that directory. + +Change any of the variables in the smakefiles as necessary. You will REQUIRE +the Amiwin development kit to compile these libraries since you need X11.LIB +and the shareable X libraries. Some examples require the AmiTCP4.0 +net.lib static link library and related header files for unix related +header files and functions like sleep(). + +HOW TO USE THE MESA LIBRARIES +============================= + +Study the Smakefiles in the demos, samples and book directories for the +proper SAS/C options and linkable libraries to use. Basically aux calls +require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB, +tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit +available in the lib directory with the other Mesa libraries. However, +it seems to cause crashes on some of the sample code. Someone else may want +to attempt a more stable port. + +PORTING NOTES TO AMIWIN +======================= + +My strategy of porting was to leave as much of the code untouched as +possible. I surrounded any amiga specific changes with +#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor +symbols. The code was ported on an Amiga 2000, with Fusion 40 accelerator +and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with +the AmiWin 2.16 X development kit. + +All compilations were done for a 68040 CPU with 68882 math coprocessor for +maximum speed. Please edit the smakefile for other compilers. +I wrote smakefiles for the directories I ported. I omitted the Windows +and Widgets directories. The former is for MS Windows and the latter +requires Motif, which is not easily available for the Amiga. + +Here are the changes I did per directory: + +* mesa +Nov. 25, 1995 v 1.2.4 + - added a mklib.amiwin shell script that will make all the libraries and + sample code for Mesa + - created this readme file: readme.AMIGA + +* mesa/include +Dec. 1, 1995 v 1.2.5 + - added the following to GL/xmesa.h + #ifdef AMIWIN + #include <pragmas/xlib_pragmas.h> + extern struct Library *XLibBase; + #endif +NET CHANGE: xmesa.h + +* mesa/src +Nov. 25, 1995 v 1.2.4 + - added the necessary pragma calls for X functions to the following: + xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c + This prevents undefined symbols errors during the linking phase for + X library calls + - created smakefile +Dec. 1, 1995 v 1.2.5 + - removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, + glx.c since they are now defined in include/GL/xmesa.h +NET CHANGE: smakefile + +* mesa/src-tk +Nov. 25, 1995 v 1.2.4 + - added the necessary pragma calls for X functions to the following: + private.h + - created smakefile +Dec. 1, 1995 v 1.2.5 + - removed AMIWIN includes from private.h since it is now defined in + include/GL/xmesa.h +NET CHANGE: smakefile + +* mesa/src-glu +Nov. 25, 1995 v 1.2.4 + - created smakefile +NET CHANGE: smakefile + +* mesa/src-aux +Nov. 25, 1995 v 1.2.4 + - added the necessary pragma calls for X functions to the following: + glaux.c + - created smakefile +NET CHANGE: glaux.c, smakefile + +* mesa/demos +Nov. 25, 1995 v 1.2.4 + - added the necessary pragma calls for X functions to the following: + xdemo.c, glxdemo.c, offset.c + - created smakefile + - put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since + they are not part of AmigaDOS. +Dec. 1, 1995 v 1.2.5 + - removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since + already defined in include/GL/xmesa.h + - modified Smakefile to include header and includes from the AmiTCP4.0 + net.lib linkable library to provide unix-compatible sys/time.h and + the sleep() function + - removed AMIWIN defines in xdemo.c since sleep() now defined +NET CHANGE: smakefile + +* mesa/samples +Nov. 25, 1995 v 1.2.4 + - added the necessary pragma calls for X functions to the following: + oglinfo.c + - created smakefile + - put #ifndef AMIWIN ... #endif around sleep() in blendxor.c + - removed olympic from smakefile targets since <sys/time.h> not defined +Dec. 1, 1995 v 1.2.5 + - removed AMIWIN defines from oglinfo.c, since already defined in + include/GL/xmesa.h + - modified Smakefile to include header and includes from the AmiTCP4.0 + net.lib linkable library to provide unix-compatible sys/time.h and + the sleep() function + - removed AMIWIN defines in blendxor.c for sleep() + - added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom() + functions are not defined in any libraries + - added olympic back into the Smakefile targets +NET CHANGE: smakefile, olympic.c + +* mesa/book +Nov. 25, 1995 v 1.2.4 +- created smakefile +- removed accpersp and dof from smakefile targets since the SAS/C compile seems to + confuse the near,far variables with near/far memory models. +NET CHANGE: smakefile + +* mesa/windows +Dec. 1, 1995 v 1.2.5 +- Removed directory to save space since this is only needed for Windows based + machines. diff --git a/xc/extras/Mesa/docs/README.BEOS b/xc/extras/Mesa/docs/README.BEOS new file mode 100644 index 000000000..bbd9f16c0 --- /dev/null +++ b/xc/extras/Mesa/docs/README.BEOS @@ -0,0 +1,102 @@ + + Mesa / BeOS Information + + + +Introduction + +Mesa 3.1 features a new driver for the BeOS. The new driver implements +a clone of the BGLView class. This class, derived from BView, allows +OpenGL rendering into a BeOS window. + +Any application which uses the BGLView should be able to use Mesa +instead of Be's OpenGL without changing any code. + +Since Be's OpenGL implementation (as of R4) is basically just the +SGI sample implementation, it's pretty slow. You'll see that Mesa +is considerably faster. + + + +Source Code + +The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp +It's not 100% finished at this time but many GLUT-based demos are +working. No optimizations have been made at this time. + + + +Compiling + +In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4". +When it finishes the libMesaGL.so and libMesaGLU.so libraries for +BeOS will be in the Mesa-3.x/lib/ directory. + + + +Example Programs + +Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo +programs. They should have been compiled along with the Mesa +library. + + + +GLUT + +A version of GLUT 2.5 for BeOS can be found in src-glut.beos/. +The original distribution can be obtained from +http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip + +This is a special version of GLUT adapted for the BeOS. I don't +believe Mark Kilgard's normal GLUT distribution includes BeOS +support. + +It seems that you have to recompile GLUT with libMesaGL.so instead +of libGL.so in order for everything to work. I'm not sure why. + + + +Special Features + +Mesa's implementation of the BGLView class has an extra member +function: CopySubBufferMESA(). It basically works like SwapBuffers() +but it only copies a sub region from the back buffer to the front +buffer. This is a useful optimization for some applications. +If you use this method in your code be sure that you check at runtime +that you're actually using Mesa (with glGetString) so you don't +cause a fatal error when running with Be's OpenGL. + + + +Work Left To Do + +Color index mode is not implemented yet. + +Reading pixels from the front buffer not implemented yet. + +There is also a BGLScreen class in BeOS for full-screen OpenGL +rendering. This should also be implemented for Mesa. + + + +Old BeOS Driver + +Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen +rendering interface, not BGLView. If you're interested in the older +driver you should get Mesa 2.6. + + + +BeOS and Glide + +Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0 +if interested. Ideally, the 3Dfx/Glide support should be updated to +work with the new Mesa 3.1 BGLView implementation. + +The Glide library hasn't been updated for BeOS R4, to my knowledge, as +of February, 1999. + + +---------------------------------------------------------------------- +$Id: README.BEOS,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/README.D3D b/xc/extras/Mesa/docs/README.D3D new file mode 100644 index 000000000..b41fcb620 --- /dev/null +++ b/xc/extras/Mesa/docs/README.D3D @@ -0,0 +1,124 @@ + + DirectX 6 Driver for Mesa 3.0 + + +This software is distributed under the terms of the GNU Library +General Public License, see the LICENSE file for details. + + + +What do you need ? +------------------ + + - A PC with a DirectX 6 video driver installed. + + - Mesa 3.0 + + - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). + The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not + compatible with the Glide 2.x so it doesn't work with the current + version of the driver; + + - Visual C++ 5.0 is only compiler test but others should be ok with + changes to the makefiles (CFLAGS/LFLAGS). + + - DirectX 6 SDK (was a MS download but not sure if still available). + + - SoftIce or another debugger that will get DPF's is nice. + + +Tested on: +---------- + Windows 95 + Windows 98 + Windows NT 5.0 (beta 2) + + +What is able to do ? +-------------------- + + - the driver will try and use DirectX to rasterize the OpenGL primitives + that are sent to the driver. The driver will fall back to SW if the rendering + context is too big. The fallback to SW still uses DirectDraw. If the driver + fails to support and operation (accum, stencil, etc) then it will try and get + Mesa to render it in SW. DirectX 6 features that are unsupported by the + installed DirectX 6 driver will be mapped to some other best fit feature. + + +How to compile: +--------------- + + These instructions assume you have Visual C++ installed. + + You might need to increase you enviroment space. You can do this by + adding the following statement to you config.sys. + + shell=C:\COMMAND.COM C:\ /p /e:8198 + + Next setup you compiler enviroment by running vcvars32.bat in the Visual C++ + 'bin' directoy. + + c:\DevStudio\VC\bin\vcvars32.bat + + Modify the D3D makefile to point at your SDK install. Example has the SDK + installed on my 'f' drive in the root. + + file: \Mesa-3.0\src\makefile.d3d + + SDKROOT=f:\mssdk + + Now you can simply make the project. If you look in the makefile you can see + I have some different targets like 'install'. + + nmake /f makefile.d3d + + +FAQ: +---- + + 1) I don't think the driver is using my DirectX driver. + + This maybe true as the current version will only select the Primary D3D driver + installed. If you 3D card is the secondary (3dfx) then your out of luck for this + release. + + 2) The driver seems like its not HW accelerated. + + If you have a video card with limited memory then you might want to try and + change your destop resolution to a low setting (640x480x16) so that the 3D part + of the card has more resources. Remeber the driver can't make the card better... + + 3) Nothing works. + + Make sure you have a DirectX '6' driver installed. Check you driver docs for this + info or use the SDK info utilities. + The final 'dll' is named opengl32.dll and is either in the same directory as the + OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32). + Check your destop resolution. Most DirectX 6 drivers will only support 16bit and + 32bit color depth. To find out for sure you can check the DirectX Info Viewer in + the SDK. + + + 4) Rendering doesn't look right. + + Sometimes this is because the card doesn't support a feature that that is required. + This is usually due to unsupported alpha functions (test/blend) or texture mapping. + Some cards suffer from too small of an alpha channel. The driver does its best to + fallback on unsupported features. This is not to say the driver may not have a bug(s). + + 5) Textures look bad. + + No mipmapping in this release. + + +Thanks to: +---------- + +Brian Paul + + + + +Leigh McRae (leigh@altsoftware.com) +February 9, 1999 + diff --git a/xc/extras/Mesa/docs/README.DJA b/xc/extras/Mesa/docs/README.DJA new file mode 100644 index 000000000..a5f7bb8a9 --- /dev/null +++ b/xc/extras/Mesa/docs/README.DJA @@ -0,0 +1,69 @@ +
+INTRODUCTION
+~~~~~~~~~~~~
+This is an Allegro (DJGPP) driver for MESA. This release also includes a
+"skeletal" version of GLUT for DJGPP. It was developed for the sole
+purpose of compiling the sample programs. It NOT AT ALL a complete
+version of GLUT!
+
+ALL CODE IS SUBJECT TO THE MESA COPYRIGHT AGREEMENT.
+
+
+CONTACT INFORMATION
+~~~~~~~~~~~~~~~~~~~
+
+ Name: Bernhard Tschirren
+ Email: bernie-t@geocities.com
+ WWW: http://www.cs.curtin.edu.au/~tschirre/
+ http://www.geocities.com/SiliconValley/7259/
+
+
+REQUIRED FILES
+~~~~~~~~~~~~~~
+ You will need MESA, of course. I have only tested it with version
+ 3.0, but it will probably work with later versions as well. It will
+ NOT work with earlier versions due to major changes to the MESA
+ driver interface.
+ AVAILABLE AT: http://www.ssec.wisc.edu/~brianp/Mesa.html
+
+ You will also need DJGPP and "Allegro 3.0 + WIP". It will NOT work
+ with the release version of Allegro 3.0 because I'm using some new
+ features that weren't present in the first release.
+ AVAILABLE AT: http://www.talula.demon.co.uk/allegro/
+
+
+INSTALLATION
+~~~~~~~~~~~~
+ Unzip into the MESA directory, and type "make -f Makefile.dja" to
+ compile all libraries and samples.
+
+ If you get compiler (or linker) errors, make sure that you have
+ "Allegro 3.0 + WIP" and that DJGPP\INCLUDE has the new allegro.h,
+ and that DJGPP\LIB has the new liballeg.a.
+
+
+BUGS & OTHER SHORTCOMINGS
+~~~~~~~~~~~~~~~~~~~~~~~~~
+ src/allegro/direct.h:
+ Somehow the line demo (samples/line.c) only works in
+ double-buffer mode. The anti-aliased lines appear fat when using
+ direct mode. This is obviously a bug in direct.h - but I cannot
+ find it :(
+
+ src-glut.dja/*:
+ Only the basics work - main loop and keyboard/mouse input.
+ Windows, menus and fonts DO NOT WORK, and will NEVER be
+ implemented (at least not by me). This version of GLUT was only
+ created to allow the MESA sample programs to compile.
+
+ include/GL/glut.h:
+ This file clashes with the REAL glut.h (by Mark J. Kilgard).
+ Unfortunately, you cannot have both installed at the same time.
+ A backup exists (include/GL/glut_h.dja) in case you accidentally
+ copy Mark's glut.h over this one.
+
+
+Good Luck
+
+ Bernie (02/11/1998)
+
diff --git a/xc/extras/Mesa/docs/README.DOS b/xc/extras/Mesa/docs/README.DOS new file mode 100644 index 000000000..5d177045f --- /dev/null +++ b/xc/extras/Mesa/docs/README.DOS @@ -0,0 +1,121 @@ +Mesa 2.2 MSDOS Port Revision 0.9.1
+----------------------------------
+
+I`ve setup an ftp site to get the latest versions of mesa msdos
+its at 206.103.168.10 login mesa password mesa
+rememberr though those are likely to be beta/alpha versions,
+the one you get from brian paul`s homepage is the release version.
+
+I`ll stick dmake.exe (3.80) there too..
+
+Watcom C Build Instructions ----------------------------------------------------
+
+To compile with Watcom C 10.x do in each of
+mesa/src mesa/src-tk mesa/src-aux mesa/src-glu do this
+
+make sure you have a \etc\startup.mk, i`ve supplied mine in
+case you need it, watch you don`t overwrite your own.
+
+dmake -f makefile.dos
+
+Demos can be built with the mesados.bat use, edit the mesados.bat first
+and make any changes for your system !
+
+mesados <demo_name>
+
+eg. mesados wave
+
+will build wave.exe
+
+DJGPP Build Instructions -------------------------------------------------------
+
+To compile the libs, demos, and samples with DJGPP do:
+
+make -f makefile.dj
+
+
+VESA Instructions --------------------------------------------------------------
+
+To use the VESA support you *need* to get hold of Scitechs SuperVGA KIT library
+from http://wwww.scitechsoft.com, also make sure you remove the # from the
+#CFLAGS += UNIVBE in the src/makefile.dos line, I`m more than sure i can`t
+distribute the files required with DOS Mesa. Its a very good library and makes
+VESA intergration very easy.
+
+Currently the DJGPP version has no VESA support. I`m working on it, djgpp
+has some really bad tools, ld is very poor add a.out support back !.
+
+Some of the demos won`t build out of the box as they use near and far as
+variable names, which are reserved words on DOS compilers. Some other
+demos use unix style time() functions which some dos compilers don`t support.
+
+--------------------------------------------------------------------------------
+
+I use dmake because wmake, make and nmake all suck big time, dmake
+is excellent and is unix friendly. I`ll send the .exe to anyone
+who wants it, or make it available at my website..
+
+I use Denis Vadura`s Dmake 3.80PL
+
+If anyone hassles me enough i might rewrite the makefiles for wmake at
+least.
+
+A couple of the demos don`t work yet....
+
+--------------------------------------------------------------------------------
+
+Things I (or some kind soul) need to do..
+
+Change the key handler, i have a keyboard interrupt already made just
+needs integration. (the one in there is really poor and is temporary)
+
+The RGB mode is really a 256 colour mode, it allocates the first 256
+colours used. then tries to map them to others allocated later. Currently
+it isn`t that good, its difficult to make up a palette that will effectively
+work for all situations, its not really effective at the moment.
+
+General improvements.
+
+GLX support.
+
+Does anyone really want mode13 support ? Do i need to fix up the RGB
+mode of 320x200x256 ? email me at cwallace@dreamworks.com and nag me
+or any other wishlist stuff for modes.
+
+Better Glide support, thanks to brian bruning and gary mctaggart
+at 3dfx for the dual board and the support.
+
+Change Scitech SuperVGA KIT to MGL ( thanks to tom and kendall at scitech for
+sending me a copy )
+
+MsVC support.
+
+Figure out a way of guessing the resolution , I`m more than likely
+going to change the way it works, so that it first tries for 3DFX,
+then Vesa, then mode13.
+
+--------------------------------------------------------------------------------
+
+Long Live OpenGL(tm) and kudos to brian paul for Mesa.
+
+--------------------------------------------------------------------------------
+
+Revision History
+
+v0.0 10/30/96 Initial DOS 320x200x256 Using Mesa 1.2.8
+v0.1 11/05/96 Ported to Mesa 2.0
+v0.3 11/12/96 Ported to Mesa 2.1
+v0.4 11/12/96 Started to assemble for release.
+v0.5 11/28/96 Small changes for release.
+v0.6 Sun 12-08-1996 Added VESA support.
+v0.7 Sun 12-08-1996 Cleaned up, should be able to compile without Watcom.
+v0.8 Sun 12-28-1996 Built for DJGPP. ( time traveller )
+v0.9 Thu 01-09-1997 Added 3DFX Glide support.
+v0.9.1 Fri 02-28-1997 Integrated into 2.2.7 beta
+
+Charlie Wallace - Software Scientist, Dreamworks SKG Interactive
+--------------------------------------------------------------------------------
+http://www.geocities.com/~charlie_x cwallace@dreamworks.com
+ charlie_x@geocities.com
+ charlie__x@msn.com
+ charlie@trespasser.com
diff --git a/xc/extras/Mesa/docs/README.GGI b/xc/extras/Mesa/docs/README.GGI new file mode 100644 index 000000000..ddb67725f --- /dev/null +++ b/xc/extras/Mesa/docs/README.GGI @@ -0,0 +1,26 @@ +GGIMesa for LibGGI 2.x + +Requirements: +------------- +LibGGI 2.0 or greater + +Installation: +------------- +To install GGIMesa, follow the instructions in INSTALL.GNU. If you +wish to install GGIGLUT as well, first install GGIMesa and then run + +make +make install (must be root) + +in ggi/ggiglut. + +Notes: +------ + +* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG +to 255 to see lots of debugging output. + +* GGIGLUT contains support for all of the GLUT 3.6 API except for the +high-level primitive drawing functions, but many of the functions (in +particular the menu drawing functions) are just stubs. + diff --git a/xc/extras/Mesa/docs/README.LYNXOS b/xc/extras/Mesa/docs/README.LYNXOS new file mode 100644 index 000000000..e3ab9804b --- /dev/null +++ b/xc/extras/Mesa/docs/README.LYNXOS @@ -0,0 +1,64 @@ + +Mesa 3.0 for LynxOS builds in the following way: + +make lynxos + +This will build all the libraries and demo applications. You should have +around 400 megabytes free for everything since everything is done with +static +libraries. + +Before using this make file however, you should perform the following +actions: +0) cd to the Mesa-3.0 directory +1) Copy the GL directory under the include directory to /usr/include. +2) Copy the files in the lib directory to /lib. +3) Make links so that the Mesa libraries look like ordinary OpenGL +libraries +in /lib. This is important for compatibility with other OpenGL apps. This +is done as follows: + +cd /lib +ln -s libMesaGL.a libGL.a +ln -s libMesaGLU.a libGLU.a + +Mesa 3.0 includes the GLUT (GL Utility Toolkit) by default. +The demo applications are done using this toolkit. + +Mesa makefiles for building their apps could be used as well, but the +following one is much more concise. Note that the order of the X libraries +is important to the linker so that all symbols get resolved correctly. +Changing the order may result in having to list a library twice to make +sure all linkages are made correctly. + +----cut here for Makefile ----- + +FILES = your_app.x + +SPECIAL_INCLUDES = -I/usr/include/GL + +SPECIAL_CFLAGS = -g -ansi -pedantic -funroll-loops -ffast-math -DSHM + +SPECIAL_LIBS = -lglut -lGLU -lGL -lm -L/usr/X11/lib -lXext -lXmu -lXi \ +-lX11 -lbsd -g + +STANDARD_OFILES = $(FILES:.x=.o) + +%.o: %.c + gcc -c $(SPECIAL_CFLAGS) $(SPECIAL_INCLUDES) $< -o $@ + +all: $(STANDARD_OFILES) + gcc -o your_app $(STANDARD_OFILES) $(SPECIAL_LIBS) + + +----cut here for Makefile----- + +I have tested Mesa under LynxOS 3.0 and 3.01. It should build fine under +other +versions as well. Note, however, that LynxOS versions prior to 3.0 are not +binary compatible, so you will have to rebuild from source. + + +Vik Sohal +vik@lynx.com +January 13, 1999 diff --git a/xc/extras/Mesa/docs/README.MINGW32 b/xc/extras/Mesa/docs/README.MINGW32 new file mode 100644 index 000000000..44c55aa02 --- /dev/null +++ b/xc/extras/Mesa/docs/README.MINGW32 @@ -0,0 +1,53 @@ +August 30, 1998 -- Paul Garceau
+Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
+
+DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
+to the general public. I can, in no way support or make any guarantee that the
+build will work for your system.
+
+ The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
+
+ Feel free to modify or change things as you see fit, just remember that
+I can't support any modifications you might want to make to the files which I
+have included OR the lgpl protected Mesa 3-D Graphics Library.
+
+ I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
+
+ (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
+
+ This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
+
+ I recommend using the GCC-2.95.2/Mingw32.
+
+ ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
+
+ Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
+and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
+
+Installing GCC-2.95.2/Mingw32 Build:
+
+ a) Open the file archive (either tar.gz or .zip extensions)
+
+ b) Decide the directory you want to move the archived files to.
+
+ d) Extract the files from the archive.
+
+ e) Edit the mingw32.bat file to accomodate your choice of directory structure.
+
+ %mesaroot%: This is your root directory (Mesa-3.3)
+ %mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
+ %mesalib%: This is where the build will put libGL.a and libGLU.a
+
+Running the Build:
+
+ Open your Command Prompt or MS-DOS prompt.
+ Go to your Mesa-3.3 'root' directory
+ At the command line type: mingw32
+
+ That's all there is to it.
+
+ Enjoy!
+
+ Peace,
+
+ Paul G. (pgarceau@teleport.com)
\ No newline at end of file diff --git a/xc/extras/Mesa/docs/README.MITS b/xc/extras/Mesa/docs/README.MITS new file mode 100644 index 000000000..a89176a62 --- /dev/null +++ b/xc/extras/Mesa/docs/README.MITS @@ -0,0 +1,102 @@ + + Mesa 3.0 MITS Information + + +This software is distributed under the terms of the GNU Library +General Public License, see the LICENSE file for details. + + +This document is a preliminary introduction to help you get +started. For more detaile information consult the web page. + +http://10-dencies.zkm.de/~mesa/ + + + +Version 0.1 (Yes it's very alpha code so be warned!) +Contributors: + Emil Briggs (briggs@bucky.physics.ncsu.edu) + David Bucciarelli (tech.hmw@plus.it) + Andreas Schiffler (schiffler@zkm.de) + + + +1. Requirements: + Mesa 3.0. + An SMP capable machine running Linux 2.x + libpthread installed on your machine. + + +2. What does MITS stand for? + MITS stands for Mesa Internal Threading System. By adding + internal threading to Mesa it should be possible to improve + performance of OpenGL applications on SMP machines. + + +3. Do applications have to be recoded to take advantage of MITS? + No. The threading is internal to Mesa and transparent to + applications. + + +4. Will all applications benefit from the current implementation of MITS? + No. This implementation splits the processing of the vertex buffer + over two threads. There is a certain amount of overhead involved + with the thread synchronization and if there is not enough work + to be done the extra overhead outweighs any speedup from using + dual processors. You will not for example see any speedup when + running Quake because it uses GL_POLYGON and there is only one + polygon for each vertex buffer processed. Test results on a + dual 200 Mhz. Pentium Pro system show that one needs around + 100-200 vertices in the vertex buffer before any there is any + appreciable benefit from the threading. + + +5. Are there any parameters that I can tune to try to improve performance. + Yes. You can try to vary the size of the vertex buffer which is + define in VB_MAX located in the file src/vb.h from your top level + Mesa distribution. The number needs to be a multiple of 12 and + the optimum value will probably depend on the capabilities of + your machine and the particular application you are running. + + +6. Are there any ways I can modify the application to improve its + performance with the MITS? + Yes. Try to use as many vertices between each Begin/End pair + as possbile. This will reduce the thread synchronization + overhead. + + +7. What sort of speedups can I expect? + On some benchmarks performance gains of up to 30% have been + observerd. Others may see no gain at all and in a few rare + cases even some degradation. + + +8. What still needs to be done? + Lots of testing and benchmarking. + A portable implementation that works within the Mesa thread API. + Threading of additional areas of Mesa to improve performance + even more. + + + +Installation: + + 1. This assumes that you already have a working Mesa 3.0 installation + from source. + 2. Place the tarball MITS.tar.gz in your top level Mesa directory. + 3. Unzip it and untar it. It will replace the following files in + your Mesa source tree so back them up if you want to save them. + + + README.MITS + Make-config + Makefile + mklib.glide + src/vbxform.c + src/vb.h + + 4. Rebuild Mesa using the command + + make linux-386-glide-mits + diff --git a/xc/extras/Mesa/docs/README.NeXT b/xc/extras/Mesa/docs/README.NeXT new file mode 100644 index 000000000..1ad9a9e5c --- /dev/null +++ b/xc/extras/Mesa/docs/README.NeXT @@ -0,0 +1,6 @@ +The NeXT support has now been incorporated into the OpenStep support. +You can build NeXT libraries simply by typing "make next", though before +linking they will need to be ranlib'd by hand. For more information see +the README.OpenStep file, together with the README files in OpenStep/Old_Demos. + +-Pete French. (pete@ohm.york.ac.uk) 28/5/1998 diff --git a/xc/extras/Mesa/docs/README.OS2 b/xc/extras/Mesa/docs/README.OS2 new file mode 100644 index 000000000..b3374ea23 --- /dev/null +++ b/xc/extras/Mesa/docs/README.OS2 @@ -0,0 +1,96 @@ + README for port of Mesa 3.x to XFree86 on OS/2 (X/2) + (as of 19990514) + + + Contents: + + 1) Binary release + 2) Building from sources + 3) History + 4) Todo + 5) Mesa Home Page + + +1) Binary release + + Though the Mesa sources should build in a quite reasonable time even on + a 585 class machine a binary relase is available (check topic 4) for an URL) + This package includes: + + - lib/MesaGL.dll, MesaGL.a + - lib/MesaGLU.dll, MesaGLU.a + - lib/glut.dll, glut.a + - include/GL/*.h + + Installing this in your XFree86 tree will enable you to build and + run all applications compatible with Mesa (and the current DLL + interface, of course ;-) + As usual the OMF-style libraries can be created using emxomf. + (e.g. "emxomf foo.a" creates the foo.lib omf-style library). + The static libraries are rarely used and you have to rebuild + Mesa to get them. They're a supported target, so you get + them in a straightforward way (see below). + + The testing of these libraries was limited to the supplied + demos/examples and a quite small number of third-party apps. + No warranty ... as usual ... ;-) + + +2) Instructions to build Mesa 3.x for XFree86/OS2 from sources: + + Except the official Mesa source distribution you need: + - a recent version of XFree86 (3.3.x or above) including + the programming libraries + - EMX 0.9c (0.9d might work, never checked) + - GNU make + - REXX (!) + + The creation of the DLLs as well as of the static libraries + (if you want to have them) is handled in "mklib-emx.cmd", + a small REXX script. Perhaps not the best idea, but this + way it fits best in the scheme used to build libraries + on all platforms in Mesa 3.x. + + To actually build the libraries and demos, check mklib-emx.cmd + and modify it as desired. Then type + make os2-x11 + and wait for completion ;-) + + +3) History + + Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x + to XFree86 OS/2. This port might still be available from + http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html + + The current port picked up things during the beta test for 3.0. + No major changes in the source were done. The build mechanism under OS/2 + has been made very similar to other platforms (if you treat mklib-emx.cmd + as a "black box"). + Advantage is that X/2 is now a valid target and all files are + integrated in the official source distribution. + Disadvantage is that this port (i.e. the DLLs' interface itself) is + definitly NOT COMPATIBLE to those of version 2.x. + It's uncertain whether this would be at all possible but since there + a _very_ few those apps it's not worth to find out anyway. + Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution, + and accordingly from the OS/2 port. + +4) Todo + + By now binary compatiblity is ensured by using the function names + as entry points instead of ordinals. This might cost performance and + is subject to change in future. In addition the supplied X86 assembler + source is not used yet. + +5) Mesa Home Page + + You can get the source code and more information about Mesa from + http://www.mesa3d.org/ + + The OS/2 ports should be available from + http://r350.ee.ntu.edu.tw/~hcchu/os2/ports + +-- +Alexander Mai +st002279@hrzpub.tu-darmstadt.de diff --git a/xc/extras/Mesa/docs/README.OpenStep b/xc/extras/Mesa/docs/README.OpenStep new file mode 100644 index 000000000..a566eca67 --- /dev/null +++ b/xc/extras/Mesa/docs/README.OpenStep @@ -0,0 +1,35 @@ +This is a port of the GL and GLU libraries to NeXT/Apple object +orientated systems. As these systems have their own window handling +systems we simply use the offscreen rendering capability of Mesa +to generate bitmaps which may then be displayed by the application +with a View as required. Example pieces of code may be found in the +OpenStep directory. + +Sadly there are now a proliferation of different system that we need to +support compilation for: The original NextStep system, The OpenStep +system, the Rhapsody/Mac OS X system and also the windows implementations +of the latter two systems. This version of the code has been compiled and +tested under the following architectures: + + NextStep 3.3 + OpenStep 4.2 + Rhapsody DR2 + WebObjects for NT 3.5 + WebObjects for NT 4.0 + +All tests were done with Intel processors. Feedback on other systems would, +however, be appreciated ! + +On UNIX systems simply type "make openstep". Under Windows systems +with WebObjects run the "win32-openstep.sh" script from within the Bourne +shell provided with the development environment. In both cases this will +build the libraries and place them into the "lib" directory. Some examples +may be found in the OpenStep directory showing how to use the code in an +actual application (MesaView) as well as some command line demos. + +The CC variable may be specified on the command line for doing such things +as building FFAT libraries or using alternative compilers to the standard 'cc' +e.g. make CC='cc -arch m68k -arch i386' openstep" will build the libraries +with both intel and motorola architectures. + +-Pete French. (pete@ohm.york.ac.uk) 7/6/1999 diff --git a/xc/extras/Mesa/docs/README.QUAKE b/xc/extras/Mesa/docs/README.QUAKE new file mode 100644 index 000000000..f30ec4ab7 --- /dev/null +++ b/xc/extras/Mesa/docs/README.QUAKE @@ -0,0 +1,208 @@ + + Info on using Mesa 3.0 with Linux Quake I and Quake II + + + +Disclaimer +---------- + +I am _not_ a Quake expert by any means. I pretty much only run it to +test Mesa. There have been a lot of questions about Linux Quake and +Mesa so I'm trying to provide some useful info here. If this file +doesn't help you then you should look elsewhere for help. The Mesa +mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup +might be good. + +Again, all the information I have is in this file. Please don't email +me with questions. + +If you have information to contribute to this file please send it to +me at brianp@elastic.avid.com + + + +Linux Quake +----------- + +You can get Linux Quake from http://www.idsoftware.com/ + +Quake I and II for Linux were tested with, and include, Mesa 2.6. You +shouldn't have too many problems if you simply follow the instructions +in the Quake distribution. + + + +RedHat 5.0 Linux problems +------------------------- + +RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas +previous RedHat and other Linux distributions use "libc5" for its +runtime C library. + +Linux Quake I and II were compiled for libc5. If you compile Mesa +on a RedHat 5.x system the resulting libMesaGL.so file will not work +with Linux Quake because of the different C runtime libraries. +The symptom of this is a segmentation fault soon after starting Quake. + +If you want to use a newer version of Mesa (like 3.x) with Quake on +RedHat 5.x then read on. + +The solution to the C library problem is to force Mesa to use libc5. +libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. + +Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following +info: + +> I only know what works on a RedHat 5.0 distribution. RH5 includes +> a full set of libraries for both libc5 and glibc. The loader ld.so +> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs +> linked against libc5 while it uses the glibc libraries in /lib and +> /usr/lib for programs linked against glibc. +> +> Anyway I changed line 41 of mklib.glide to +> GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" +> +> And I started quake2 up with a script like this +> #!/bin/csh +> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib +> setenv MESA_GLX_FX f +> ./quake2 +set vid_ref gl +> kbd_mode -a +> reset + + +I've already patched the mklib.glide file. You'll have to start Quake +with the script shown above though. + + + +********************** + +Daryll Strauss writes: + +Here's my thoughts on the problem. On a RH 5.x system, you can NOT build +a libc5 executable or library. Red Hat just doesn't include the right +stuff to do it. + +Since Quake is a libc5 based application, you are in trouble. You need +libc5 libraries. + +What can you do about it? Well there's a package called gcc5 that does +MOST of the right stuff to compile with libc5. (It brings back older +header files, makes appropriate symbolic links for libraries, and sets +up the compiler to use the correct directories) You can find gcc5 here: +ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm + +No, this isn't quite enough. There are still a few tricks to getting +Mesa to compile as a libc5 application. First you have to make sure that +every compile uses gcc5 instead of gcc. Second, in some cases the link +line actually lists -L/usr/lib which breaks gcc5 (because it forces you +to use the glibc version of things) + +If you get all the stuff correctly compiled with gcc5 it should work. +I've run Mesa 3.0B6 and its demos in a window with my Rush on a Red Hat +5.1 system. It is a big hassle, but it can be done. I've only made Quake +segfault, but I think that's from my libRush using the wrong libc. + +Yes, mixing libc5 and glibc is a major pain. I've been working to get +all my libraries compiling correctly with this setup. Someone should +make an RPM out of it and feed changes back to Brian once they get it +all working. If no one else has done so by the time I get the rest of my +stuff straightened out, I'll try to do it myself. + + - |Daryll + + + +********************* + +David Bucciarelli (tech.hmw@plus.it) writes: + +I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is +working fine for me. I had only to make a small change to the +Mesa-3.0/mklib.glide file, from: + + + GLIDELIBS="-L/usr/local/glide/lib -lglide2x +-L/usr/i486-linux-libc5/lib -lm" + +to: + + GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" + +and to make two symbolic links: + +[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 +[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 + +I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it +includes also the Glide for the libc5). I'm not using the /dev/3Dfx and +running QuakeII as root with the following env. var: + +export +LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib + +I think that all problems are related to the glibc, Quake will never +work if you get the following output: + +[david@localhost Mesa]$ ldd lib/libMesaGL.so + libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) + libm.so.6 => /lib/libm.so.6 (0x40244000) + libc.so.6 => /lib/libc.so.6 (0x4025d000) + /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) + +You must get the following outputs: + +[david@localhost Mesa]# ldd lib/libMesaGL.so + libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so +(0x400f3000) + +[root@localhost quake2]# ldd quake2 + libdl.so.1 => /lib/libdl.so.1 (0x40005000) + libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) + libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) + +[root@localhost quake2]# ldd ref_gl.so + libMesaGL.so.2 => +/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) + libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so +(0x401d9000) + libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 +(0x40324000) + libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 +(0x403b7000) + libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 +(0x403c1000) + libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) + libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) + + +*********************** + +Steve Davies (steve@one47.demon.co.uk) writes: + + +Try using: + + export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib + ./quake2 +set vid_ref gl + +to start the game... Works for me, but assumes that you have the +compatability libc5 RPMs installed. + + +*************************** + +WWW resources - you may find additional Linux Quake help at these URLs: + + +http://quake.medina.net/howto + +http://webpages.mr.net/bobz + +http://www.linuxgames.com/quake2/ + + + +---------------------------------------------------------------------- +$Id: README.QUAKE,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/README.THREADS b/xc/extras/Mesa/docs/README.THREADS new file mode 100644 index 000000000..fb6e0ff3d --- /dev/null +++ b/xc/extras/Mesa/docs/README.THREADS @@ -0,0 +1,52 @@ + + +Mesa Threads README +------------------- + +Thread safety was introduced in Mesa 2.6 by John Stone and +Christoph Poliwoda. + +It was redesigned in Mesa 3.3 so that thread safety is +supported by default (on systems which support threads, +that is). There is no measurable penalty on single +threaded applications. + +NOTE that the only _driver_ which is thread safe at this time +is the OS/Mesa driver! + + +At present the mthreads code supports three thread APIS: + 1) POSIX threads (aka pthreads). + 2) Solaris / Unix International threads. + 3) Win32 threads (Win 95/NT). + +Support for other thread libraries can be added src/glthread.[ch] + + +In order to guarantee proper operation, it is +necessary for both Mesa and application code to use the same threads API. +So, if your application uses Sun's thread API, then you should build Mesa +using one of the targets for Sun threads. + +The mtdemos directory contains some example programs which use +multiple threads to render to osmesa rendering context(s). + +Linux users should be aware that there exist many different POSIX +threads packages. The best solution is the linuxthreads package +(http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the +only one that really supports multiprocessor machines (AFAIK). See +http://pauillac.inria.fr/~xleroy/linuxthreads/README for further +information about the usage of linuxthreads. + +If you are interested in helping with thread safety work in Mesa +join the Mesa developers mailing list and post your proposal. + + +Regards, + John Stone -- j.stone@acm.org johns@cs.umr.edu + Christoph Poliwoda -- poliwoda@volumegraphics.com + + +Version info: + Mesa 2.6 - initial thread support. + Mesa 3.3 - thread support mostly rewritten (Brian Paul) diff --git a/xc/extras/Mesa/docs/README.VMS b/xc/extras/Mesa/docs/README.VMS new file mode 100644 index 000000000..9cb4724eb --- /dev/null +++ b/xc/extras/Mesa/docs/README.VMS @@ -0,0 +1,28 @@ + +VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl) + + +The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but +probably also works for other versions. + +At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB, +LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the +directory [.DEMOS] can be build. +However, feel free to create the missing "decrip.mms-files" in the other +directories. + + The make files were tested +using the DIGITAL make utility called MMS. There is also a public domain +clone available (MMK) and I think, but it is not tested, that this +utility will give (hardly) any problem. + +To make everything just type MMS (or MMK) in the main directory of +mesagl. For MMS the deafult makefile is called descrip.mms, and +that is what I have called it. I included alse some config files, +all having mms somewhere in the name which all the makefiles need +(just as your unix makefiles). + +On Alpha platforms at default a sharable images for the libraries are created. +To get a static library make it by typing MMS/MACRO=(NOSHARE=1). +On VAX platforms only static libraries can be build. + diff --git a/xc/extras/Mesa/docs/README.WIN32 b/xc/extras/Mesa/docs/README.WIN32 new file mode 100644 index 000000000..65e4fc2b6 --- /dev/null +++ b/xc/extras/Mesa/docs/README.WIN32 @@ -0,0 +1,623 @@ +
+ Mesa/Readme.win32
+
+ Last Updated: Sunday, September 19th, 1999 - tjump@tertius.com
+
+*** What's New
+
+- Updated for Mesa 3.1beta3/CVS. Debug and Release command-line builds of
+ Mesa, fxMesa, GLU, GLUT and all sample programs DLL-based. Manual
+ executions tests with minimum requisite results (aka: things looked like
+ I expected them to).
+
+ What did you expect, complete regression testing maybe?
+
+- NASM build support. Any file in the project coded as a .S file will
+ automatically be recognized and built as a NASM-source assember file.
+
+ To enable building using NASM, set the environment variable NASM to
+ indicate that command to execute to run nasm on a file. If NASM is in
+ your command search path then all this needs be set to is 'nasmw' -
+ otherwise you will need to include the complete drive and directory path.
+
+ NASM may be retrieved here: http://www.web-sites.co.uk/nasm/
+
+- DevStudio projects suspended for compatability reasons: projects modified
+ by DevStudio 6 are not compatible with DevStudio 5.
+
+ These will slowly be rebuilt and put into CVS as I can.
+
+- Build environment change: The Glide SDK is no longer assumed to be in
+ the global INCLUDE/LIB environment vars, it is required that you set the
+ value 'GLIDE2X' as either an environment variable pointing to your Glide
+ SDK install directory or that you configure that as a build option to
+ nmake.exe when building fxmesagl32. Examples:
+
+ nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x fxmesagl32
+
+ <or>
+
+ nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x allfx
+
+ <or>
+
+ nmake /f nmake.mak GLIDE2X=g:\sdk\glide2x progs.3dfx.demos
+
+ The DevStudio workspace files for 3Dfx OpenGL require the definition of
+ GLIDE2SDK as an environment variable pointing to where your copy of the
+ Glide SDK has been installed. Adding this to your AUTOEXEC.BAT would do
+ so (change the directories to match):
+
+ SET GLIDE2SDK=G:\SDK\GLIDE2X
+
+*** Legalese
+
+These build files are provided as-is and are submitted to be included with
+the "Mesa 3-D Graphics Library" package as (currently) maintained by Brian
+Paul. These project build files are free software; you can redistribute it
+and/or modify it under the terms of the GNU Library General Public License
+as published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+These project files are distributed in the hope that they will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
+General Public License for more details.
+
+You should have received a copy of the GNU Library General Public License
+along with this library; if not, write to the Free Software Foundation,
+Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*** Maintenance Responsiblity and Technical Support
+
+While these files are now part of the Mesa core distribution please do NOT
+contact Mr. Paul for help with them if you encounter problems as he can't
+help you (currently). I will, however, attempt my straightforward best in
+assisting anyone with using these files on their system. I can NOT
+guarantee instant responses owing to other responsiblities, but I do try
+dang hard to answer any mail w/in 24 hours. I may be contacted at the
+above email address for the forseeable future.
+
+-Ted
+mailto://tjump@tertius.com
+http://www.tertius.com/tjump
+
+*** General Information
+
+These build files facilitate convenient building of many variants of Mesa,
+both as static link libraries (including mesaglu) and as dynamic link
+libraries that in some cases may be used as "drop-in" replacements for
+OpenGL32.DLL on both Windows95 and Windows NT.
+
+The construction of the Win32 command-line build files and projects has
+been something of a pet project of mine, and is based upon my own
+"standard" Win32 build environment as supplied by the "nmake.mif" file.
+They have been tested under Windows95 OSR2, Windows NT 4.0SP3, and Windows
+NT 5.0 beta 1. The libraries that they generated have been tested (via the
+demo programs) in a *limited* fashion on the above three systems, including
+the 3Dfx versions.
+
+The reason I went with command-line build environment instead of the more
+convenient IDE-based project files is for two reasons: 1. These appear to
+have some amount of portability between versions (the nmake syntax hasn't
+changed much since Microsoft C 7.0) while the IDE project files seem to
+change drastically each version. and 2. These are readable with any ascii
+editor and such are better self-documentation of the file relationships for
+more people such that it will facilitate supporting other Win32 compilers.
+
+While these files only deal with building for x86 targeted code it *should*
+be possible to add the necessary logic to them to build for the other MSVC
+supported CPU targets, I simply have no hardware to test them on nor the
+alternative compilers to build with.
+
+*** Prerequisites for use
+
+1. You must have a 32-bit Microsoft compiler installed. I have tested
+this with Visual C 5.0 (SP3) and Visual C 4.2, but with minor
+(possibly no) modification to the nmake.mak and nmake.mif files this
+sequence should work on Visual C 2.0 also. The workspace files
+(mesalib.dsw and mesademos-*.dsw) and their included project files
+(*.dsp) are specific to the DevStudio IDE - I have made no attempt at
+building a VC4 IDE project set as I do not use that any more. Note
+that the VC workspace files NO LONGER use NORE are dependant upon the
+nmake.mak and nmake.mif files for construction of definition (*.DEF)
+and resource (*.RC) files.
+
+*** Visual C 4.x Users Warning ****
+
+Note that early editions of VC4 do NOT have header files current enough
+for use building this code base. If you are using VC4 you will either need
+to get an update to version 4.2 *or* you may download the Platform SDK
+directly from Microsoft's web site (www.microsoft.com) and update your
+build environment that way.
+
+*** Visual C 4.x Users Warning ****
+
+2. You must have the PATH, INCLUDE, and LIB environment variables set
+properly. With VC5 you can easily get this by executing the VCVARS32.BAT
+file that was created for you upon installation. It is found in the
+DevStudio\VC\BIN directory, wherever you installed DevStudio. VC4 provides
+a similar batch file in it's BIN directory also.
+
+3. (optional) If you're going to build for 3Dfx/Voodoo you will need to
+have previously installed the Glide SDK version 2.3 or later, if I
+recall. This may be retrieved from www.3dfx.com for no money and some
+download time. ;-) These build files assume that you have the Glide SDK
+added to the respective environment variables (LIB and INCLUDE).
+
+4. (optional) If you're going to build for S3/Virge you will need the S3
+Developers Toolkit which may be downloaded from www.s3.com for the price of
+registering on-line and some time. NOTE: I can build the s3mesa.dll file to
+completion, however the compilation of s3mesa.c currently generates a large
+amount of compiler warnings and between that and the fact that I can not at
+all test it I can make no claims to it's ability to execute. Again, like
+the 3Dfx version before this, these build files assume you have the S3Dtk H
+and LIB files in the path of their respective environment variables.
+Note 2: As of Mesa3.0beta6 I have build files, both command-line and IDE,
+which should be able to build the s3mesa code base if it weren't for updates
+being required in the S3 DD code support (Mesa-3.0/src/s3 directory).
+
+I advise putting any include and lib files for secondary toolkits (Glide,
+S3Tk, whatever) in their respective environment variables *before* the
+Microsoft-assigned default values.
+
+*** FAQ: Frequenty Asked Questions and Other Important Information ***
+
+- When running the 3Dfx demos under Windows NT, they crash on exit, what's
+ up?
+
+ This is apparently a problem in Glide itself. The workaround is to go to
+ your C:\WINNT\SYSTEM32 directory and rename the file FXOEM2X.DLL to
+ FXOEM2X.DL_ to prevent Glide from loading and initializing it upon
+ startup. This is known to be an issue with cards that do not have "TV
+ out" and is known to cause crashes on Diamond Monster II 8M and 3Dfx
+ Reference boards, all using 3Dfx Reference Drivers version 2.53. Other
+ hardware/driver combinations will also likely exhibit this behavior.
+
+- I'm having a problem building Mesa for static library linking.
+
+ This was caused by some incomplete testing on my part, and a fix is now
+ available in the form of an add-on to the base Mesa 3.0 release. The
+ file to get is:
+
+ via FTP download from: iris.ssec.wisc.edu
+ you want to go here: /pub/Mesa/patches_to_3.0/
+ you want to get file: Mesa-3.0-w32-static-fixes.tar.gz
+
+ This required a minor addition to INCLUDE/GL for a clean solution, the
+ file "include/gl/mesa_wgl.h" is automatically included by
+ "include/gl/gl.h" when a Win32 non-DLL build is in progress to provide
+ prototypes for the various wgl functions.
+
+ The only remaining hitch in this setup is that the 3Dfx build is not yet
+ running as a static build, because of problems with conflicts in
+ existance of the various GDI functions like ChoosePixelFormat,
+ etc. *sigh*
+
+ Anyway, the "allstatic" target now works as expected and builds all
+ book/sample/demos programs to boot. ;^)
+
+- How do I get fxMesa to render in a window on the desktop instead of only
+ full-screen?
+
+ Use the Microsoft Windows fxMesa-in-a-window hack!
+
+ Seriously, if you want fxMesaGL to render using the 3Dfx Voodoo1 or
+ Voodoo2 hardware into a window on the desktop then all you need to do is
+ set the MESA_WGL_FX environment variable to anything other than
+ "fullscreen" and it will render into a window. If you wish to go
+ fullscreen then you only need to NOT have the environment variable, or
+ have it set to "fullscreen". You may also switch at runtime between
+ fullscreen-mode and windowed by pressing ALT-ENTER on the keyboard
+ (unless the application using Mesa does something with those keystrokes,
+ of course).
+
+ As of 8/13/98 this should be running a LOT better for more people as a
+ low-compatability item was cleaned up which prevented it from working on
+ many (most?) display drivers under Windows 9x.
+
+- I have my 3Dfx card hooked to it's own monitor and I want the output to
+ stay on even if I switch to another program, is this possible?
+
+ If the Glide environment variable SST_DUALHEAD is set to '1' then fxMesa
+ will never disable the Voodoo output on a Voodoo1 or Voodoo2 display
+ regardless of whether the fxMesa application is "current" or not. This
+ works regardless of whether it's rendering using the window hack
+ mentioned above or not.
+
+- I want to run the Mesa demos on my Intel740 card using it's own OpenGL
+ acceleration, how do I do this?
+
+ Build GLUT standalone for use with system OpenGL and GLU drivers!
+
+ The Command-line project supports building all test/demo programs against
+ these drivers also! This allows you full use of GLUT on Windows using
+ hardware accelerated OpenGL. Wheee! This includes the "3dfx/demos"
+ directory of which only two programs will not run on "standard"
+ opengl. Note that there are a few of the sample programs which will NOT
+ work without Mesa as they directly call into Mesa instead of using the
+ extension mechanism.
+
+*** Included programs that exhibit unfortunate or bad behavior
+
+- demos/bounce - doesn't run on high-colors screens? It's requesting an
+ INDEX display from GLUT and that fails on my true-color desktop. Changing
+ this to _RGB let's the program work, but it doesn't display
+ properly. This is probably just an idiosyncracy of my machine though, as
+ if I test the program using GLUT for System OpenGL on my Intel740 OpenGL
+ accelerated machine it's just hunky-dory.
+
+- demos/glutfx - runs, but crashes on exit (but not on my Intel740 machine)
+
+- demos/texobj - runs, but crashes on exit if ESC is pressed. Exits cleanly
+ if the Close box on the window frame is pressed with the mouse. Go figure.
+
+- book/aaindex - doesn't run, can't get pixel format, because it wants an
+ INDEX display maybe (but is okay on my Intel740 machine)?
+
+- most of the book/* demos don't respond to ESC being pressed.
+
+- 3dfx/demos/* - all demos run, however they all crash on exit. I've traced
+ this so far as to determine the call it's happening with. The crash comes
+ from within Glide during the processing of the grGlideShutdown() call, as
+ in invalid memory reference exception. I'm wondering if this is because
+ of some state or processing not being completed before the call. Dunno,
+ but putting grSstIdle() in just before grGlideShutdown() does NOT fix the
+ problem.
+
+- 3dfx/demos/tunnel2 - does not run on my system even with SLI mode
+ disabled. Hmmmm, maybe I need to disconnect my Voodoo2 cards?
+
+*** Important Notes and Changing Default values
+
+- The optimizer settings have been manually reworked in both command line
+ and DevStudio IDE files to hopefully prevent possible irrational code on
+ the part of the code generator. Formerly, it was configured for "/Ox",
+ now it is configured for safer handling at a slight potential performance
+ cost. This may not be required for Visual Studio 6 but I can't test that
+ (yet).
+
+- These files build with the code targeted for Pentium processors and
+ 8-byte structure padding.
+
+- The IDE-built programs seem to be "happier" in that the command line
+ build of the 3Dfx demo "fire" will grenade on exit (?). Otherwise pretty
+ much everything may be built with either interface.
+
+- The currently configured Mesa version is 3.1, and MesaDemos version is
+ the same. To change this permanently you will need to edit NMAKE.MAK and
+ change the lines that look like this (they start o/a line 116):
+
+ # Currently, Mesa is at rev 3.1 ...
+ #
+ !IF "$(MESAVER)" == ""
+ MESAVER=3.1
+ !ENDIF
+
+ # used in building all of the resource files for the Mesa DLLs
+ #
+ !IF "$(MESAFILEVER)" == ""
+ MESAFILEVER=3,1,0,0
+ !ENDIF
+
+- Currently the build files are configured to be used from a Win32
+ directory that is included inside the main Mesa-3.1 heirarchy.
+
+- The build files are smart enough to find the files for the core lib, glu,
+ glut, and the various demo programs if they are unpacked in the current
+ Mesa-3.1 heirarchy, like this:
+
+ \Mesa-3.1
+ \Mesa-3.1\src
+ \Mesa-3.1\src-glu
+ \Mesa-3.1\src-glut
+ \Mesa-3.1\Win32
+ \Mesa-3.1\samples
+ \Mesa-3.1\demos
+ \Mesa-3.1\book
+ \Mesa-3.1\3Dfx\demos
+
+ ... should work. This arose because my initial build tests for the
+ demo files were done before MesaDemos 2.6 had been released.
+
+- With the exception of the static link libraries generated by this file
+ set (mesagl.lib, mesaglu.lib, mesaglut.lib) all DLLs and executables are
+ built against the "Multithreaded DLL" runtime - this means that they
+ require MSVCRT.DLL or MSVCRTD.DLL in the path to execute.
+
+ ** CHANGED 8/11/98 ***
+
+ Note also that the demos are all built aginst the "OpenGL32, GLU32, and
+ GLUT32" and as such they are fairly agnostic wrt: building against Mesa
+ for CPU-rendering, Mesa-for-3Dfx, Mesa-for-S3, or System OpenGL.
+
+ If you want to build them for use on your system and your display card
+ provides full OpenGL acceleration (Permedia, Intel740, Intergraph,
+ whatever) then you only need to build GLUT prior to building any of the
+ demo programs. For convenience, the GLUT project is included in each of
+ the demo projects Workspace files for the DevStudio IDE builds BUT it is
+ not automatically built - you still need to build it first manually.
+
+ Note that if you have GLUT already installed on your system (gl/glut.h in
+ yoru INCLUDE path, glut32.lib/glut32d.lib in your LIB path, and the DLL
+ in your PATH) then you do NOT need to build GLUT prior to the test
+ programs.
+
+- The 3Dfx build of Mesa has primarily been tested with Quake 2 and it runs
+ (mostly) fine on my PC (take that for what you want it)...
+
+ ** CHANGED 8/11/98 ***
+
+ There is still something going on that causes Glide to crash on shutdown,
+ when I run fxMesa under Windows NT, however it does not appear to occur
+ under Windows 9x on either Voodoo1 or Voodoo2 cards. *sigh*
+
+- I can not test the S3 build as I have no machines available with Virge
+ based display cards.
+
+- The multithreaded test code is *not* built as it requires pthreads and I
+ have as of yet spent not time trying to get that running. The latest word
+ that I saw WRT threading support on win32 was that they are intending to
+ support it natively within Win32 - so I'm waiting it out until they get
+ it done.
+
+- Similarly, the 'xdemos' are not currently built because I haven't gotten
+ around to building the client libs for native win32 and getting it all
+ setup for use.
+
+*** Output Files
+
+All final output files (DLL/LIB) are placed in the Mesa-3.1/lib directory,
+with the exception of the fxMesaGL32 build which is placed in
+Mesa-3./lib/FX and the executable images which are placed in their source
+directories.
+
+To be able to execute the various test programs, you will need to copy the
+requisite DLL files into the same directory as the EXE files. Note that
+most of the 3Dfx/demos/* programs WILL run with the non-FX build of Mesa -
+just very slowly. The two programs which are hard-linked with the FX build
+and will not run without it are "glbpaltx" which uses "gl3DfxSetPaletteEXT"
+directly instead of via the extensions mechanism and "tunnel2" which uses
+"fxMesaSelectCurrentBoard" API for selecting between multiple 3Dfx cards
+installed in one system. Likewise, "paltex" directly uses the
+"glColorTableEXT" extension and thus may not run on anything except
+Mesa. If these applications used the proper extension mechanism they could
+then be used on more than "just" fxMesa to good effect (for example, the
+rest of the "3Dfx/demos" run just peachy on the Intel740 card in my test
+machine) under WinNT.
+
+Because I'm anal about my computer and it's organization, and I like to
+prevent collision between builds, each of the subprojects has their own
+intermediate file directory inside .\win32\release (for example, when
+building mesagl.lib all of it's intermediate files will be found in
+.\win32\release\lib.mesagl). This makes it very easy to cleanup as you
+only need to remove .\win32\release.
+
+*** Okay, Enough, how do I build with this stuff already Ted!
+
+Okay, no major calamity here. The basic way to use the project file is to
+call it via NMAKE from the command line. The format is:
+
+ nmake[.exe] /f nmake.mak [options] [target]
+
+The most likely [options] values you will use may be any combination of the
+following:
+
+ DEBUG=1 or DEBUG=0
+ USE_CRTDLL=1 or USE_CRTDLL=0
+
+ Note that all three of these options are OFF by default.
+
+The [target] includes but is not limited to the following (for full details
+please peruse the NMAKE.MAK and NMAKE.MIF files - but be warned that
+NMAKE.MIF is rather large and sometimes hard to follow):
+
+ --- convenience targets ---
+
+ all - builds everything
+ libfiles - builds all linking library files
+ progs - builds all executable images
+
+ --- library files, static and dynamic ---
+
+ mesagl - static lib build of Mesa core.
+ mesaglu - static lib build of MesaGLU core.
+ mesaglut - static lib build of Mesa GLUT core.
+
+ mesagl32 - dynamic lib build of Mesa core.
+
+ mesaglu32 - dynamic lib build of GLU core, generates
+ GLU32.DLL and/or GLU32d.DLL.
+
+ mesaglut32 - dynamic lib build of GLUT core, generates
+ GLUT32.DLL and/or GLUT32d.dll.
+
+ --- hardware accelerated mesa builds ---
+
+ fxmesagl32 - builds Mesa for use on top of the 3Dfx
+ Glide runtime libs
+
+ s3mesagl32 - builds mesa for use on top of the S3
+ 'S3Tk' runtime libs.
+
+ --- executable images ---
+
+ progs.book - builds all programs in \book directory
+ progs.demos - builds all programs in \demos directory
+ progs.samples - builds all programs in \samples directory
+
+ These targets generate all of the programs in their respective
+ directories and link the executables against OpenGL32.DLL,
+ GLU32.DLL, and GLUT32.DLL (or their debug equivalents).
+
+ progs.3dfx.demos - builds all programs in \3dfx\demos directory
+
+ This target generates the 3Dfx/Demo executables, linking them
+ against GLUT32.DLL, GLU32.DLL, OPENGL32.DLL and are thus NOT
+ hard-bound to using Mesa per-se as you can simply NOT build the
+ Mesa core and GLU libraries.
+
+ --- Microsoft/SGI OpenGL-based GLUT and Demo program builds ----
+
+ *** IMPORTANT SAFETY TIP: If you're going to build these variants of
+ GLUT then DO NOT build any other target libraries in this package
+ first, OR from the command line run the "nmake /f nmake.mak clean"
+ command first! This is because generation of the GLUT for SGI
+ OpenGL target libraries conflicts in naming with the static build
+ libraries of Mesa and it's supporting GLUT build.
+
+ Currently, you may build GLUT as either GLUT32.DLL or GLUT.DLL for
+ use running against either Microsoft or SGI OpenGL for Window,
+ respectively. This allows for the general use of GLUT 3.7 on Windows
+ systems with fully compliant OpenGL.
+
+ You can build the GLUT DLL files either with the command line by
+ issuing either of these commands:
+
+ nmake /f nmake.mak glut.sysgl
+
+ <or>
+
+ nmake /f nmake.mak glut.sgigl
+
+ OR by using the DevStudio MesaLib Worksapce build the GLUT_SGIGL or
+ GLUT_SYSGL projects within the DevStudio IDE.
+
+ Unfortunately, the only way to build the test programs against this
+ build of GLUT is via the command line, and I will NOT be making
+ duplicate demo program projects for the IDE as it's just not worth it,
+ sorry.
+
+ To build the test programs against either MS or SGI OpenGL, you do so
+ via either of these two commands:
+
+ nmake /f nmake.mak progs.sysgl
+
+ <or>
+
+ nmake /f nmake.mak progs.sgigl
+
+ To use the GLUT-for-system-OpenGL in your own programs, you need to do
+ three things by way of preparation, after building GLUT of course:
+
+ 1. Copy include\gl\glut.h to somewhere in your %INCLUDE% path, one
+ likely candidate location would be in your
+ "DevStudio\VC\INCLUDE\GL" directory.
+
+ 2. Copy the linking libraries to somewhere in your %LIB% path, one
+ likely candidate location would be in your "DevStudio\VC\LIB"
+ directory. The linking libraries you need to copy are as
+ follows:
+
+ .\Release\GLUT32.LIB
+ .\Release\GLUT.LIB
+ .\Debug\GLUT32.LIB
+ .\Debug\GLUT.LIB
+
+ 3. Copy the runtime libraries to somewhere in your %PATH%, one
+ likely candidate location would be in WINDOWS\SYSTEM. the files
+ that you should copy are as follows:
+
+ .\Release\GLUT32.DLL
+ .\Release\GLUT32.PDB
+ .\Release\GLUT.DLL
+ .\Release\GLUT.PDB
+ .\Debug\GLUT32d.DLL
+ .\Debug\GLUT32d.PDB
+ .\Debug\GLUTd.DLL
+ .\Debug\GLUTd.PDB
+
+Some examples are in order ...
+
+ ... build all dynamic-link libs using MSVCRT.DLL for C runtime:
+
+ nmake /f nmake.mak USE_CRTDLL=1 alldynamic
+
+ ... To build all library variants and all test and demonstration
+ programs with the default settings you do this:
+
+ nmake /f nmake.mak all
+
+ ... to build all static link libs and nothing else you do this:
+
+ nmake /f nmake.mak allstatic
+
+ ... to build all non-accelerated dynamic link libs you do this:
+
+ nmake /f nmake.mak alldynamic
+
+ ... to build all 3Dfx targeted dynamic link libs you do this:
+
+ nmake /f nmake.mak allaccel
+
+ ... to build all S3 Virge targetd dynamic link libs you do this:
+
+ nmake /f nmake.mak alls3
+
+ ... to build all libraries, static and dynamic, in all versions
+ you do this:
+
+ nmake /f nmake.mak libfiles
+
+ ... to subsequently build all demo and test programs you do this:
+
+ nmake /f nmake.mak progs
+
+ ... to cleanup all intermediate files you do this:
+
+ nmake /f clean
+
+You get the picture. (I hope) ;^) You may also specify specify
+single targets in a convenient fashion. The rule is simple, any of the
+above named lib files, static or dynamic, may be built by providing it's
+name on the command line as the target. Examples:
+
+ ... to build only Mesa as OpenGL32.DLL ...
+
+ nmake /f nmake.mak opengl32
+
+ ... to build only Mesa on top of the 3Dfx Glide API ...
+
+ nmake /f nmake.mak fxMesaGL32
+ <or>
+ nmake /f nmake.mak fxMesaGL
+
+ ... to build only Mesa on top of the S3 Toolkit ...
+
+ nmake /f nmake.mak s3MesaGL32
+ <or>
+ nmake /f nmake.mak s3mesaGL
+
+*** Revision history for ./win32 project files
+
+1/18/98 - initial cut submitted and included with core mesa
+2/5/98 - fixed internal dependency within nmake.mif upon there being
+ a $(DEVDIR) variable to make some temporary batch files
+ dependant upon (thanks to Keven T. McDonnell for finding
+ that there was this particular bug). I also updated the
+ build files for 2.6beta6.
+2/8/98 - added DevStudio workspace and project files for all lib
+ files and some test programs. Updated readme.win32.
+6/25/98 - initial revision for Mesa 3.0, does not include IDE files,
+ not everything is running. *sigh*
+7/20/98 - Mesa 3.0beta6 rev of all build files, all libs built and
+ minimally tested, all demo programs built and minimally
+ tested to within limits of my PC. ;^) Eveything looks
+ MUCH better now ...
+7/30/98 - Minor updates/edits based upon feedback from
+ Eero Pajarre <epajarre@koti.tpo.fi>. These updates include a fix
+ to the Mesa-on-3Dfx build such that Quake-II now runs almost
+ properly on my system. It runs, just *very* slowly and with *no*
+ textures. Hmmm. Doesn't make any difference whether Quake is set
+ to use 8-bit textures or not.
+8/13/98 - Lots of build cleanups, minor bug fixes in fxwgl.c, and
+ compatability fix in fxapi.c for in-window rendering using 3Dfx
+ hardware.
+8/26/98 - Final revisions for Mesa 3 release checked
+9/22/98 - Fixed static builds for all but fxMesaGL32 and s3MesaGL32 targets
+9/29/98 - Reorganized FAQ information and added Added faq entry about Glide
+ bug under NT (crash on exit) and a workaround.
+11/21/98 - Updated files for Mesa 3.1 beta 1
+ Updated fxMesa window-hack code
+ Updated fxMesa resolution support to handle 1600x1200 & 1280x1024
+7/9/99 - Rev'd for Mesa 3.1 beta 2
\ No newline at end of file diff --git a/xc/extras/Mesa/docs/README.X11 b/xc/extras/Mesa/docs/README.X11 new file mode 100644 index 000000000..e17882566 --- /dev/null +++ b/xc/extras/Mesa/docs/README.X11 @@ -0,0 +1,326 @@ + + Mesa 3.4 Unix/X11 Information + + + +Installation +============ + +There are two ways to compile Mesa on Unix/X11 systems: + +1. The old way: + First type 'make' alone to see the list of system + configurations currently supported. If you see your configuration on the + list, type 'make <config>'. Most popular Unix/X workstations are currently + supported. + + If your system configuration is not listed by 'make', you'll have to modify + the top-level Makefile and Make-config files. There are instructions in + each file. + + +2. The new way: + Type './configure' and then 'make'. This uses GNU autoconfig. + See docs/INSTALL for more details. + + +The top-level makefile will execute the makefiles in a number of sub- +directories. When finished, the Mesa libraries will be in the Mesa-3.3/lib/ +directory. A few GLUT demos in the demos/ directory should be ready to run. + +If you also downloaded and unpacked the demos there should be executables +in the "xdemos/", "samples/", and "book/" directories for you to try out. + +If you have compilation problems you should try to fix them and return the +patches to the author. + + +Notes on assembly language optimizations: + + When using the old-style Makefiles, you can specify a configuration + that uses X86 assembly language optimizations (linux-3dnow for example). + + The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at + runtime. That means you can compile Mesa for 3DNow! optimizations + even if you don't have an AMD CPU. + + However, your Linux binutils and assembler must understand the + special instructions in order to compile them. If you have + compilation problems, try upgrading your binutils. + + +Header and library files: + After you've compiled Mesa and tried the demos I recommend the following + procedure for "installing" Mesa. + + Copy the Mesa include/GL directory to /usr/local/include: + cp -r include/GL /usr/local/include + + Copy the Mesa library files to /usr/local/lib: + cp lib/* /usr/local/lib + + (actually, use "cp -d" on Linux to preserve symbolic links) + + +Xt/Motif widgets: + If you want to use Mesa or OpenGL in your Xt/Motif program you can build + the widgets found in either the widgets-mesa or widgets-sgi directories. + The former were written for Mesa and the later are the original SGI + widgets. Look in those directories for more information. + + +Notes: + HP users: a Mesa user reports that the HP-UX 10.01 C compiler has + a bug which effects glReadPixels. A patch for the compiler (PHSS_5743) is + available. Otherwise be sure your compiler is version 10.13 or later. + + QNX users: if you have problems running the demos try setting the + stack size to 200K or larger with -N200K, for example. + + SunOS 5.x users: The X shared memory extension may not work + correctly. If Mesa prints an error message to the effect of "Shared memory + error" then you'll have to append the following three lines to the end of + your /etc/system file then reboot: + set shmsys:shminfo_shmmax = 0x2000000 + set shmsys:shminfo_shmmni = 0x1000 + set shmsys:shminfo_shmseg = 0x100 + + + +Using the library +================= + +Configuration options: + The file src/config.h has many parameters which you can adjust such + as maximum number of lights, clipping planes, maximum texture size, + etc. In particular, you may want to change DEPTH_BITS from 16 to 32 + if a 16-bit depth buffer isn't precise enough for your application. + + +Shared libraries: + If you compile shared libraries you may have to set an environment + variable to specify where the Mesa libraries are located. On Linux and + Sun systems for example, set the LD_LIBRARY_PATH variable to include + /your-dir/Mesa-2.6/lib. Otherwise, when you try to run a demo it + may fail with a message saying that one or more libraries couldn't be + found. + + +Remote display of OpenGL/GLX programs: + As of version 1.2.3, Mesa's header files use the same GLenum and GLUenum + values as SGI's (and most/all other vendor's) OpenGL headers. This means + you can freely mix object files compiled with OpenGL or Mesa headers. + In fact, on systems with dynamic runtime linkers it's possible to dynam- + ically link with Mesa or OpenGL shared libraries at runtime, without + recompiling or relinking anything! + + Using IRIX 5.x as an example, you can run SGI's OpenGL demos with the + Mesa shared libraries as follows. Let's assume you're installing Mesa + in /usr/local/Mesa and using the C-shell: + % cd /usr/local/Mesa + % make irix5-dso + % setenv _RLD_LIST "/usr/local/Mesa/lib/libGL.so:DEFAULT" + % /usr/demos/bin/ideas_ogl // this is a test + + You can now run OpenGL executables on almost any X display! There may + be some problems from the fact that Mesa supports many X visual types + that an OpenGL client may not expect (grayscale for example). In this + case the application may abort, print error messages, or just behave + strangely. You may have to experiment with the MESA_RGB_VISUAL envi- + ronment variable. + + +Xt/Motif Widgets: + Two versions of the Xt/Motif OpenGL drawing area widgets are included: + + widgets-sgi/ SGI's stock widgets + widgets-mesa/ Mesa-tuned widgets + + Look in those directories for details + + +Togl: + Togl is an OpenGL/Mesa widget for Tcl/Tk. + See http://togl.sourceforge.net for more information. + + + +X Display Modes: + Mesa supports RGB(A) rendering into almost any X visual type and depth. + + The glXChooseVisual function tries its best to pick an appropriate visual + for the given attribute list. However, if this doesn't suit your needs + you can force Mesa to use any X visual you want (any supported by your + X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL + environment variables. When an RGB visual is requested, glXChooseVisual + will first look if the MESA_RGB_VISUAL variable is defined. If so, it + will try to use the specified visual. Similarly, when a color index + visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL + variable. + + The format of accepted values is: <visual-class> <depth> + Here are some examples: + + using the C-shell: + % setenv MESA_RGB_VISUAL "TrueColor 8" // 8-bit TrueColor + % setenv MESA_CI_VISUAL "PseudoColor 12" // 12-bit PseudoColor + % setenv MESA_RGB_VISUAL "PseudoColor 8" // 8-bit PseudoColor + + using the KornShell: + $ export MESA_RGB_VISUAL="TrueColor 8" + $ export MESA_CI_VISUAL="PseudoColor 12" + $ export MESA_RGB_VISUAL="PseudoColor 8" + + +Double buffering: + Mesa can use either an X Pixmap or XImage as the backbuffer when in + double buffer mode. Using GLX, the default is to use an XImage. The + MESA_BACK_BUFFER environment variable can override this. The valid + values for MESA_BACK_BUFFER are: Pixmap and XImage (only the first + letter is checked, case doesn't matter). + + A pixmap is faster when drawing simple lines and polygons while an + XImage is faster when Mesa has to do pixel-by-pixel rendering. If you + need depth buffering the XImage will almost surely be faster. Exper- + iment with the MESA_BACK_BUFFER variable to see which is faster for + your application. + + +Colormaps: + When using Mesa directly or with GLX, it's up to the application writer + to create a window with an appropriate colormap. The aux, tk, and GLUT + toolkits try to minimize colormap "flashing" by sharing colormaps when + possible. Specifically, if the visual and depth of the window matches + that of the root window, the root window's colormap will be shared by + the Mesa window. Otherwise, a new, private colormap will be allocated. + + When sharing the root colormap, Mesa may be unable to allocate the colors + it needs, resulting in poor color quality. This can happen when a + large number of colorcells in the root colormap are already allocated. + To prevent colormap sharing in aux, tk and GLUT, define the environment + variable MESA_PRIVATE_CMAP. The value isn't significant. + + +Gamma correction: + To compensate for the nonlinear relationship between pixel values + and displayed intensities, there is a gamma correction feature in + Mesa. Some systems, such as Silicon Graphics, support gamma + correction in hardware (man gamma) so you won't need to use Mesa's + gamma facility. Other systems, however, may need gamma adjustment + to produce images which look correct. If in the past you thought + Mesa's images were too dim, read on. + + Gamma correction is controlled with the MESA_GAMMA environment + variable. Its value is of the form "Gr Gg Gb" or just "G" where + Gr is the red gamma value, Gg is the green gamma value, Gb is the + blue gamma value and G is one gamma value to use for all three + channels. Each value is a positive real number typically in the + range 1.0 to 2.5. The defaults are all 1.0, effectively disabling + gamma correction. Examples using csh: + + % setenv MESA_GAMMA "2.3 2.2 2.4" // separate R,G,B values + % setenv MESA_GAMMA "2.0" // same gamma for R,G,B + + The demos/gamma.c program may help you to determine reasonable gamma + value for your display. With correct gamma values, the color intensities + displayed in the top row (drawn by dithering) should nearly match those + in the bottom row (drawn as grays). + + Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well + on HP displays using the HP-ColorRecovery technology. + + Mesa implements gamma correction with a lookup table which translates + a "linear" pixel value to a gamma-corrected pixel value. There is a + small performance penalty. Gamma correction only works in RGB mode. + Also be aware that pixel values read back from the frame buffer will + not be "un-corrected" so glReadPixels may not return the same data + drawn with glDrawPixels. + + For more information about gamma correction see: + http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html + + +Overlay Planes + + Overlay planes in the frame buffer are supported by Mesa but require + hardware and X server support. To determine if your X server has + overlay support you can test for the SERVER_OVERLAY_VISUALS property: + + xprop -root | grep SERVER_OVERLAY_VISUALS + + +HPCR glClear(GL_COLOR_BUFFER_BIT) dithering + + If you set the MESA_HPCR_CLEAR environment variable then dithering + will be used when clearing the color buffer. This is only applicable + to HP systems with the HPCR (Color Recovery) system. + + +Extensions: + The following OpenGL GLX extensions are currently implemented: + + GLX_EXT_visual_info - GLX visual and transparent pixel extension + GLX_EXT_visual_rating - GLX visual caveats + + For detailed information about the extensions see www.opengl.org + + There are four Mesa-specific GL/GLX extensions at this time. + + GLX_MESA_pixmap_colormap + + This extension adds the GLX function: + + GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, + Pixmap pixmap, Colormap cmap ) + + It is an alternative to the standard glXCreateGLXPixmap() function. + Since Mesa supports RGB rendering into any X visual, not just True- + Color or DirectColor, Mesa needs colormap information to convert RGB + values into pixel values. An X window carries this information but a + pixmap does not. This function associates a colormap to a GLX pixmap. + See the xdemos/glxpixmap.c file for an example of how to use this + extension. + + GLX_MESA_release_buffers + + Mesa associates a set of ancillary (depth, accumulation, stencil and + alpha) buffers with each X window it draws into. These ancillary + buffers are allocated for each X window the first time the X window + is passed to glXMakeCurrent(). Mesa, however, can't detect when an + X window has been destroyed in order to free the ancillary buffers. + + The best it can do is to check for recently destroyed windows whenever + the client calls the glXCreateContext() or glXDestroyContext() + functions. This may not be sufficient in all situations though. + + The GLX_MESA_release_buffers extension allows a client to explicitly + deallocate the ancillary buffers by calling glxReleaseBuffersMESA() + just before an X window is destroyed. For example: + + #ifdef GLX_MESA_release_buffers + glXReleaseBuffersMESA( dpy, window ); + #endif + XDestroyWindow( dpy, window ); + + This extension is new in Mesa 2.0. + + GLX_MESA_copy_sub_buffer + + This extension adds the glXCopySubBufferMESA() function. It works + like glXSwapBuffers() but only copies a sub-region of the window + instead of the whole window. + + This extension is new in Mesa version 2.6 + + + +Summary of X-related environment variables: + MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) + MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) + MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) + MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) + MESA_GAMMA - gamma correction coefficients (X only) + + +---------------------------------------------------------------------- +$Id: README.X11,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/RELNOTES-3.1 b/xc/extras/Mesa/docs/RELNOTES-3.1 new file mode 100644 index 000000000..6980b4302 --- /dev/null +++ b/xc/extras/Mesa/docs/RELNOTES-3.1 @@ -0,0 +1,146 @@ + + Mesa 3.1 release notes + + PLEASE READ!!!! + + +New copyright +------------- + +Mesa 3.1 will be distributed under an XFree86-style copyright instead +of the GNU LGPL. + + +New directories +--------------- + +All documentation files are now in the docs/ directory. +All shell scripts are now in the bin/ directory. + + +New library names +----------------- + +Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a) +and the GLU library was named libMesaGLU.so (or libMesaGLU.a). + +Now, the main library is named libGL.so (or libGL.a) and the GLU library +is named libGLU.so (or libGLU.a). + +The change allows Mesa to be more easily substituted for OpenGL. +Specifically, the linker/loader on some Unix-like systems won't +allow libMesaGL.so to be used instead of libGL.so if the application +was linked with the former. + +Warning: if you have another OpenGL implementation installed on your +system (i.e. you have another OpenGL libGL.so) you'll have to be +carefull about which library (OpenGL or Mesa) you link against. Be +aware of -L linker flags and the value of the LD_LIBRARY_PATH environment +variable. + + +New library versioning +---------------------- + +Previously, the Mesa GL library was named libMesaGL.so.3.0 +To better support Linux/OpenGL standards, the Mesa GL library is now +named libGL.so.1.2.030100 This indicates version 1.2 of the OpenGL spec +and Mesa implementation 3.1.0 + +In the long term this will allow better interoperability with other +OpenGL implementations, especially on Linux. In the short term, +OpenGL apps may have to be relinked to use the new library naming. + + + +New makefiles +------------- + +The old Makefiles found in the various directories have been renamed +to Makefile.X11 in order to prevent filename collisions with autoconfig- +generated Makefiles. + +The top-level Makefile simply includes Makefile.X11 +If your top-level Makefile get's overwritten/destroyed you can restore +it by copying Makefile.X11 to Makefile + + +New extensions +-------------- + +GL_EXT_stencil_wrap + Implements two new stencil operations: GL_INCR_WRAP_EXT and + GL_DECR_WRAP_EXT which allow stencil increment and decrement + without clamping. + +GL_INGR_blend_func_separate + Allows specification of blend factors for RGB and Alpha independently. + (INGR = Intergraph) + +GL_ARB_multitexture + Multiple simultaneous textures. (ARB = Architecture Review Board) + +GL_NV_texgen_reflection + nVidia texgen extension for better reflection mapping. + +GL_PGI_misc_hints + Assorted transformation hints. + +GL_EXT_compiled_vertex_array + Compiled vertex arrays. + +GL_EXT_clip_volume_hint + Allows one to disable clip volume (frustum) testing. + + + +Extensions removed +------------------ + +GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture + + + +Config file +----------- + +By default, /etc/mesa.conf will be read when Mesa starts. This +file controls default hints, enable/disable of extensions, and +more. See the CONFIG file for documentation. + + + +Optimizations +------------- + +Keith Whitwell has contributed significant optimizations to Mesa's +vertex transformation code. Basically, the whole transformation +stage of Mesa has been rewritten. + +It's impossible to give a speedup factor. You'll just have to +try your app and see how it performs. + + + +Device Driver changes +--------------------- + +A bunch of new device driver functions have been added. See src/dd.h +Keith Harrison contributed many of them. I've been planning on adding +a bunch of functions like these to make writing hardware drivers easier. +More such function will probably be added in the near future. + + + +Miscellaneous +------------- + +util/glstate.c has some handy functions for debugging. Basically, it +offers a simple function for printing GL state variables. It's not +finished yet. There's a LOT more GLenum records to be added (see the +code). Anyone want to help? + + + +---------------------------------------------------------------------- +$Id: RELNOTES-3.1,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/RELNOTES-3.2 b/xc/extras/Mesa/docs/RELNOTES-3.2 new file mode 100644 index 000000000..e4d4179fd --- /dev/null +++ b/xc/extras/Mesa/docs/RELNOTES-3.2 @@ -0,0 +1,12 @@ + + Mesa 3.2 release notes + + PLEASE READ!!!! + + +Mesa 3.2 is a stabilization of the Mesa 3.1 release. No new features +have been added. For a list of bug fixes please read the VERSIONS file. + + +---------------------------------------------------------------------- +$Id: RELNOTES-3.2,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ diff --git a/xc/extras/Mesa/docs/RELNOTES-3.2.1 b/xc/extras/Mesa/docs/RELNOTES-3.2.1 new file mode 100644 index 000000000..9b07676b2 --- /dev/null +++ b/xc/extras/Mesa/docs/RELNOTES-3.2.1 @@ -0,0 +1,32 @@ + + Mesa 3.2.1 release notes + + PLEASE READ!!!! + + + +The Mesa 3.2.1 release mainly just fixes bugs since the 3.2 release. +See the VERSIONS file for the exact list. + + + +GLU Polygon Tessellator +----------------------- + +The GLU tessellator has been reverted back to the version included +with Mesa 3.0 since it's more stable. The Mesa 3.1/3.2 tessellator +implemented the GLU 1.3 specification but suffered from a number of +bugs. + +Mesa implements GLU 1.1. + +Ideally, people should use the GLU 1.3 library included in SGI's +OpenGL Sample Implementation (SI) available from +http://oss.sgi.com/projects/ogl-sample/ +People are working to make easy-to-install Linux RPMs of the +GLU library. + + + +---------------------------------------------------------------------- +$Id: RELNOTES-3.2.1,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/RELNOTES-3.3 b/xc/extras/Mesa/docs/RELNOTES-3.3 new file mode 100644 index 000000000..f599be3a4 --- /dev/null +++ b/xc/extras/Mesa/docs/RELNOTES-3.3 @@ -0,0 +1,271 @@ + + Mesa 3.3 release notes + + July 21, 2000 + + PLEASE READ!!!! + + + +Introduction +------------ + +Mesa uses an even/odd version number scheme like the Linux kernel. +Odd numbered versions (such as 3.3) designate new developmental releases. +Even numbered versions (such as 3.2.1) designate stable releases. + +Mesa 3.3 has a undergone many internal changes since version 3.2 +and features a lot of new extensions. 3.3 is expected to be pretty +stable, but perhaps not as stable as 3.2 which has been used by +thousands of users over the past months. + +Everyone is encouraged to try Mesa 3.3. Bugs should be reported to +the Mesa bug database on www.sourceforge.net. + + + +Header file / GLenum changes +---------------------------- + +The gl.h and glu.h headers now use #defines to define all GL_* tokens +instead of C-language enums. This change improves Mesa/OpenGL +interoperability. + + + +New API dispatch code +--------------------- + +The core Mesa gl* functions are now implemented with a new dispatch +(jump table) which will allow simultaneous direct/indirect rendering. + +The code is found in the glapi*.[ch] files. + +Of interest: the actual "glFooBar" functions are generated with +templatized code defined in glapitemp.h and included by glapi.c +The glapitemp.h template should be reusable for all sorts of OpenGL +projects. + +The new dispatch code has also optimized with x86 assembly code. +This optimization eliminates copying the function arguments during +dispatch. + + + +New thread support +------------------ + +Thread support in Mesa has been rewritten. The glthread.[ch] files +replace mthreads.[ch]. Thread safety is always enabled (on platforms +which support threads, that is). There is virtually no performance +penalty for typical single-thread applications. See the glapi.c +file for details. + +The Xlib driver (XMesa) is now thread-safe as well. Be sure to +call XInitThreads() in your app first. See the xdemos/glthreads.c +demo for an example. + + + +Make configuration changes +-------------------------- + +If you use the old-style (non GNU automake) method to build Mesa note +that several of the configuration names have changed: + + Old name New name + ------------- ---------------- + linux-elf linux + linux linux-static + linux-386-elf linux-386 + linux-386 linux-386-static + etc. + + + +New extensions +-------------- + +GL_ARB_transpose_matrix + Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB() + functions. + +GL_ARB_texture_cube_map + For cube-based reflection mapping. + +GL_EXT_texture_add_env + Adds GL_ADD texture environment mode. + See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt + +GL_EXT_texture_lod_bias + Allows mipmapped texture blurring and sharpening. + +GLX_EXT_visual_rating extension + This extension has no effect in stand-alone Mesa (used for DRI). + +GL_HP_occlusion_test + Used for bounding box occlusion testing (see demos/occlude.c). + +GL_SGIX_pixel_texture / GL_SGIS_pixel_texture + Lets glDraw/CopyPixels draw a texture coordinate image. + +GL_SGI_color_matrix + Adds a color matrix and another set of scale and bias parameters + to the glDraw/CopyPixels paths. + +GL_SGI_color_table + Adds additional color tables to the glDraw/Read/CopyPixels paths. + +GL_EXT_histogram + Compute histograms for glDraw/Read/CopyPixels. + +GL_EXT_blend_func_separate + This is the same as GL_INGR_blend_func_separate. + +GL_ARB_texture_cube_mapping + 6-face cube mapping, nicer than sphere mapping + +GL_EXT_texture_env_combine + For advanced texture environment effects. + + +Documentation for all these functions can be found at +http://oss.sgi.com/projects/ogl-sample/registry/ + + + +GLX_SGI_make_current_read functionality +--------------------------------------- + +The functionality of this extension is needed for GLX 1.3 (and required +for the Linux/OpenGL standards base). + +Implementing this function required a **DEVICE DRIVER CHANGE**. +The old SetBuffer() function has been replaced by SetReadBuffer() and +SetDrawBuffer(). All device drivers will have to be updated because +of this change. + +The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa. +The xdemos/wincopy.c program demonstrates it. + + + +Image-related code changes +-------------------------- + +The imaging path code used by glDrawPixels, glTexImage[123]D, +glTexSubImage[123], etc has been rewritten. It's now faster, +uses less memory and has several bug fixes. This work was +actually started in Mesa 3.1 with the glTexImage paths but has now +been carried over to glDrawPixels as well. + + + +Device driver interface changes +------------------------------- + +Added new functions for hardware stencil buffer support: + WriteStencilSpan + ReadStencilSpan + WriteStencilPixels + ReadStencilPixels + + +Removed old depth buffer functions: + AllocDepthBuffer + DepthTestSpan + DepthTestPixels + ReadDepthSpanFloat + ReadDepthSpanInt + + +Added new depth buffer functions: + WriteDepthSpan + ReadDepthSpan + WriteDepthPixels + ReadDepthPixels + + These functions always read/write 32-bit GLuints. This will allow + drivers to have anywhere from 0 to 32-bit Z buffers without + recompiling for 16 vs 32 bits as was previously needed. + + +New texture image functions + The entire interface for texture image specification has been updated. + With the new functions, it's optional for Mesa to keep an internal copy + of all textures. Texture download should be a lot faster when the extra + copy isn't made. + +Misc changes + TexEnv now takes a target argument + Removed UseGlobalTexturePalette (use Enable function instead) + + +Also added + ReadPixels + CopyPixels + + +The SetBufffer function has been replaced by SetDrawBuffer and +SetReadBuffer functions. This lets core Mesa independently +specify which buffer is to be used for reading and which for +drawing. + +The Clear function's mask parameter has changed. Instead of +mask being the flags specified by the user to glClear, the +mask is now a bitmask of the DD_*_BIT flags in dd.h. Now +multiple color buffers can be specified for clearing (ala +glDrawBuffers). The driver's Clear function must also +check the glColorMask glIndexMask, and glStencilMask settings +and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa +drivers for examples. + + +The depth buffer changes shouldn't be hard to make for existing +drivers. In fact, it should simply the code. Be careful with +the depthBits value passed to gl_create_context(). 1 is a bad +value! It should normally be 0, 16, 24, or 32. + + +gl_create_framebuffer() takes new arguments which explicitly tell +core Mesa which ancillary buffers (depth, stencil, accum, alpha) +should be implemented in software. Mesa hardware drivers should +carefully set these flags depending on which buffers are in the +graphics card. + + + +Internal constants +------------------ + +Point and line size range and granularity limits are now stored +in the gl_constants struct, which is the Const member of GLcontext. +The limits are initialized from values in config.h but may be +overridden by device drivers to reflect the limits of that driver's +hardware. + +Also added constants for NumAuxBuffers and SubPixelBits. + + + +OpenGL Conformance +------------------ + +Mesa now passes all the OpenGL 1.1 conformance tests, except for +antialiased lines. AA lines fail on some, but not all, the tests. +In order to fix the remaining failures, a new AA line algorithm will +be needed (which computes coverage values for end-point fragments). +This will be done for Mesa 3.5/3.6. + + + +OpenGL 1.2 GL_ARB_imaging subset +-------------------------------- + +Mesa 3.3 implements all the features of GL_ARB_imaging except for +image convolution. This will (hopefully) be done for Mesa 3.5/3.6. + + + +---------------------------------------------------------------------- +$Id: RELNOTES-3.3,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/RELNOTES-3.4 b/xc/extras/Mesa/docs/RELNOTES-3.4 new file mode 100644 index 000000000..5e3525470 --- /dev/null +++ b/xc/extras/Mesa/docs/RELNOTES-3.4 @@ -0,0 +1,22 @@ + + Mesa 3.4 release notes + + November 3, 2000 + + PLEASE READ!!!! + + + +Introduction +------------ + +Mesa uses an even/odd version number scheme like the Linux kernel. +Odd numbered versions (such as 3.3) designate new developmental releases. +Even numbered versions (such as 3.4) designate stable releases. + +Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release. For details, +see the VERSIONS file. + + +---------------------------------------------------------------------- +$Id: RELNOTES-3.4,v 1.1.1.1 2000/11/30 17:31:37 dawes Exp $ diff --git a/xc/extras/Mesa/docs/VERSIONS b/xc/extras/Mesa/docs/VERSIONS new file mode 100644 index 000000000..15deb82c5 --- /dev/null +++ b/xc/extras/Mesa/docs/VERSIONS @@ -0,0 +1,777 @@ +$Id: VERSIONS,v 1.1.1.1 2000/11/30 17:31:36 dawes Exp $ + + +Mesa Version History +==================== + +1.0 beta February 1995 + Initial release + +1.1 beta March 4, 1995 + Changes: + faster point and line drawing (2x faster) + more systems supported, better Makefiles + Renamed lib*.a files to avoid collisions + many small bug fixes + New: + pseudo-GLX functions added + new implementation of evaluators (eval2.c) + GLUT support + +1.1.1 beta March 7, 1995 + Changes: + Reverted from eval2.c to eval.c due to FPE on Linux + more speed improvements + more Makefile changes + +1.1.2 beta March 14, 1995 + New: + implementation of SGI's blending extensions + glXUseXFont implemented + added MESA_DEBUG environment variable support + Changes: + Using eval2.c again + more FPE-prevention checks (0-length normals are OK) + a few small bug fixes + much faster pixel logic ops! + faster transformation arithmetic + +1.1.3 beta March 31, 1995 + New: + gluScaleImage() and gluBuild2DMipMaps() implemented + Mesa widgets for Xt/Motif + blendEXT demos + added environment variables for selecting visuals + Changes: + almost all GLUT demos work correctly now + faster X device driver functions + more bug fixes + +1.1.4 beta April 20, 1995 + Bug fixes: + - missing #define SEEK_SET in src-tk/image.c + - compile glShadeModel into display lists + - fixed pow() domain error in src/light.c + - fixed "flickering bitmaps" in double buffer mode + - fixed tk.h and aux.h for C++ + - state of LIGHT_MODEL_LOCAL_VIEWER was inverted + New features: + - MUCH, MUCH nicer dithering in 8-bit RGB mode + - updated widgets and widget demos + - Implemented GLXPixmap functions + - Added GLU 1.1 and GLX 1.1 functions + - Changed the X/Mesa interface API, more versatile + - Implemented gluPartialDisk() + +1.2 May 22, 1995 + Bug fixes: + - IRIX 4.x makefile problem + - modified tk to share root colormap as needed + - gluLookAt normalization problem + - suppress Expose, NoExpose events in swapbuffers + - glBitmap() and glDrawPixels() clipping + New features: + - GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture + modes implemented + - texture maps stored more efficiently + - texture maps can be compiled into display lists + - Bogdan Sikorski's GLU polygon tesselation code + - Linas Vepstas's sweep and extrusion library + - glXCreateContext()'s shareList parameter works as it's supposed to. + XMesaCreateContext() updated to accept a shareList parameter too. + - Mesa can be compiled with real OpenGL .h files + - MESA_BACK_BUFFER environment variable + - better GLX error checking + +1.2.1 June 22, 1995 + Bug fixes: + - X/Mesa double buffer window resize crash + - widgets now pass PointerMotion events + - X/Mesa incorrect default clear color and drawing color + - more robust X MIT-SHM support in X/Mesa + - glTexImage( format=GL_LUMINANCE ) didn't work + - GL_LINE mode polygons with line width > 1.0 could cause a crash + - numerous feedback bugs + - glReadPixels() from depth buffer was wrong + - error prone depth and stencil buffer allocation + New features: + - Preliminary Microsoft Windows driver + - Implemented a number of missing functions: glEvalCoord[12][df]v(), + glGet...(), etc. + - Added a few missing symbols to gl.h and glu.h + - Faster rendering of smooth-shaded, RGBA, depth-buffered polygons. + - Faster rendering of lines when width=2.0 + - Stencil-related functions now work in display lists + Changes: + - renamed aux.h as glaux.h (MS-DOS names can't start with aux) + - most filenames are in 8.3 format to accomodate MS-DOS + - use GLubytes to store arrays of colors instead of GLints + +1.2.2 August 2, 1995 + New features: + - texture mapped points and lines + - NURBS! (but not 100% complete) + - viewports may safely extend beyond window boundaries + - MESA_PRIVATE_CMAP environment variable + - Grayscale X display support + - two new demos: demos/gears.c and demos/shadow.c + - MachTen for Macintosh configuration + Bug fixes: + - glGet*(GL_DEPTH_BITS) returned bytes, not bits + - point, line, and bitmap rasterization suffered from roundoff errors + - fixed a division by zero error in line clippping + - occasional wrong default background color really fixed! + - glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work + - gluBuild2DMipmaps malloc problem fixed + - view volume clipping of smooth shaded lines resulted in bad colors + Changes: + - new visual selection method in glXChooseVisual() + - improved GLU quadric functions + - call XSync for glFinish and XFlush for glFlush + - glVertex() calls now use a function pointer to avoid conditionals + - removed contrib directory from Mesa tar file (available on ftp site) + - AIX shared library support + - Removed GLUenum type as it's not in OpenGL + +1.2.3 September 26, 1995 + New features: + - Mesa header files now equivalent to SGI OpenGL headers + - Support for HP's Color Recovery dithering displays + - Faster vertex transformation + - Faster raster operations into X windows under certain conditions + - New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General + - 4-bit visuals now supported + Bug fixes: + - glScissor bug fixed + - round-off errors in clipping lines against clip planes fixed + - byte swapping between hosts and display servers implemented + - glGetError() can be called without a current rendering context + - problem with accidentally culled polygons is fixed + - fixed some widget compilation problems + +1.2.4 November 17, 1995 + New features: + - More speed improvements (lighting, fogging, polygon drawing) + - Window system and OS-independent off-screen rendering + - Preliminary Fortran bindings + - glPolygonOffsetEXT implemented + - glColorMask and glIndexMask now fully implemented + - glPixelZoom implemented + - display lists fully implemented + - gamma correction + - dithering in 8-bit TrueColor/DirectColor visuals + Changes: + - Improved device driver interface + - tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk + - Dithering support moved from core into device driver + Bug fixes: + - glEnable/Disable( GL_LIGHTING ) didn't always take effect + - glReadPixels byte swapping was broken + - glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken + - duplicate glColor4b() prototype in GL/gl.h removed + - stripes in wave -ci demo fixed + - GL_LINEAR_MIPMAP_NEAREST had wrong value + - bugs in HP Color Recovery support fixed + - fixed bug when blending lines, points, bitmaps outside of window + +1.2.5 November 30, 1995 + New Features: + - updated MS Windows driver + - new implementation of StaticGray/GrayScale visual support + Bug fixes: + - pixelzooming with gamma correction or blending didn't work + - HP color recovery visual wasn't being picked by glXChooseVisual + - glClear didn't always observe glColorMask changes + - olympic and offset demos didn't compile on some Suns + - texcoord clamping wasn't correct + - a polygon optimization introduced an occasional sampling problem + +1.2.6 January 26, 1996 + New Features: + - faster line and polygon rendering under certain conditions. See + Performance Tips 9 and 10 in README + - profiling + - lighting is a bit faster + - better perspective corrected texture mapping + - Amiga AmiWin (X11) support + - preliminary Linux SVGA driver + Changes: + - now using a 16-bit depth buffer, faster, smaller + - GL_NORMALIZE is disabled by default + Bug fixes: + - projective texture mapping + - fixed a memory leak in the context destroy function + - GL_POLYGON with less than 3 vertices caused a crash + - glGet*() returned wrong result for GL_INDEX_MODE + - reading pixels from an unmapped X window caused a BadMatch error + +1.2.7 March 5, 1996 + New: + - faster lighting + - faster 16-bit TrueColor rendering on Linux + - faster 32-bit TrueColor rendering on Linux, HP, IBM + - non-depth-buffered XImage polygons are faster + - vertex array extension + - software alpha planes + - updated Macintosh driver + - new NeXT driver + - GLU quadric functions generate texture coordinates + - reflect.c demo - reflective, textured surface demo + Changes: + - gamma correction code moved into the X driver for better performance + Bug fixes: + - multiple glClipPlane()'s didn't work reliably + - glPolygonMode() didn't always work + - glCullFace( GL_FRONT_AND_BACK ) didn't work + - texture mapping with gamma correction was buggy + - floating point exceptions in texture coordinate interpolation + - XImage byte swapping didn't always work + - polygon edge flags weren't always used correctly + +1.2.8 May 22, 1996 + New: + - overlay planes on X servers with the SERVER_OVERLAY_VISUALS property + - better monochrome output + - more IRIX 6.x configurations + - more robust RGB mode color allocation + - added MESA_XSYNC environment variable + - GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions + - GL_MESA_window_pos extension + - faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT + and GL_UNSIGNED_INT + - driver for prototype Cirrus Mondello 3-D board + - updated AmigaDOS driver + - a few small speed optimizations in polygon rendering + Changes: + - internal device driver interface modified to simplify device + driver implementations and to support hardware Z buffers + - several changes to the X/Mesa interface (xmesa.h) + Bug fixes: + - fixed pow(0,0) domain error triggered on some systems + - glStencilClear() in a display list caused an infinite loop + - glRasterPos*() was sometimes off by +/-0.5 in X and Y + - color masking and blending were performed in wrong order + - auxSolidCylinder() sometimes drew a wire-frame cylinder + - fixed file writing bug in osdemo.c + - pixel mapping didn't always work + - the GL_GEQUAL stencil func didn't work + - the GL_INVERT stencil op didn't work + - the stencil write mask didn't work + - glPush/PopAttrib() didn't do enough error checking + - glIsList() didn't always work correctly + +2.0 October 10, 1996 + New: + - Implements OpenGL 1.1 API functions + - all texture filtering modes supported (mipmapping) + - faster texture mapping, see Performance Tip 11 in README + - antialiased RGB points + - X support for line and polygon stippling + - glDrawBuffer( GL_FRONT_AND_BACK ) works + - util/ directory of useful stuff + - demos/texobj demo of texture objects + Changes: + - major internal changes for thread-safeness + - new device driver interface + - MESA_ALPHA env variable removed + - triangle rasterizer replaces polygon rasterizer + Bug fixes: + - glPopAttrib() bug + - glDrawBuffer(GL_NONE) works now + +2.1 December 14, 1996 + New: + - VMS support + - MS-DOS driver + - OpenStep support + - updated, combined Windows 95/NT driver + - implemented glGetLighti() and glGetTexGen*() + - GLX does garbage collection of ancillary buffers + Bug fixes: + - removed unused _EXT constants from gl.h + - fixed polygon offset bugs + - Z coordinates of clipped lines were incorrect + - glEdgeFlag() in display lists didn't always work + - glLight*() in display lists didn't work + - fixed X line stipple bugs (Michael Pichler) + - glXUseXfonts XFreeFont/XFreeFontInfo bug fixed + - fixed a feedback bug + - glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix + - polygons were sometimes culled instead of clipped + - triangle rasterizer suffered from float/int overflow exceptions + - fixed FP underflow exception in lighting (specular exponent) + - glEnable/glDisable of GL_EXT_vertex_array enums didn't work + - fixed free(NULL) in GLU tesselator code + - using 24-bit color on some X servers resulted in garbage rendering + - 32-bit per pixel mode for XFree86 now works + - glRotate(a,0,0,0) gave unpredictable results + - GL_LINE_STRIP with > 480 vertices had occasional clipping problems + - 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap + - glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled + - glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right + - accumulation buffer was limited to positive values + - projective textures didn't work + - selection buffer overflows weren't handled correctly + Changes: + - restored the GL_EXT_polygon_offset extension + - slightly faster RGB dithering + - the SVGA driver works again + - Amiga driver now distributed separately + - NeXT driver updated for Mesa 2.x + +2.2 March 14, 1997 + New: + - better color selection when dithering + - added GL_EXT_texture_object extension + - updated MS-DOS driver for DJGPP + - added openbsd make configuration + - faster dithered flat-shaded triangles + - various compilation problems with Motif widgets fixed + - gl.h, glx.h and glu.h name mangling option + - BeOS driver + - 3D texture mapping extension + - GL_MESA_resize_buffers extension + - morph3d, stex3d and spectex demos + - 3Dfx support + Bug fixes: + - glColorMaterial should finally work right in all respects + - linear interpolation of mipmap levels was incorrectly weighted + - readpix.c didn't compile on Macintosh + - GL_INVERT and related logic ops didn't work right + - glTexImage[12]D() didn't check its parameters consistantly + - fixed a memory leak in glTexImage[12]D() + - kludged around a SunOS 5.x/GCC compiler bug in the feedback code + - glReadPixels aborted instead of normally catching some errors + - a few 1.1 constants were missing or misnamed in gl.h + - glBegin(p); glBegin(q); didn't generate an error + - fixed a memory leak in GLX code + - clipping of concave polygons could cause a core dump + - 1-component alpha texture maps didn't work + - fixed a GLU polygon tesselator bug + - polygons with colinear vertices were sometimes culled + - feedback triangle colors were wrong when using smooth shading + - textures with borders didn't work correctly + - colors returned in feedback mode were wrong when using lighting + - spotlights didn't effect ambient lighting correctly + - gluPartialDisk() had a few bugs + Changes: + - device driver interface expanded to support texture mapping + - faster matrix inversion subroutine + - commented out #include "wmesa_extend.h" from src/wmesa.c + - fixed many compiler warnings in the demo programs + +2.3 June 30, 1997 + New: + - Mesa distribution divided into two pieces: library code and demos + - faster vertex transformation, clip testing, lighting + - faster line drawing + - TrueColor visuals how have dithering (for depths < 24 bits) + - added MESA_NO_DITHER environment variable + - new device driver function: NearFar(), RenderVB(), RasterSetup() + - added LynxOS configuration + - added cygnus Win32 configuration + - added texcyl.c GLUT demo + - added XMesaDitherColor() to X/Mesa interface + - new NURBS code from Bogdan Sikorski + - added demos/shape.c (non-rectangular X window!) + Bug fixes: + - glEnable/DisableClientState() were missing from GL/gl.h + - GL_SPHERE_MAP texcoord generation didn't work correctly + - glXGetConfig() returned wrong number of depth, stencil, accum bits + - glDrawPixels feedback/selection didn't examine RasterPos valid bit + - black and white were reversed on some monochrome displays + - fixed potential image memory leak (wasn't setting reference counter) + - glDrawPixels sometimes didn't recognize some GL state changes + - gluProject/UnProject() didn't check for divide by zero + - stex3d demo called random() and srandom(), not portable + - fixed memory leaks in context.c and drawpix.c + - fixed NULL dereferencing problem in gl_update_texture_state() + - glReadPixels between glBegin/glEnd didn't generate an error. + - fixed memory leak in polygon tesselator (Randy Frank) + - fixed seg fault bug drawing flat-shaded, depth-tested lines + - clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded + - glBindTexture sometimes didn't work + - fixed a bug deep in glXReleaseBuffersMESA() + - fog was mistakenly applied to alpha + - glPopMatrix didn't set "dirty matrix" flag + - glPolygonStipple pattern was sometimes wrong + - glClear wasn't disabled during feedback and selection + - fixed memory leak in glTexSubImage[123]D + Changes: + - many library source files reorganized + - faster X color allocation, colors also freed when finished with them + - new texture sampling function pointer in texture objects + - incorporated 3Dfx VooDoo driver v0.16 into main source tree + - many 3Dfx driver updates + - cygnus Makefiles now included + - updated DOS driver + - made a few changes to dosmesa.c and wmesa.c (VB->Unclipped) + - internally, colors now stored in GLubytes, not GLfixed + - optimized changing of GL_SHININESS parameter + +2.4 September 18, 1997 + New: + - updated 3Dfx Glide driver + - hacks for 3Dfx rendering into an X window or fullscreen + - added depth buffer access functions to X/Mesa and OS/Mesa interfaces + Bug fixes: + - pixel buffer could overflow with long, wide lines + - fixed FP underflow problems in lighting + - glTexSubImage1D() had an unitialized variable + - incomplete texture objects could cause a segfault + - glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop + - flat-shaded quads in a strip were miscolored if clipped + - mipmapped triangle lod computation now works correctly + - fixed a few under/overflow bugs in triangle rasterizer + - glArrayElement() assigned bad normal if normal array disabled + - changed argument to glXReleaseBuffersMESA() + - fixed small triangle underflow bugs in tritemp.h (hopefully) + - glBindTexture(target, 0) caused a crash + - glTexImage[123]D() with NULL image pointer caused crash + - glPixelStore parameters are now ignored during display list execution + - fixed a two-sided lighting w/ clipping bug (black vertices) + - textures with width!=height were sometimes mis-rendered + - "weird" projection matrices could cause div by 0, other fp errors + Changes: + - changed precompiled header symbol from PCH to PC_HEADER + - split api.c into api1.c and api2.c + - added hash.c source file (but not used yet) + - a few Sun and HP configuration file changes + - MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN + - fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c) + +2.5 November 20, 1997 + New: + - updated 3Dfx driver (v20) for GLQuake + - added GL_EXT_paletted_texture extension + - added GL_EXT_shared_texture_palette extension + - added GL_EXT_point_parameters extension + - now including Mark Kilgard's GLUT library v3.6 + - new GLUT-based demos in gdemos/ + - added a few more Unix config targets + - added Intel X86 assembly language vertex transformation code + - 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var + - Windows 95 S3 Virge driver + Bug fixes: + - glCopyTexImage?D would crash due to uninitialized variable + - glColor w/ glColorMaterial in a display list caused a bug + - fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver + - glVertex4*() vertices weren't always projected correctly + - trying to use mipmapped textured points or lines caused crash + - glColor[34][fd]() values now clamped to [0,1] before int conversion + Changes: + - new device driver functions for texture mapping + - hash tables used for display list and texture object lookup + - fixed GLX visual handling code to avoid saving redundant visuals + - 3Dfx Glide libraries automatically linked to libMesaGL.so + - dropped the Cirrus Logic Mondello code since it's obsolete + - updated Cygnus Makefiles (Stephane Rehel) + - updated Windows MSVC++ Makefiles (Oleg Letsinsky) + - procedure for making library files has changed: scripts now take + a major and minor version arguments. Make-config changed a lot. + - new implementation of glTexSubImage2D() + - updated widgets-mesa directory to create libMesaGLwM.a (Motif widget) + - separate linux-glide and linux-386-glide configurations + +2.6 February 12, 1998 + New: + - Windows WGL functions + - updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support + - v0.22 of 3Dfx Glide driver + - more X86 assembly language optimizations + - faster blending for some modes + - XMesaSetFXmode() to switch between 3Dfx window and full-screen mode + - added preliminary thread support + - added GLX_MESA_copy_sub_buffer extension + - some clipping optimizations + Bug fixes: + - fixed shading/material bug when drawing long primitive strips + - fixed clipping problem in long primitive strips + - fixed clipping bug when using 3Dfx driver + - fixed a problem when trying to use X fonts w/ 3Dfx driver + - fixed a texture filter bug in 3Dfx/Glide driver + - fixed bug in 3Dfx/Glide driver involving depth mask & clearing + - glLoadMatrix to set projection matrix confused the 3Dfx driver + - non-identity texture matrices didn't work with linux-386 configs + - glGenTextures() didn't reserve the returned texture IDs + - NULL proxy image sent to glTexImageXD() caused crash + - added texture state validation optimization (Henk Kok) + - fixed colormap reuse problem when using both RGB and CI windows + - 32bpp True/DirectColor X visuals weren't recognized + - fixed potential problem in evaluators memory allocation + - fixed assorted demo compilation bugs + Changes: + - replaced old Mesa/windows/ directory with Mesa/WIN32/ directory + - converted a few old glaux/gltk demos to GLUT + - renamed directories: demos -> xdemos, gdemos -> demos + + +3.0 September 17, 1998 + New: + - OpenGL 1.2 API + - GL_EXT_abgr pixel format extension + - GL_SGIS_texture_edge_clamp extension + - GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex) + - GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex) + - GL_EXT_rescale_normal extension and renormal.c demo + - GLX_SGI_video_sync extension (a no-op) + - antialiased lines + - glGetTexImage() now implemented + - glDraw/Copy/ReadPixels() optimizations + - optimized textured triangle code (Marten Stromberg) + - more optimization of dithered TrueColor triangles in X driver + - Linux GGI driver + - updated MGL driver + Bug fixes: + - lots of assorted compilation fixes + - glInitNames didn't write initial hit record + - glBitmap didn't always check for invalid raster position + - switching between GLX and OSMesa contexts caused a crash + - fixed uninitialized variable in Mesa widget code + - fixed typo in texture code which caused book/texgen to crash + - fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP + - gluDisk() in POINT or LINE mode sometimes failed + - fixed texture + fog bug + - GL_COMPILE_AND_EXECUTE mode didn't work reliably + - glMultMatrix in projection matrix mode w/ 3Dfx driver could fail + - glDrawPixels(color index pixels) weren't converted to RGBA + - fixed possible getenv() buffer overflow security bug + - glBitmap in feedback mode was offset by xOrig, yOrig params + - device driver's DrawPixels hook was never used + - glDrawPixels with zoomY!=1 and top/bottom clipping didn't work + - glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte + - fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c + - glCopyTexSubImage2D() didn't work with 3Dfx driver + - lines with width = 2 could cause crash + - glClear with scissor rect sometimes cleared whole buffer + - glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work + - glTexImageXD( .. GL_ABGR_EXT .. ) didn't work + - computation of inverse modelview matrix sometimes failed + - fixed GL_CLAMP mode texture sampling bug + - textured line interpolation was somewhat broken + - textured triangle interpolation was also somewhat broken + - glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one + - evaluator state wasn't fully initialized + - texture coordinate clipping was buggy + - evaluator surfaces could be mis-colored + - glAccum(GL_RETURN, s) didn't obey glColorMask() settings + - zero area polygons shouldn't be culled if polygon mode is point/line + - clipped width and height of glReadPixels was sometimes off by one + - blending with alpha = 0 or 1.0 wasn't always exact + - reading of pixels from clipped region was buggy + - minor tweaking of X visual management in GLX emulator + - glPolygonStipple now obeys pixel unpacking parameters + - glGetPolygonStipple now obeys pixel packing parameters + - interleaved vertex array texture coordinates were broken + - query of proxy texture internal format was broken + - alpha channel wasn't reliably cleared + - fixed divide by zero error in gluScaleImage if dest size = 1 x 1 + Conformance bug fixes: + - GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing + - GL_TEXTURE_INTERNAL_FORMAT was missing + - glGet*(GL_POLYGON_STIPPLE) was broken + - glPush/PopAttrib() didn't save/restore all texture state + - glBitmap in feedback mode didn't work + - feedback of texture coords didn't always work + - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke + - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke + - glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke + Changes: + - upgraded GLUT to version 3.7 + - only GL and GLU library code included in MesaLib.tar.gz + - GLUT and all demos now in MesaDemos.tar.gz + - glaux and gltk libraries removed + - IRIX -n32 and -64 libs go in lib32/ and lib64/ directories + + +3.1 beta 1 November 19, 1998 + New: + - GL_EXT_stencil_wrap extension + - GL_INGR_blend_func_separate extension + - GL_ARB_multitexture extension + - GL_NV_texgen_reflection extension + - newly optimized vertex transformation code + - updated GLUT 3.7 code + - better precision when using 32-bit Z buffer + - Allegro DJGPP driver + Bug fixes: + - glCopyPixels between front/back buffers didn't copy alpha correctly + - fixed out-of-bounds memory access in optimized 2-D texture code + - glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter + - glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter + - clipping of texture coordinates sometimes had bad R,Q values + - GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels + - glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean * + - texture was sometimes applied twice with 3Dfx driver + - glPush/PopAttrib() fouled up texture object reference counts + - glDeleteLists(0, n) caused assertion failure + - bilinear texture sampling wasn't accurate enough + - glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx + - color components were reversed on big endian 32 bpp X visuals + Changes: + - removed GL_EXT_multitexture extension + + +3.1 beta 2 May 24, 1999 + New: + - multi-textured points and lines (mjk@nvidia.com) + - optimized 24bpp X rendering (bernd.paysan@gmx.de) + - added allegro support (bernie-t@geocities.com) + - cleaned-up Windows-related stuff (Ted Jump) + - minor stereo changes (KendallB@scitechsoft.com) + - new BeOS driver which implements BGLView class + - new Direct3D driver (see src/D3D) + - more efficient filled gluCylinder() function + - utilities: util/showbuffer.[ch] and util/glstate.[ch] + - fixed some IRIX compiler warnings + - added support for building Mesa in XFree86 with + SGI's GLX (kevin@precisioninsight.com) + Bug fixes: + - a variety of Windows/Mesa bug fixes (mjk@nvidia.com) + - packed pixel images weren't unpacked correctly + - patches some win32 files in GLUT (mjk@nvidia.com) + - glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX + - fixed lighting bug in Keith's new shading code + - fixed texture segfault seen in Lament screensaver + - fixed miscellaneous low-memory bugs + - glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken + - GL_LINEAR sampling of 3D textures was broken + - fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org) + - added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk) + - fixed wide point and wide line conformance bugs (brianp) + Changes: + - some device driver changes (see src/dd.h) + - new copyright on core Mesa code + + +3.1 beta 3 September 17, 1999 + New: + - optimized glAccum function + - optimized 24bpp rendering in XMesa driver + - GLU 1.2 polygon tessellator + Bug Fixes: + - glGetTexLevelParameter wasn't fully implemented + - glXUseXFont now handles multi-byte fonts + - glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result + - alpha channel of blending points, lines was sometimes incorrect + Changes: + - New library names: "libGL" instead of "libMesaGL" + - New library numbering: libGL.so.1.2.310 + - New subdirectories: docs/ and bin/ + - New Makefile-system (autoconf,automake,libtool) + + +3.1 final December 14, 1999 + New: + - added demos/gloss.c + - added xdemos/glxdpyinfo.c + - added GLX_ARB_get_proc_address extension + - rewritten glTexImage code paths (faster, less memory, bug fixes) + Bug Fixes: + - several vertex array bug fixes + - overlapping glCopyPixels with pixel zooming now works + - glXUseXFont() bitmaps were vertically shifted by one pixel + - glCopyPixels with pixel zooming now works + + +3.2 final April 24, 2000 + Bug fixes: + - fixed memcpy bugs in span.c + - fixed missing glEnd problem in demos/tessdemo.c + - fixed bug when clearing 24bpp Ximages + - fixed clipping problem found in Unreal Tournament + - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2 + - fixed Loki's 3dfx RGB vs BGR bug + - fixed Loki's 3dfx smooth/flat shading bug in SoF + Changes: + - updated docs/README file + - use bcopy() optimizations on FreeBSD + - re-enabled the optimized persp_textured_triangle() function + + +3.2.1 July 19, 2000 + Bug fixes: + - gluBuild2DMipmaps() didn't accept GL_BGRA + - Fixed compile/makefile problems on IRIX + - fixed segfault in 3dfx driver when using GL selection/feedback + - no longer cull very, very tiny triangles + - blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering) + - fixed Motif detection code in widgets-mesa/configure.in + - glColorMaterial and glMaterial updates to emissive and ambient + didn't always work right + - Specular highlights weren't always in the right place + - clipped GL_LINE mode polygons had interior lines appear + - blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken + - GL_NICEST fog didn't always work with flat shading + - glRect commands in display lists were sometimes miscolored + - Line Z offset didn't always work + - fixed texgen normal vector problem (gloss's teapot) + - numerous GL conformance bugs fixed + Changes: + - glColorMask(false, false, false, false) handled better/faster + - reverted to old GLU polygon tessellator, GLU 1.1 + - updated Win32 build files + + +3.3 July 21, 2000 + New: + - antialiased triangles now implemented + - GL_EXT_texture_env_add texture mode extension + - GLX 1.3 API + - support for separate draw/read buffers (ie GL_SGI_make_current_read) + - thread-safe API dispath + - improved glxinfo program + - demos/texdown program to measure texture download performance + - glext.h header file + - demos/geartrain program + - GL_EXT_texture_lod_bias extension + - demos/lodbias program + - further optimized glRead/DrawPixels for 16-bit TrueColor X visuals + - GLX_EXT_visual_rating extension (a no-op, however) + - GL_HP_occlusion_test extension (for X and OS/Mesa drivers) + - demos/occlude program + - GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions + - demos/pixeltex program + - GL_SGI_color_matrix extension + - GL_SGI_color_table extension + - GL_EXT_histogram extension + - GL_ARB_texture_cube_map extension + - added xdemos/glxheads and xdemos/manywin + - demos/texenv.c demo + - GL_EXT_texture_env_combine extension (by Holger Waechtler) + - Xlib driver is now thread-safe (see xdemos/glthreads) + Bug Fixes: + - various GL conformance failures fixed since 3.2.1 + Changes: + - gl.h now uses #defines instead of C enums for all tokens + - glu.h now uses #defines instead of C enums for all tokens + - moved programs from 3Dfx/demos/ into demos/ directory + + +3.4 November 3, 2000 + New: + - optimized glDrawPixels for glPixelZoom(1,-1) + Bug Fixes: + - widgets-mesa/src/*.c files were missing from 3.3 distro + - include/GL/mesa_wgl.h file was missing from 3.3 distro + - fixed some Win32 compile problems + - texture object priorities weren't getting initialized to 1.0 + - glAreTexturesResident return value was wrong when using hardware + - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX) + - glReadPixels with GLushort packed types was broken + - fixed a few bugs in the GL_EXT_texture_env_combine texture code + - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables + - fixed some typos/bugs in the VB code + - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work + - optimized glDrawPixels paths weren't being used + - per-fragment fog calculation didn't work without a Z buffer + - improved blending accuracy, fixes Glean blendFunc test failures + - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly + - glXGetProcAddressARB() didn't always return the right address + - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format + - texture matrix changes weren't always detected (GLUT projtex demo) + - fixed random color problem in vertex fog code + - fixed Glide-related bug that let Quake get a 24-bit Z buffer + Changes: + - finished internal support for compressed textures for DRI + |