xref: /haiku/docs/develop/kits/opengl/readme (revision e81a954787e50e56a7f06f72705b7859b6ab06d1)
1*e81a9547SAugustin CavalierHaiku OpenGL kit developers introduction
2*e81a9547SAugustin Cavalier
3*e81a9547SAugustin CavalierThe Haiku OpenGL kit is made up of the folwing pieces:
4*e81a9547SAugustin Cavalier
5*e81a9547SAugustin Cavalier* The "OpenGL Kit" aka libGL.so and supporting libraries.
6*e81a9547SAugustin Cavalier  This is what the user applications interact with.
7*e81a9547SAugustin Cavalier
8*e81a9547SAugustin Cavalier* The "OpenGL Add-ons" (which do the real work)
9*e81a9547SAugustin Cavalier  These are chosen by the OpenGL kit and utilized
10*e81a9547SAugustin Cavalier
11*e81a9547SAugustin CavalierIn the traditional BeOS sense, the OpenGL Add-ons are the
12*e81a9547SAugustin Cavaliervendor provided OpenGL drivers. This actually doesn't
13*e81a9547SAugustin Cavaliermesh well with the current open source OpenGL stack.
14*e81a9547SAugustin Cavalier
15*e81a9547SAugustin CavalierOur "OpenGL Add-ons" are really self contained Mesa and
16*e81a9547SAugustin CavalierGallium renderers. On the old Mesa side of the house,
17*e81a9547SAugustin Cavalierswrast is a bunch of wrapper code. On the Gallium side,
18*e81a9547SAugustin Cavalierswpipe is a Gallium target.
19*e81a9547SAugustin Cavalier
20*e81a9547SAugustin CavalierMesa drivers are the classical Mesa software rasterizers,
21*e81a9547SAugustin CavalierGallium drivers are the new-school software and hardware
22*e81a9547SAugustin Cavalierdrivers.
23*e81a9547SAugustin Cavalier
24*e81a9547SAugustin Cavalier
25*e81a9547SAugustin Cavalier**********
26*e81a9547SAugustin CavalierMesa versions
27*e81a9547SAugustin Cavalier
28*e81a9547SAugustin CavalierThe Haiku project uses two different versions of Mesa.
29*e81a9547SAugustin Cavalier
30*e81a9547SAugustin Cavalier * Mesa 7.9.2 for gcc2 OpenGL Add-ons
31*e81a9547SAugustin Cavalier * Mesa 10.2.0+ for gcc4 OpenGL Add-ons.
32*e81a9547SAugustin Cavalier
33*e81a9547SAugustin CavalierThe reasoning behind this is that any version of Mesa
34*e81a9547SAugustin Cavalierabove 7.9.2 will require a *massive* porting effort to
35*e81a9547SAugustin Cavaliermake it compile under gcc2.  Given this fact, it makes
36*e81a9547SAugustin Cavaliersense to bump the gcc2 version of Mesa as far as it will
37*e81a9547SAugustin Cavaliergo and set it there statically.  Think of Mesa 7.9.2
38*e81a9547SAugustin Cavalieras the "stable" version Haiku R1 will use :)
39*e81a9547SAugustin Cavalier
40*e81a9547SAugustin CavalierHardware 3D rendering and llvm-based software rendering
41*e81a9547SAugustin Cavalierwill never work for legacy gcc2 applications. Period.
42*e81a9547SAugustin Cavalier
43*e81a9547SAugustin CavalierHowever!  If you're running a gcc2 hybrid version of
44*e81a9547SAugustin CavalierHaiku, llvm or hardware based rendering should be possible
45*e81a9547SAugustin Cavalieron gcc4 applications.
46*e81a9547SAugustin Cavalier
47*e81a9547SAugustin CavalierIt's essential someone from the Haiku project keeps up
48*e81a9547SAugustin Cavalierwith the upstream Mesa changes pushing build fixes to
49*e81a9547SAugustin Cavalierupstream Mesa to keep Haiku relevant.
50*e81a9547SAugustin Cavalier
51*e81a9547SAugustin Cavalier
52*e81a9547SAugustin Cavalier
53*e81a9547SAugustin Cavalier**********
54*e81a9547SAugustin CavalierThe packages
55*e81a9547SAugustin Cavalier
56*e81a9547SAugustin CavalierHaiku has several packages for Mesa:
57*e81a9547SAugustin Cavalier
58*e81a9547SAugustin Cavaliermesa-x.x.x-x-x86.hpkg        Core Mesa package, provides libGL
59*e81a9547SAugustin Cavaliermesa_devel-x.x.x-x-x86.hpkg  Provides development headers and "OpenGL kit"
60*e81a9547SAugustin Cavaliermesa_swrast-x.x.x-x-x86.hpkg Mesa "Software Rasterization" renderer
61*e81a9547SAugustin Cavaliermesa_swpipe-x.x.x-x-x86.hpkg Gallium "Software pipe" LLVM enhanced renderer
62*e81a9547SAugustin Cavalier
63*e81a9547SAugustin CavalierFuture :3
64*e81a9547SAugustin Cavaliermesa_radeonhd-x.x.x-x-x86.hpkg Gallium "Radeon HD" hardware renderer
65*e81a9547SAugustin Cavaliermesa_intel-x.x.x-x-x86.hpkg Gallium "Intel" hardware renderer
66*e81a9547SAugustin Cavaliermesa_nvidia-x.x.x-x-x86.hpkg Gallium "nVidia" hardware renderer (unlikely)
67