103 lines
3.2 KiB
Plaintext
103 lines
3.2 KiB
Plaintext
|
|
||
|
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
|
||
|
|