Haikuware News & Blogs
Spread your news, software reviews, comments, & ideas about Haiku!
One step forward, six steps back.
This week I started looking in-depth into a series of [Mesa changes|http://lists.freedesktop.org/archives/mesa-dev/2012-January/018193.html] to swrast that I knew would effect us... oh boy these changes turned out to be a doozy.
GL Teapot depth fixes
The step forward is last week I fixed the GL Teapot depth issues so that the handle and spout aligned properly
Split Mesa swrast driver
I will need to break the Mesa swrast opengl addon into two as we have to support both the older Mesa (7.8.2) for the gcc2 images, and newer Mesa to get Gallium. As we call private Mesa functions that are not normally public, large changes such as these can happen.
What this means
This means the following will change:
Old layout:
- MesaSoftwareRenderer.cpp
- MesaSoftwareRenderer.h
New Layout:
- MesaSoftwareRenderer.cpp
- MesaSoftwareRenderer.h
- MesaSoftwareRendererLegacy.cpp
- MesaSoftwareRendererLegacy.h
The *Legacy sources will be pretty much only used on gcc2 images with Mesa 7.8.2. The MesaSoftwareRender.cpp will be whats used on gcc4 + Mainline mesa. The Jamfile will choose a source and use it based on the GCC version. This isn't ideal because it means swrast fixes will need to be targeted to each driver, however keep in mind as Mesa 7.8.2 is the *latest* version of Mesa we can run on gcc2... MesaSoftwareRendererLegacy.cpp won't need to be updated very often.
This new layout also offers the following paths:
- Post R1/gcc2 we can simply remove MesaSoftwareRendererLegacy.cpp
- If Gallium software pipe rendering begins working (and is faster) we can simply disable the swrast driver so it is only used on GCC2 images.
Another reason I went this route is the #ifdef's for Mesa version were beginning to number in the 100s working out of a single file. The new Mesa swrast engine just works *way* to differently.
You can compare the new add-on work http://pastebin.com/E5bSDqFh (600 lines). to the old one http://cgit.haiku-os.org/haiku/tree/src/add-ons/opengl/mesa_software_renderer/MesaSoftwareRenderer.cpp (900 lines)
I'm testing the new software rast engine and code, but have been stopped dead cold by a Mesa https://bugs.freedesktop.org/show_bug.cgi?id=45578
It looks like it may be a while until I collect the first bounty payment :)

Comments
Let the old mesa like it is/was for gcc2 and work just on mesa 8.0 and make it available just for gcc4 haiku.
Perhaps it would help to encourage haiku-devs to drop the compatibility to beos sooner than planned.
I think it's not worth the additional effort, since anyway 3D is not a big subject in haiku at the moment.
RSS feed for comments to this post