mesa/docs
Keith Whitwell 0397b2bb41 Merge branch 'gallium-0.1' into gallium-0.2
A first attempt at moving gallium onto a branch directly off master...

It will be interesting to see how much work this takes to get running.

Have resolved the conflicts semi-arbitarily, not compiled or tested.

Conflicts:

	.gitignore
	Makefile
	configs/config.mgw
	configs/darwin
	configs/darwin-x86ppc
	configs/default
	configs/freebsd-dri
	configs/linux-dri
	configs/linux-dri-xcb
	configs/linux-fbdev
	configs/linux-static
	configs/linux-x86-64-static
	configs/linux-x86-static
	doxygen/Makefile
	include/GL/gl.h
	progs/demos/Makefile
	progs/demos/descrip.mms
	progs/demos/texenv.c
	progs/egl/.gitignore
	progs/egl/Makefile
	progs/glsl/.gitignore
	progs/glsl/Makefile
	progs/glsl/convolutions.c
	progs/samples/Makefile.mgw
	progs/tests/.gitignore
	progs/trivial/.gitignore
	progs/trivial/point-param.c
	progs/trivial/tri.c
	progs/xdemos/.gitignore
	progs/xdemos/glthreads.c
	src/egl/drivers/demo/Makefile
	src/egl/drivers/dri/Makefile
	src/egl/main/Makefile
	src/glu/Makefile
	src/glu/sgi/Makefile
	src/glu/sgi/Makefile.mgw
	src/glut/glx/Makefile.mgw
	src/glut/os2/WarpWin.cpp
	src/glut/os2/glut_cindex.cpp
	src/glut/os2/glut_gamemode.cpp
	src/glut/os2/glut_win.cpp
	src/glut/os2/glut_winmisc.cpp
	src/glut/os2/os2_glx.cpp
	src/glut/os2/os2_menu.cpp
	src/glut/os2/os2_winproc.cpp
	src/glw/Makefile
	src/glx/x11/dri_glx.c
	src/glx/x11/glxext.c
	src/mesa/Makefile
	src/mesa/Makefile.mgw
	src/mesa/descrip.mms
	src/mesa/drivers/beos/Makefile
	src/mesa/drivers/common/descrip.mms
	src/mesa/drivers/common/driverfuncs.c
	src/mesa/drivers/directfb/Makefile
	src/mesa/drivers/dri/Makefile.template
	src/mesa/drivers/dri/common/dri_bufmgr.c
	src/mesa/drivers/dri/common/dri_bufmgr.h
	src/mesa/drivers/dri/common/dri_util.c
	src/mesa/drivers/dri/common/extension_helper.h
	src/mesa/drivers/dri/common/mmio.h
	src/mesa/drivers/dri/common/utils.c
	src/mesa/drivers/dri/common/utils.h
	src/mesa/drivers/dri/glcore/Makefile
	src/mesa/drivers/dri/i810/i810screen.c
	src/mesa/drivers/dri/i915/intel_ioctl.c
	src/mesa/drivers/dri/i915/intel_ioctl.h
	src/mesa/drivers/dri/i915/intel_screen.c
	src/mesa/drivers/dri/i915/server/i830_common.h
	src/mesa/drivers/dri/i915/server/i830_dri.h
	src/mesa/drivers/dri/i965/intel_screen.c
	src/mesa/drivers/dri/i965/server/i830_common.h
	src/mesa/drivers/dri/i965/server/i830_dri.h
	src/mesa/drivers/dri/mach64/mach64_screen.c
	src/mesa/drivers/dri/nouveau/nouveau_context.h
	src/mesa/drivers/dri/nouveau/nouveau_fifo.c
	src/mesa/drivers/dri/nouveau/nouveau_fifo.h
	src/mesa/drivers/dri/nouveau/nouveau_screen.c
	src/mesa/drivers/dri/nouveau/nouveau_screen.h
	src/mesa/drivers/dri/r128/r128_tex.h
	src/mesa/drivers/dri/savage/savageioctl.h
	src/mesa/drivers/fbdev/Makefile
	src/mesa/drivers/osmesa/Makefile
	src/mesa/drivers/osmesa/descrip.mms
	src/mesa/drivers/x11/Makefile
	src/mesa/drivers/x11/descrip.mms
	src/mesa/drivers/x11/xm_dd.c
	src/mesa/glapi/glapi.c
	src/mesa/glapi/glthread.c
	src/mesa/main/api_validate.c
	src/mesa/main/attrib.c
	src/mesa/main/bufferobj.c
	src/mesa/main/bufferobj.h
	src/mesa/main/buffers.c
	src/mesa/main/config.h
	src/mesa/main/context.c
	src/mesa/main/descrip.mms
	src/mesa/main/drawpix.c
	src/mesa/main/enums.c
	src/mesa/main/fbobject.c
	src/mesa/main/glheader.h
	src/mesa/main/imports.c
	src/mesa/main/mipmap.c
	src/mesa/main/mm.c
	src/mesa/main/mm.h
	src/mesa/main/mtypes.h
	src/mesa/main/points.c
	src/mesa/main/sources
	src/mesa/main/state.c
	src/mesa/main/texcompress_fxt1.c
	src/mesa/main/texenvprogram.c
	src/mesa/main/texobj.c
	src/mesa/main/texstate.c
	src/mesa/main/texstore.c
	src/mesa/math/descrip.mms
	src/mesa/shader/arbprogram.c
	src/mesa/shader/descrip.mms
	src/mesa/shader/prog_execute.c
	src/mesa/shader/prog_statevars.c
	src/mesa/shader/prog_statevars.h
	src/mesa/shader/prog_uniform.c
	src/mesa/shader/program.c
	src/mesa/shader/program.h
	src/mesa/shader/shader_api.c
	src/mesa/shader/slang/descrip.mms
	src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
	src/mesa/sources
	src/mesa/swrast/descrip.mms
	src/mesa/swrast/s_drawpix.c
	src/mesa/swrast/s_fragprog.c
	src/mesa/swrast/s_readpix.c
	src/mesa/swrast/s_span.c
	src/mesa/swrast_setup/descrip.mms
	src/mesa/tnl/descrip.mms
	src/mesa/tnl/t_context.h
	src/mesa/tnl/t_vp_build.c
	src/mesa/tnl/tnl.h
	src/mesa/vbo/descrip.mms
	src/mesa/vbo/vbo_context.c
	src/mesa/vbo/vbo_exec_array.c
	src/mesa/x86-64/xform4.S
	src/mesa/x86/rtasm/x86sse.c
	src/mesa/x86/rtasm/x86sse.h
	windows/VC6/progs/glut/glut.dsp
	windows/VC7/mesa/gdi/gdi.vcproj
	windows/VC7/mesa/glu/glu.vcproj
	windows/VC7/mesa/mesa.sln
	windows/VC7/mesa/mesa/mesa.vcproj
	windows/VC7/mesa/osmesa/osmesa.vcproj
	windows/VC7/progs/glut/glut.vcproj
	windows/VC8/mesa/gdi/gdi.vcproj
	windows/VC8/mesa/glu/glu.vcproj
	windows/VC8/mesa/mesa.sln
	windows/VC8/mesa/mesa/mesa.vcproj
	windows/VC8/progs/glut/glut.vcproj
2008-09-11 16:05:15 +01:00
..
OLD Merge branch 'gallium-0.1' into gallium-0.2 2008-09-11 16:05:15 +01:00
autoconf.html autoconf: Improve the visibility of the swrast DRI driver 2008-06-30 11:16:09 -07:00
banner.html
bugs.html updated bug report guidelines 2007-09-05 10:04:37 -06:00
cell.html added info about checking out gallium-0.1 for cell code 2008-03-09 10:39:00 -06:00
conform.html
contents.html Bring in previous 7.0.1/2 release notes, added Cell driver page. 2008-01-24 09:15:31 -07:00
COPYING
debugging.html
demos.html
developers.html assorted documentation updates 2007-04-04 09:31:41 -06:00
devinfo.html autoconf: Scrape the version from configs/default 2008-05-05 14:21:28 -07:00
dispatch.html Added dispatch.html. 2006-10-09 18:26:03 +00:00
download.html bring in docs from 7.0.4 release/branch 2008-08-16 11:09:49 -06:00
enums.txt
envvars.html
extensions.html
faq.html Merge branch 'master' into autoconf2 2007-12-26 15:41:24 -06:00
fbdev-dri.html miniglx doc updates 2008-02-14 09:33:26 -07:00
games.html
gears.png
glfbdev-driver.html
glu.html
helpwanted.html updated list 2007-10-31 09:57:47 -06:00
index.html
install.html link to DRM 2.3.1 2008-07-01 09:02:10 -06:00
intro.html bring over 7.0 doc changes 2007-06-28 16:44:24 -06:00
libraries.html
license.html updated glext.h license info (Khronos), plus other clean-ups 2007-10-01 17:57:25 -06:00
lists.html note that non-member posts are auto-rejected 2007-01-27 06:25:31 -07:00
mangling.html name mangling update/fix 2006-11-18 16:44:30 +00:00
mesa.css
MESA_agp_offset.spec
MESA_copy_sub_buffer.spec
MESA_pack_invert.spec
MESA_pixmap_colormap.spec
MESA_release_buffers.spec
MESA_resize_buffers.spec Remove CVS keywords. 2008-05-26 20:14:40 +09:00
MESA_set_3dfx_mode.spec
MESA_shader_debug.spec Remove CVS keywords. 2008-05-26 20:14:40 +09:00
MESA_swap_control.spec
MESA_swap_frame_usage.spec
MESA_texture_array.spec Remove CVS keywords. 2008-05-26 20:14:40 +09:00
MESA_window_pos.spec Remove CVS keywords. 2008-05-26 20:14:40 +09:00
MESA_ycbcr_texture.spec
MiniGLX.html Assorted miniglx updates. 2007-05-04 18:26:41 -06:00
modelers.html updated vrml link 2007-09-13 14:44:27 -06:00
news.html Merge branch 'gallium-0.1' into gallium-0.2 2008-09-11 16:05:15 +01:00
osmesa.html
pbuffers.html
perf.html
precompiled.html
README.3DFX
README.AMIWIN
README.BEOS Remove CVS keywords. 2008-05-26 20:14:40 +09:00
README.CYGWIN
README.D3D
README.directfb Remove DirectFBGL header from Mesa bacause since 1.0.0 DirectFB installs its own header. 2006-12-01 14:12:05 +00:00
README.DJ
README.GGI
README.LYNXOS
README.MINGW32 more Mingw32 fixes 2007-07-27 11:19:35 -06:00
README.MITS
README.NeXT
README.OpenStep
README.OS2
README.QUAKE Remove CVS keywords. 2008-05-26 20:14:40 +09:00
README.THREADS
README.VMS
README.WIN32 Convert crlf->lf line endings. 2008-02-28 16:34:32 +09:00
README.WINDML
RELNOTES-3.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.2.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.3 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.4 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.4.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.4.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-3.5 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-4.0 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-4.0.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-4.0.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-4.0.3 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-4.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-5.0 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-5.0.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-5.0.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-5.1
RELNOTES-6.0 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.0.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.2.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.3 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.3.1 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.3.2 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
RELNOTES-6.4 Remove CVS keywords. 2008-05-26 20:14:40 +09:00
relnotes-6.4.1.html Re-org of per-release info. 2006-09-21 22:51:16 +00:00
relnotes-6.4.2.html Re-org of per-release info. 2006-09-21 22:51:16 +00:00
relnotes-6.4.html Re-org of per-release info. 2006-09-21 22:51:16 +00:00
relnotes-6.5.1.html remove bogus link 2006-12-02 18:18:55 +00:00
relnotes-6.5.2.html md5 sums 2006-12-02 19:22:16 +00:00
relnotes-6.5.3.html added 6.5.3 MD5 sums 2007-04-27 16:53:42 -06:00
relnotes-6.5.html Re-org of per-release info. 2006-09-21 22:51:16 +00:00
relnotes-7.0.1.html Bring in previous 7.0.1/2 release notes, added Cell driver page. 2008-01-24 09:15:31 -07:00
relnotes-7.0.2.html Bring in previous 7.0.1/2 release notes, added Cell driver page. 2008-01-24 09:15:31 -07:00
relnotes-7.0.3.html import 7.0.3 relnotes from 7.0 branch 2008-04-04 19:28:33 -06:00
relnotes-7.0.4.html bring in docs from 7.0.4 release/branch 2008-08-16 11:09:49 -06:00
relnotes-7.0.html bring over 7.0 doc changes 2007-06-28 16:44:24 -06:00
relnotes-7.1.html updated GLSL bug fixes 2008-07-29 17:50:43 -06:00
relnotes.html bring in docs from 7.0.4 release/branch 2008-08-16 11:09:49 -06:00
repository.html added git on Windows section 2008-02-28 08:03:34 -07:00
science.html
shading.html document GLSL 1.20 status 2008-07-29 16:46:08 -06:00
sourcedocs.html updated doxygen info 2006-09-21 22:54:53 +00:00
subset-A.html
subset.html Assorted miniglx updates. 2007-05-04 18:26:41 -06:00
systems.html
thanks.html prep for 6.5.3 release 2007-04-18 09:07:56 -06:00
utilities.html
utility.html
VERSIONS
versions.html Re-org of per-release info. 2006-09-21 22:51:16 +00:00
webmaster.html
xlibdriver.html

                        WindML Driver for Mesa 4.0


Requirements
------------

Tornado 2 + WindML, Cumulative Patchs are recommended. 
  
I suppose you have a valid WindML installation. Double buffer hardware
gives better performance than double buffer software so if you can
compile your WindML driver with this option, just do it. I/O
redirection is adviced in target server.


Tested on
---------

During the development, my main target was a CoolMonster:
- Video card: CT69000
- CPU: PENTIUM 266MHz

and my host a Windows NT + Tornado 2.


Installation
------------

1. Mesa sources must be in root directory (C:\)

2. Add the following line to your torVars.bat:
set MESA_BASE=C:\Mesa

OR copy the new torVars.bat in your bin path:
c:/Mesa/src/ugl/tornado/torVars.sample -> 
/mnt/nt/Tornado/host/x86-win32/bin/torVars (for example)

3. In a command prompt:
$ torVars
$ cd c:\Mesa
$ make -f Makefile.ugl CPU=PENTIUM

Take a long while...

5. Include all the files from ugldemos folder to build some downloadable
   application modules

4. Download UGL/Mesa object files on target

For example via the WindShell:
ld < c:\Tornado\target\lib\objMesaGL.o
ld < c:\Tornado\target\lib\objMesaUGL.o
ld < c:\Tornado\target\lib\objMesaGLU.o
ld < c:\Tornado\target\lib\objGLUTshapes.o
ld < c:\Tornado\target\lib\objMesaOS.o

You can put the previous lines in a file and use:
< filename

6. Download the application modules.

7. In WindShell, run:
-> uglalldemos

During the show some messages will appear, it provides some useful
information on key management.


Coding
------

Sample Usage:

In addition to the usual ugl calls to initialize UGL, (may be find an
input driver), you must do the following to use the UGL/Mesa interface:

1. Call uglMesaCreateContext() to create a UGL/Mesa rendering context,
   given the display format.

2. Call uglMesaMakeCurrent() to bind the UGL/Mesa buffers to an
   UGL/Mesa Context and to make the context the current one.

3. Make gl* calls to render your graphics.

4. Use uglMesaSwapBuffers() when double buffering to swap front/back buffers.

5. Before the UGL is destroyed, call MesaDestroyContext().

6. Before exiting, call if required uglEventQDestroy and then
   uglDeinitialize();

Limitations
-----------

I found the following limitations in my driver :
 - Color Indexed management is only in 8 bits
 - It's possible to mix UGL/OpenGL application with a software
   double buffer

Modifications
------------

New files in Mesa:
- Makefile.ugl
- rules.windmlmesa
- docs/README.UGL
- include/GL/uglmesa.h
- si-glu/Makefile.ugl
- src/Makefile.ugl
- src/ugl/torGLUTShapesInit.c
- src/ugl/torMesaUGLInit.c
- src/ugl/ugl_api.c
- src/ugl/ugl_dd.c
- src/ugl/ugl_glutshapes.c
- src/ugl/ugl_line.c
- src/ugl/ugl_span.c
- src/ugl/ugl_tri.c
- src/ugl/uglmesaP.h
- ugldemos/*

Modified files in Tornado 2.0:
- c:\Tornado\host\x86-win32\bin\torVars.bat
rem Command line build environments
set WIND_HOST_TYPE=x86-win32
set WIND_BASE=C:\Tornado
set MESA_BASE=C:\Mesa
set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH%
- c:\Tornado\target\config\comps\VxWorks\01uglmesa.cdf
- c:\Tornado\target\h\GL\*

Todo
----
- GCC 2.96, ASM compilation

Thanks to:
----------

Precision Insight team for their great job around Mesa, XFree, and DRI.
Wind River Systems to take me as an intern.


Stephane Raimbault
<stephane.raimbault@windriver.com>
<stephane.raimbault@deesse.univ-lemans.fr>

July 24, 2001