What chances for 3D hardware support will Haiku have?

I thought it would be interesting to sum up which 3D hardware could be supported in a future release of Haiku.

One thing goes without saying, unfortunately: companies won’t write drivers for us by themselves. So it will depend on a) there already being open source drivers (for Linux) or b) those companie’s willingness to hand out the necessary documentation - even under NDA (and c), of course there being good and competent souls who’d be willing to write all those drivers).

I’ll try to recall what I’ve heard (or think I have heard) about graphics hardware companies in the past in this regard:

0.) I think there has already been 3D accelleration for 3dfx’s Voodoo5 chipset - but, well that doesn’t matter much these days.

Now for companies that have products on store shelves these days:

1.) Nvidia - does not cooperate in any way (i.e. not hand out any chip specifications whatsoever). At least that’s what I remember being said - did Rudolf Cornelissen get any help from them for his Nvidia driver?

2.) ATI - hands out register level specifications to some degree, but AFAIK only for the 2D part of the chip (so Thomas Kurschel could write his Radeon driver). Also, there has been a limited 3D accellerated driver for the fixed pipeline part (non-pixel/vertex-shader) of the R100/R200 generation of 3D chips for the Linux operating system.

3.) Imagination Technologies - the creators of the PowerVR 3D chips. Don’t have any standalone graphics cards on the market at moment, but IIRC Intel has licensed a new version of ImgTech’s 3D core for integration in an upcoming chipset. Years ago I read one employee’s comment on a message board that they wouldn’t hand out hardware documentation at all, and now that they are only licensing IP cores to third parties such as Intel that’s even less likely, IMO

4.) S3 - I have read a comment somewhere that they had open sourced a driver for their discontinued Savage 3D chip, but don’t know whether they are willing to hand out documentation for their latest product generation named DeltaChrome

5.) Same goes for a less known company named XGI - they actually make Linux drivers for their “Volari” 3D chip - don’t know whether anyone ever tried to contact them for specifications. Although, as a general impression, some Asian companies seem to be more open towards alternative operating systems (remember DrayTek’s MiniVigor (a USB ISDN device) driver for BeOS some years ago) than those in America and Europe, so maybe there are chances…

Any other options?

ChrisK wrote:
Any other options?

What about Matrox? - Their newer cards have some level of 3d support (but I’m not sure how good they are) - considering that we also have fairly decent 2d drivers for newer Matrox cards, I would think there is a possibility for 3d support there as well?

umccullough wrote:
What about Matrox? - Their newer cards have some level of 3d support (but I'm not sure how good they are) - considering that we also have fairly decent 2d drivers for newer Matrox cards, I would think there is a possibility for 3d support there as well?

Oh yes, I always forget about Matrox. The Parhelia is a decent performer, I think somewhat slower than a GeForce3 or a Radeon 8500. Maybe I don’t think about them because since after the Parhelia release it always seems up-in-the-air whether they’ll release another generation or whether they’ll jump ship and abandon the graphics market.

It would be sad to see them go - but in the age of DVI just having good RAMDACs isn’t much anymore to survive in the cutthroat graphics hardware market.

ChrisK wrote:
(remember DrayTek's MiniVigor (a USB ISDN device) driver for BeOS some years ago)

don’t remember me…
that thing doesn’t work at all with any flavour of beos. this “driver” is awful…

sorry for being somewhat OT

b.

ChrisK wrote:
0.) I think there has already been 3D accelleration for 3dfx's Voodoo5 chipset - but, well that doesn't matter much these days.

Now for companies that have products on store shelves these days:

1.) Nvidia - does not cooperate in any way (i.e. not hand out any chip specifications whatsoever). At least that’s what I remember being said - did Rudolf Cornelissen get any help from them for his Nvidia driver?

2.) ATI - hands out register level specifications to some degree, but AFAIK only for the 2D part of the chip (so Thomas Kurschel could write his Radeon driver). Also, there has been a limited 3D accellerated driver for the fixed pipeline part (non-pixel/vertex-shader) of the R100/R200 generation of 3D chips for the Linux operating system.

3.) Imagination Technologies - the creators of the PowerVR 3D chips. Don’t have any standalone graphics cards on the market at moment, but IIRC Intel has licensed a new version of ImgTech’s 3D core for integration in an upcoming chipset. Years ago I read one employee’s comment on a message board that they wouldn’t hand out hardware documentation at all, and now that they are only licensing IP cores to third parties such as Intel that’s even less likely, IMO

4.) S3 - I have read a comment somewhere that they had open sourced a driver for their discontinued Savage 3D chip, but don’t know whether they are willing to hand out documentation for their latest product generation named DeltaChrome

5.) Same goes for a less known company named XGI - they actually make Linux drivers for their “Volari” 3D chip - don’t know whether anyone ever tried to contact them for specifications. Although, as a general impression, some Asian companies seem to be more open towards alternative operating systems (remember DrayTek’s MiniVigor (a USB ISDN device) driver for BeOS some years ago) than those in America and Europe, so maybe there are chances…

Any other options?


0.)THe Voodoo 5 driver is the same as the Voodoo 4. Only uses 1 of the 2 chips to accelerate 3D. :frowning:

1.) NVIDIA cooperates when it makes sense. See FreeBSD NVIDIA drivers.

2.) ATI is a no show. See busted ATI official drivers on Linux. And are barely able to do decent drivers on Windows. See CS:S. :wink:

3.) Maybe thru SNAP (scitechsoft).

4.) I was told that the Linux drivers was bad/non existant.

5.) not a problem. No one runs those cards.

I heard/saw somewhere that SNAP may get 3D acceleration eventually.

3D HW OGL is certainly possible.

NVidia have got 3D drivers on linux, albeit not source code versions. With enough money thrown in their direction, the same could happen for Haiku.

It will probably come down to money in the end IMHO.

Other options are to convince ATI to make a standard C library that contains all the relevant opengl functions, memory management, register manipulation… Then all an that needs done on the OS side is to wire in the OS versions of the kernel memory functions, interrupt routing, DMA, AGP, 2d system and the opengl system. Kinda like what Nvidia does with their NVNET driver. I don’t see any problem with that. It also has the advantage of pretty much being OS independant, and probably more cross-architecture as it doesn’t contain any specific CPU code(just needs re-compiled). Although I would expect the driver to be pretty heavily optimised in X86 assembly at the moment. The work done would be applicable for pretty much all of ATIs OS, and embedded applications. Win-win if you ask me.

The other alternative is to wrap the windows driver.

edit: spelling.

Euan’s idea seems like a goog thing, which pretty much ensures that ATI won’t do it. After all, they still haven’t managed to produce a linux driver that doesn’t have some sort of major problem. I think most likely our 3d support will come by way of getting an NDA with the companies and producing our own closed source drivers.

Some things we’ll need (could use) in order to have HW-OGL in Haiku, at least for a couple of cards:

  • Mesa
  • *BSD’s DRM/DRI
  • Those few XFree86 drivers that actually use DRM/DRI [Note 1].
  • HW datasheets (albeit those with actual 3D programming info are even more rare) [Note 2]
  • Devs willing to do the hard work (it would be nice to be able to pay them for that).
  • Loads of time, patience and luck :slight_smile:

Seems like we’ll be playing Be’s Minesweeper for a long time :stuck_out_tongue:

Oh! I wish video card manufactures (and all HW makers, for that matter) where so open like, for example, VoiceTronix.

They make computer telephony cards, PBX, etc., with smartly designed drivers (OS indepentant user space lib + a tiny kernel driver), and they are even sending free cards for those porting the drivers to new platforms!

Obviously, they understand how “open-sourcing” the drivers can cut production/support cost. Oh! Wouln’t it be nice if all companies were like that one? :slight_smile:


Note 1: like for SiS 300/630/730 (yuuhoo! :-P) and others I don’t remember now. Google for DRI+BSD+XFree86.
Note 2: I got some for the ‘ancient’ SiS 530 cards (and some for even older ones). Sometimes Google surprise you.

well I have the specs for ATI R100 and R200 series. Even with the specs, it’s complete giberish, and difficult to comprehend. For 3D, you’d need a team of 20 boffins all with PHDs to make any sort of working driver from a register spec. :shock:

C code, private api, libs == yes please.

When can we play UT2004? …and Yahoo games? :wink:

Kev

What about Trident cards? I believe Trident has left all the video card business to XGI now, so is there any possiblity to have a drived for such a card? I’m guessing that there isn’t…

Agent_K64 wrote:
What about Trident cards? I believe Trident has left all the video card business to XGI now, so is there any possiblity to have a drived for such a card? I'm guessing that there isn't...

You would just as well using software rendering. :lol:

euan wrote:
Agent_K64 wrote:
What about Trident cards? I believe Trident has left all the video card business to XGI now, so is there any possiblity to have a drived for such a card? I'm guessing that there isn't...

You would just as well using software rendering. :lol:

I guess I’ll play my games on Windows… besides, it’s not like I will be able to run MechWarrior4 on Haiku anyway. >_>

Heh… the future has arrived:

QUADRUPLE BOOTING :lol:

  1. Haiku Rx (from R1 and up)
  2. Linux - whatever distro one may like
  3. Windows - for the lamergamers who can’t find games for Haiku or Linux ( I’m one of these lamergamers :wink: )
  4. Freedos for all those with dos-games which wont run in any other way :stuck_out_tongue:

For nvidia drivers would it be at all possibly to write some sort of wrapper around the X Windows driver?

For x86 yes, but thats not sustainable a: legally and b: cross platform

Oh, and it would be a BITCH to code also. And worse to maintain if nVidia started changing interfaces.

There are very good chances for 3D acceleration with the Open Graphics Card: http://lists.duskglow.com/mailman/listinfo/open-graphics
The interface is / will be fully documented.

A new opportunity for 3d hardware support:

XGI releases graphics drivers sourcecode

And I think the “nobody uses XGI anyway” comment doesn’t make much sense, because many will be perfectly willing to buy supported hardware specifically for their Haiku-box anyway.

ChrisK wrote:
A new opportunity for 3d hardware support:

XGI releases graphics drivers sourcecode

And I think the “nobody uses XGI anyway” comment doesn’t make much sense, because many will be perfectly willing to buy supported hardware specifically for their Haiku-box anyway.

Sorry to say that XGI have proved that the “I’ll buy your cards if you support my hardware” argument adds up to bugger all users

They’ve provided full Linux drivers. I’ve NEVER seen an XGI card in use. And yet we still get Linux users whinging about ATi and nVidia when the other vendors (Intel, XGI, S3, SiS, etc) all have open spec or opensource drivers/cards. Users whinge, but never act on their whinge.