Login

logo6


Haikuware News & Blogs

Spread your news, software reviews, comments, & ideas about Haiku!

Mesa / Gallium Status update #5 2/11/2012

kallisti5
kallisti5
kallisti5 has not set their biography yet
User is currently offline
Feb 11 MyBlog 2 Comments

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 :)

Tags: Untagged
Hits: 272
0 votes

About the author

Trackbacks

Trackback URL for this blog entry

Comments  

 
+1 # RE: Mesa / Gallium Status update #5 2/11/2012cipri 2012-02-12 18:06
why not drop support for gcc2?
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.
 
 
0 # RE: RE: Mesa / Gallium Status update #5 2/11/2012andrewzx1 2012-02-16 15:46
I think 3D is a big deal but I agree that maybe you do GCC4 now and do GCC2 'whenever'.
 


Please register to post comments

The Largest BeOS/Haiku Software Repository