forked from KolibriOS/kolibrios
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
|
|
||
|
|
||
|
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)
|