Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1.  
  2.                         Mesa 3.0 MITS Information
  3.  
  4.  
  5. This software is distributed under the terms of the GNU Library
  6. General Public License, see the LICENSE file for details.
  7.  
  8.  
  9. This document is a preliminary introduction to help you get
  10. started. For more detaile information consult the web page.
  11.  
  12. http://10-dencies.zkm.de/~mesa/
  13.  
  14.  
  15.  
  16. Version 0.1 (Yes it's very alpha code so be warned!)
  17. Contributors:
  18.   Emil Briggs           (briggs@bucky.physics.ncsu.edu)
  19.   David Bucciarelli     (tech.hmw@plus.it)
  20.   Andreas Schiffler     (schiffler@zkm.de)
  21.  
  22.  
  23.  
  24. 1. Requirements:
  25.      Mesa 3.0.
  26.      An SMP capable machine running Linux 2.x
  27.      libpthread installed on your machine.
  28.  
  29.  
  30. 2. What does MITS stand for?
  31.      MITS stands for Mesa Internal Threading System. By adding
  32.      internal threading to Mesa it should be possible to improve
  33.      performance of OpenGL applications on SMP machines.
  34.  
  35.  
  36. 3. Do applications have to be recoded to take advantage of MITS?
  37.      No. The threading is internal to Mesa and transparent to
  38.      applications.
  39.  
  40.  
  41. 4. Will all applications benefit from the current implementation of MITS?
  42.      No. This implementation splits the processing of the vertex buffer
  43.      over two threads. There is a certain amount of overhead involved
  44.      with the thread synchronization and if there is not enough work
  45.      to be done the extra overhead outweighs any speedup from using
  46.      dual processors. You will not for example see any speedup when
  47.      running Quake because it uses GL_POLYGON and there is only one
  48.      polygon for each vertex buffer processed. Test results on a
  49.      dual 200 Mhz. Pentium Pro system show that one needs around
  50.      100-200 vertices in the vertex buffer before any there is any
  51.      appreciable benefit from the threading.
  52.  
  53.  
  54. 5. Are there any parameters that I can tune to try to improve performance.
  55.      Yes. You can try to vary the size of the vertex buffer which is
  56.      define in VB_MAX located in the file src/vb.h from your top level
  57.      Mesa distribution. The number needs to be a multiple of 12 and
  58.      the optimum value will probably depend on the capabilities of
  59.      your machine and the particular application you are running.
  60.  
  61.  
  62. 6. Are there any ways I can modify the application to improve its
  63.    performance with the MITS?
  64.      Yes. Try to use as many vertices between each Begin/End pair
  65.      as possbile. This will reduce the thread synchronization
  66.      overhead.
  67.  
  68.  
  69. 7. What sort of speedups can I expect?
  70.      On some benchmarks performance gains of up to 30% have been
  71.      observerd. Others may see no gain at all and in a few rare
  72.      cases even some degradation.
  73.  
  74.  
  75. 8. What still needs to be done?
  76.      Lots of testing and benchmarking.
  77.      A portable implementation that works within the Mesa thread API.
  78.      Threading of additional areas of Mesa to improve performance
  79.      even more.
  80.  
  81.  
  82.  
  83. Installation:
  84.  
  85.    1. This assumes that you already have a working Mesa 3.0 installation
  86.       from source.
  87.    2. Place the tarball MITS.tar.gz in your top level Mesa directory.
  88.    3. Unzip it and untar it. It will replace the following files in
  89.       your Mesa source tree so back them up if you want to save them.
  90.  
  91.  
  92.          README.MITS
  93.          Make-config
  94.          Makefile
  95.          mklib.glide
  96.          src/vbxform.c
  97.          src/vb.h
  98.  
  99.    4. Rebuild Mesa using the command
  100.  
  101.           make linux-386-glide-mits
  102.  
  103.