3d gaming

Games are not at the top of the list when designing an OS, but how far has Haiku’s support of OpenGL gotten? is it fully supported or are there still bugs to work out? I do some semi professional 3D modeling so if there any work on anything 3D related for RC1 i would be glad to contribute. Unfortunately there is not much documentation about it on the website other than “we are working on it”

Matt White wrote:
Games are not at the top of the list when designing an OS, but how far has Haiku's support of OpenGL gotten?

I believe Haiku’s OpenGL is more or less a fully functional port of Mesa (including a working software renderer).

I’m not sure exactly what version of Mesa was ported.

Additionally, Rudolf C. has done some exceptional work with the nVidia driver to get some level of 3d hardware acceleration implemented for some cards. I think Rudolf’s driver comes with its own Mesa port, however, and has not yet been ported to the Haiku hardware-acceleration “add-on” layer.

Basically, Haiku’s OpenGL implementation promises to be fairly usable, but without much hardware-acceleration yet. That unfortunately requires a lot of vendor support and/or reverse-engineering :frowning:

unfortunately im not half the programmer i would like to be. my specialty is hardware so there isnt much that i can contribute to a software project. As i understand it, the coding for such low level things as hardware acceleration for 3D isnt simple, perhaps if we contacted some members of the linux community or started dissecting the Linux code base ourselves. i think for an OS that has its roots in digital media creation 3D is an important feature that it should have.

In the mean time i might try at finding some old 3D modeling apps for the original BeOS and trying to get them to run in the Haiku environment. I may not be that best programmer around but i have friends who are very talented in just that.

an update. i have gotten together 3 other guys who are experienced in c++ to work with me on working with improving graphics support. we intend to look at the code base in some linux distros (knoppix ubuntu etc.) and see how they got OpenGL to work, hopefully this will put us on the right track. at the very least we hope to make drivers for some currently unsupported chipsets, and at the most we hope to achieve, better OpenGL integration and begin 3D hardware acceleration, maybe even make a tech demo?

Matt White wrote:
an update. i have gotten together 3 other guys who are experienced in c++ to work with me on working with improving graphics support. we intend to look at the code base in some linux distros (knoppix ubuntu etc.) and see how they got OpenGL to work, hopefully this will put us on the right track. at the very least we hope to make drivers for some currently unsupported chipsets, and at the most we hope to achieve, better OpenGL integration and begin 3D hardware acceleration, maybe even make a tech demo?

You should redirect your intent to the Haiku mailing list. I suspect developers such as Philippe Houdoin and others who have already been involved in the OpenGL implementation would be interested in working with you.

I am already signed up on the mailing list. do i just just "reply" to the emails to send in my proposal? if not to what address do i send it to?

Matt White wrote:
I am already signed up on the mailing list. do i just just "reply" to the emails to send in my proposal? if not to what address do i send it to?

Just send a message to openbeos@freelists.org.

You must also send it from the email address that you registered on the list - otherwise it will be ignored by the list server.

ok thank you

umccullough wrote:
Matt White wrote:
Games are not at the top of the list when designing an OS, but how far has Haiku's support of OpenGL gotten?

I believe Haiku’s OpenGL is more or less a fully functional port of Mesa (including a working software renderer).

I’m not sure exactly what version of Mesa was ported.


6.3.1.
I plan to move to a “stable” release, most probably or latest 6.4.x release or the sooner 6.6 branch.

Meanwhile, the Mesa Software Renderer, based on 6.3.1, give Haiku’s an OpenGL stack compliant with OpenGL 1.5 spec. Slow, sure, but there.
Under x86, it get assembly optimization (MMX, SSE, SSE2) but SSE2 support is currently broken somewhere in Haiku kernel.

The Hailu’s libGL.so contains the GLView class, the GL calls dispatcher, the a renderer add-ons manager, GLU and GLUT APIs. The real stuff, the rendering, is in fact delegated to the renderer add-ons. The Mesa Software one is our fallback solution. The challenging next step in Haiku’s OpenGL team is to port/write/wrap/whatever hardware accelerated renderer add-ons.

umccullough wrote:
Additionally, Rudolf C. has done some exceptional work with the nVidia driver to get some level of 3d hardware acceleration implemented for some cards. I think Rudolf's driver comes with its own Mesa port, however, and has not yet been ported to the Haiku hardware-acceleration "add-on" layer.
Indeed. I just start to dive in his code to see how I could adapt his driver to the Mesa 6.3.1 driver interface... Meanwhile, I could eventually investigate the Radeon support, own such card. Intel Extreme 3D support should also deserve some attention these days...
umccullough wrote:
Basically, Haiku's OpenGL implementation promises to be fairly usable, but without much hardware-acceleration yet. That unfortunately requires a lot of vendor support and/or reverse-engineering :(
In our case, porting/wrapping reverse-engineering open source drivers that floats in the alternative OSes community ;-)
Matt White wrote:
an update. i have gotten together 3 other guys who are experienced in c++ to work with me on working with improving graphics support. we intend to look at the code base in some linux distros (knoppix ubuntu etc.) and see how they got OpenGL to work, hopefully this will put us on the right track. at the very least we hope to make drivers for some currently unsupported chipsets, and at the most we hope to achieve, better OpenGL integration and begin 3D hardware acceleration, maybe even make a tech demo?
Most of the interesting stuff is in Mesa3D project, under the src/mesa/drivers/dri/* directory. The DRI drivers there needs DRM (the 2D driver counterpart) too, and this split 2D / 3D userland drivers + a .ko kernelland driver is very similar to the BeOS/Haiku way, where the 2D userland driver is an app_server's add-on (also called accelerant add-on), talking with the hardware thru shared memory via a thin kernel driver.

In Haiku SVN source tree, a full 2D & 3D hardware support for a foobar GPU will needs 3 parts :

src/add-ons/kernel/drivers/graphics/foobar/* (kernel driver: hardware access)

src/add-ons/accelerants/foobar/* (userland 2D driver)

src/add-ons/opengl/foobar/* (userland 3D hardware accelerated OpenGL renderer)

For the existing graphics cards we already have 2D support, like Radeon and NVidia, only the later is missing. But implementing it will needs to modify the 2 formers. As did Rudolf with its standalone libGL.so for the NVidia cards…

If you want to join me on such effort, feel free to contact me by email or on the main Mailing-List (“openbeos” :wink: ). I’ll try to make the pending tasks clearer.
Meanwhile you could check the OpenGL team wiki page:
http://haiku-os.org/wiki/index.php?title=OpenGL_Kit

PS: sorry for poor english.[/url]

Thanks. I was originally going to make my proposal to the mailing list on Friday, but this maybe be better. We can help where needed. my email is mattwhi @ gmail . com (remove the spaces) please contact me about the project and i will see what we can do. in the way of video cards, i havce acess to a Radeon 9200pro, Radeon X700pro, Nvidia Geforce 6600, and in one week my new Geforce 7900GT will be here.