Hardware 3D On BeOS A Reality. May 03, 2005 19:16 UTC, by Kian Duffy, Senior Journalist From the killing-things-in-vibrant-dark department... Rudolf Cornellisen, the driver guru who brought 2D drivers to BeOS for Matrox, NeoMagic and nVidia cards, is gearing up to release his nVidia 3D Accelerant soon. **update 5/may/2005** Updated the link to the driver. This isn't the first time BeOS has had hardware accelerated 3D. In 1999 BeOS Release 4.5 shipped with experimental 3DFX drivers, and before Be closed their doors, they were working on extensive 3D support, covering ATI, Intel, SiS and 3DFX cards. It is however the first time that mainstream users can have OpenGL (the R4.5 acceleration was Glide, which is only a subset of OpenGL) support, supported by the hardware capabilities of their video cards. A few days ago, Haiku News received a pre-release test version of Rudolfs driver, and I took them for a test run on both BeOS R5 and Dano/Zeta. My hardware is pretty low-level - a 1.7Ghz Celeron, 512MB RAM and an nVidia TNT2 M64. It however holds together pretty well for BeOS. The graphics card is whats important here, of course. The card is an OEM Gateway yoinked from another box, but its the nVidia chipset at its core that we're testing. Due to nVidia's restrictions on specifications of their cards, Rudolf has had to work off an old XFree86 3.x driver provided by the UtahGLX project. This means that only older cards are well supported, and only cards up to and including the GeForce 2 core (GeForce 4MX included) are supported at all. The driver sits inside a replacement libGL and libGLU.so from MESA 3.2 - Rudolf intends to bring these up to MESA 6.x at some stage of development later. Due to the variety of 3D systems in use over BeOS's history, not every game uses OpenGL, and those that do are tied to specific rendering systems. Be's port of Quake II works with Rudolf's drivers, as do most of the OpenGL demo apps. Rudolf has provided extremely extensive benchmarks already, even on the specific card type I use, so theres not much point in rehashing them here. As Quake II is (currently) the only game to use OpenGL on BeOS, my tests are based off that. By default, Quake II falls back to ID Software's very fast software renderer, so this has to be changed to 'default OpenGL'. In an ideal world, Quake II could detect the names of hardware rendering cards attached in the Be OpenGL betas, but it doesn't here - not a huge loss. You need to select a suitable resolution and this is crucial: windowed mode, preferably one that is smaller than that of your workspace. Rudolf hasn't been able to implement scaling yet, so this hard setting of the resolution and windowed mode is needed to avoid some current bugs in the driver. Once that is set, you can start a new game. You might notice that everything seems somewhat darker than before - or at least it did for me. The software renderer is incapable of making the colours as depressing as id intended, it seems - you are killing people (things?) after all :-) On my box, Quake II proved completely playable at 1024x768 with hardware rendering enabled. It is, however, slightly less smooth than the software renderer on my hardware, and input lags quite a lot in the menus, but not in gameplay. For some reason, you also can't quit, with the Quit option activating pause. There are also some bugs, such as overlayed data - like the crosshairs, or the health amount - being displayed intermittently or not at all. This is a bug of MESA 3.2, and not Rudolfs driver. However, the fact that your CPU isn't being whacked constantly, plus the colours as Carmack intended more than make up for the extremely minor loss in smoothness. For those with the machines of the era when my card was made (1999), the accelerated mode should be faster than the software mode. 3D apps are few and far between on BeOS, but our old favourite GLTeapot does exist. The R5 compiled verison of this doesn't work, so a recompiled version is provided. This version acheives 120+ FPS for me, without the destructively high CPU usage it would normally have. For nVidia owners of supported cards, this recent update is a very useful addition to their driver library, and hopefully it will provide some impetus to other driver authors to support 3D on their drivers, especially as every other major vendor - ATi, Intel, SiS - provide full 3D specifications. Further, unlike Be's 3D betas, 2D performance is not adversly affected by the 3D drivers. When not using a 3D application, performance is no different to the 0.43 release version of Rudolf's drivers running in PIO mode. There is no additional slowdown or loss of function, all is the same as it would be if you weren't using the 3D accelerant at all. Hardware 3D is something BeOS has needed for a long time, and now that it is here, it opens up a new world of possibilities for gaming and even graphics and media production on BeOS. Current or future opensource games needing hardware 3D, such as the soon to be opened Quake III Arena, Civilisation Call To Power II, and many others can now be ported.