Unified nVidia TNT/GeForce driver for Haiku
26 May 2008: New cards on my block..
I've not been working on 3D much unfortunately, nor with the 2D driver. There are some very recent developments however.
I've been in contact with BeOS/Haiku developer Matt Madia lately, and he decided to send me two new gfx cards to 'thank me' for my previous work (as he wrote). The cards are a Geforce 7300LE (G72) and a Geforce 8500GS (G86), both for PCI-E.
Also I'm working on finding the Haiku problem with my driver that makes the acceleration engine inoperable (not yet done). In the meantime I came into possession of a P3-600/FSB133 Mhz system and a second computercase that's still empty.
Seems I'm going to have to arrange for a PCI-E mainboard now so I can test with the two new cards and fork the nvidia driver to create a second one for the G8x series cards... It will probably be a Asus Intel P35 chipset board with two PCI-e x16 slots, a PCIe x1 slot and some PCI slots so I have maximum flexibility for gfx testing for Haiku/BeOS.
Still, time is and will remain limited in which I'll do this stuff. I'm curious how effective I can make it..
Well, it's fun playing around a bit again, that's for sure!
Matt, big thanks for those cards you sent me!!
Oh, about 3D. Seems there's a newer versioning system used much for Linux these days called git (Mesa3D, the nouveau driver among others). Unfortunately there's no BeOS/Haiku port which makes accessing sources I need for 3D dev hard to do. Still, I could download some stuff using an early windows port and it's an interesting read.
The next step I need to take for 3D is finding out what the exaxt format of the nouveau_vertex structure is, as I need to create and feed those in the NV15's engine. If anyone accidentally knows where to find that info, please advice :-)
And if someone would want to port that versioning system, rest assured I'd be using it to checkout some interesting sources...
Have a look here:
24 January 2006: official Be drivers and multiple cards
I've been playing around a lot lately with multiple graphicscards in one system, seeing what happens if you try to use the second (or tertiary or whatever) card in there. It turns out to be quite interesting, a lof of things happen I didn't really expect.
What card will be used by the BeOS to display the Desktop?
If you start a terminal session, and type:
ls -l /dev/graphics
You'll get a list of kerneldrivers currently loaded for graphicscards. The first one listed is tried first by BeOS. If it determines that one doesn't work, it will try the second one listed etc. 'Stub' is not a real driver, but a fallback option to display your Desktop if no suitable real driver is found.
How does a driver signal that it won't work?
This is rather interesting, and rather unspecified. remember, a driver consists of two parts: the kerneldriver and the accelerant. The kerneldriver is the one creating the /dev/graphics/ entries.
So: the system (app_server) tries to open the kerneldriver first. Some closed source drivers will block more than one open instance.
- The matrox driver(s) do this to signal that the card in question is already in use: handy for me if I want to determine which cards are still free for a video consumer node for instance.
- However: the sis driver does this if it determines that the card can't be made to work: i.e. it sees that this card wasn't coldstarted by the system BIOS (displaying POST messages etc). The sis driver itself doesn't feature internal coldstart support, so if a sis card is non-primary according to your system BIOS, the driver will signal that it can't be used.
While I personally like the first 'feature', I don't really like the second one: it's likely that a accelerant will be the better place to check if a card can be really used: the kerneldriver's functionality should only be mapping the device: not *using* it.
On a sidenote I can tell you I tried converting the Haiku nVidia driver to use this signalling for 'being busy', but I miserably failed. I am no expert here, but it seems that the cookie managed by the system somehow is causing trouble. And besides: Be probably documented multiple-opens to be supported in their Graphics Driver kit for a good reason, although their own drivers (sometimes) work differently.
So, I modified the Accelerant's INIT_ACCELERANT and CLONE_ACCELERANT hooks to return B_NOT_ALLOWED in case the order of them being executed is not valid. Also I'll add aborting on unuseable cards later on in INIT_ACCELERANT.
Driver errors encountered during node development
For some reason most Be drivers can't seem to correctly identify their own hardware. Say you have two cards in a system, the desktop displayed on card 1, and card 2 not used. If you start using card 2, you might well discover that the driver for card 2 somehow gains access to card 1 and messes up it's programming. I have a feeling this has to do with non-system-wide-unique named areas mapped by the kerneldrivers.
Luckily the Haiku drivers don't have this issue: I guess the Be Alpha driver kit has a fix for this problem in it.
Other errors encounted were:
- Be SiS driver has overlay support, but it's broken. It supports single buffered overlay only, but vertical 'bars' of repeating video are shown instead of normal video. Also shutting of overlay doesn't work: once enabled it stays enabled.
- Be unified nVidia driver has broken GET_ACCELERANT_DEVICE_INFO hook: you need to issue it twice to get valid info (after that it's OK).
- DPMS state preservation over SetMode() calls is 'broken' on most Be drivers. Apparantly they didn't have time to update all of their drivers to what the alpha driver kit prescribes. (SiS driver is OK, nVidia and Matrox are 'broken'). BTW, I think preserving DPMS state is the way to go indeed. :-)
Well, that's about it I guess. This is the third time I am trying to write this 'article', so forgive me if I'm a bit sloppy. The fun in writing an article fades away fast if browsers and sites constantly mess-up...
23 June 2005: You can get nVidia 2D driver 0.53 now from the downloads page. This driverversion contains several modifications in it's DMA acceleration setup for pre-NV40, speeding it up for both 2D and 3D acceleration there. TNT1 (both AGP and PCI types) owners are especially encouraged to upgrade, as their cards enjoy a massive speedup in acceleration as a hardware-fault workaround could be removed with the new setup.
An important change is the large DMA command buffer in main system memory (instead of in card memory), that's accessed by the card's engine via real AGP transfers where available. The driver now supports DMA 3D acceleration for NV04 upto and including NV18 via the seperate 3D add-on alpha 2 (which can also be downloaded here). For NV40 and later cards no changes where done, except for the addition of recognition for some 10-15 new cards. So, if your GeForce 6200, 6600 or 6800 was already working with the previous driverversion, there's nothing new here. Otherwise, try the new version 0.53.
OK, that's it for now. Have fun, and please, provide feedback if possible! As usual your reports tell us if the driver is stable. Thanks a lot...
9 May 2005: Today I am releasing nVidia 2D driver 0.45. This version finally fixes some trouble with older cards outthere: the typical trouble that kept some people using the Be nVidia driver before. We are talking about the trouble I named 'bandwidth trouble':
All in all this driverversion is the best version to use alongside the 3D add-on 'alpha 1-final' which I released not too long ago. Get the driver(s) from the Downloads page and have fun!
- Malfunctioning/distorting GeForce 2 (NV15) cards should now work (again: these were down since V0.10!);
- The TNT2-M64 support now has specific code to optimize RAM bandwidth so screen distortions should be minimized. For this fix to be enabled TNT2-M64 users need to enable coldstarts for their cards though (in nv.settings).
5 May 2005: 3D add-on alpha 1-final released!
Today I was able to uploaded the source and binary files for BeOS R5, Dano, Zeta and Max edition. Get them from the Downloads page and have fun! Oh, and don't forget to provide feedback if possible: that would be appreciated ;-)
3 May 2005: After a lot of time spent on coding explicitly for openGL 3D acceleration, I am now releasing the 0.43 version of the 2D driver for nVidia. This driver supports 3D acceleration via a seperate 3D add-on for TNT1 (NV04) upto/including GeForce4MX (NV18) cards. If you aren't interested in 3D support, you don't need to upgrade from the previous 2D driver version (being 0.41). If you are interested however, you definately want this new driver version.
I am still working on releasing the 3D alpha 1-final add-on. Which means I am creating some basic documentation to go with it, compile R5 and dano versions, and release it: the code itself is frozen for this release now. Watch this space, I'll keep you posted...
24 February 2005: Well, we arrived at driverversion 0.41 a day or so ago. This time the most important improvements are that we have support for AGP and PCIe GeForce 6200, 6600 and 6800 cards, and that acceleration has been rewritten from scratch to work in DMA mode. DMA mode brings us 2-10 times speedup of drawing functions, depending on cardtype, system CPU speed and drawing functions used.
I have to confess I did not do anymore 3D related work since december 2004, but the good news is that once I do, 3D speed will also benefit from the improvements now in the driver. Of course I also learned a lot more about the nVidia engine as well while working on this DMA stuff, which will only help me more with my efforts to get that 3D going ;-)
Curious as to how DMA influences the driver's speed? Have a look here: I put up an article and accompaning benchmarking results for a number of systems and cards for your pleasure. Have fun!
Oh, and don't forget to download and install the new driver...
1 November 2004: Today I am releasing driver 0.30. This time the main change is the addition of card coldstart support for analog connected screens, along with recognition of new cards (PCIe and AGP).
Coldstart support means you can use a nVidia card as secondary card in a system with multiple graphics cards. Of course, BeOS officially does not support that anyway, so I guess it's primarily something for the 'freaks' amongst us. For instance, use of Kevin Patterson's old alpha Video consumer Node for nVidia cards (released via BeTVOut a long time ago) might become simpler now: you need one less trick to get that going now.
Anyway, for details about this release, have a look at the list here. Downloads can be found here. Have fun, and make sure you send feedback! Thanks a lot...
19 July 2004: Hi there! Well, this is an interesting turn to take :-). Suddenly I became very curious to know what difference use of AGP would make on BeOS. And as it turns out the feature called AGP FW nicely speeds up unaccelerated graphics, I decided (with some help ;-) to setup support for that via a new module now known as the AGP busmanager. The nVidia driver uses it to setup this nice feature which resulted in 74fps speed in Quake2 Timedemo1 with demo1.dm2 in software rendering mode @ 640x480 resolution on my system while I started out with 53fps in PCI mode.
OK, all in all, what I want to say is: I released a new version of the nVidia driver as V0.22, and also the AGP busmanager module. The module comes with a fake graphicsdriver for all people outthere that don't happen to have a nVidia graphicscard, but some other brand AGP card. So they should be able to enjoy the new AGP 'speed' option right from the start as well if their hardware supports it ;-)
And, yes, you are right: the driver version number is rather high for my 'taste'. I thought it was time to increase speed here also a bit, as in fact the version numbers of my drivers are very low for what they offer (so I'm told :-).
Anyway, get the driver and busmanager from the download page, and have fun! And, please, send feedback! I need to ascertain if AGP is stable on all systems outthere, and if not, what failsafe setting the busmanager should have in the future to give everyone a start without trouble... Also I like to hear from you if I broke flatpanel support on some systems outthere, and if NForce RAM amount detection is indeed working now!
Then I have one last remark. About that busmanager: I guess I have to expand that to do more one day, but before I do, I need to checkout something that is going to actually need that. So I guess the expansion won't happen very soon. ;-)
14 June 2004: Today I am releasing the latest version of the nVidia driver as version 0.10. You can get it at the downloads page as usual.
So what's new?
I can tell you I'm glad we have reached V0.10. It has been a lot of work to get those panels working: quite a few users where testing for me on different iterations of the driver. Laptop panel support wouldn't have been possible without them. I had to solely rely on those users to get this going because I still have no access to laptop(s) with nVidia graphics hardware. So: thanks people, for all your time and efforts on this!
- DVI panels are supported;
- Laptops are supported, including their internal flatpanels;
- Widescreen mode support has been added: if the driver finds you have only (a) widescreen panel(s) connected, you can select such modes from the Screen preferences panel now (don't use the R5 screen prefs for that: this preflet is outdated, so it won't work with that);
- Overlay has finally been completed to also work correctly in virtualscreens now;
- Dualhead support has been modified drastically internally: even NV11 cards (Geforce2 MX and Go) should be fully supported now;
- More minor updates have been done: for full details look at the 'fixes' page on this site.
By the way: DPMS support for the panels has not been completed and is disabled because of that. It turns out that programming for DPMS is quite architecture dependant, and (of course) no documentation exists. While I have gathered some info about this, it's not nearly enough to actually use. In order to gather more information, I have added some special logging to the driver. So, if you want DPMS support, take the time to enable full logging, do a reboot, and send me the resulting logfile please! Every bit of info is welcome this way...
In the meantime, have fun testing and using the new driver. If you encounter trouble, let me know as soon as possible. As always you have to tell me if I didn't mess up. ;-)
Oh, and for the near future: keep an eye out for BeTVOut updates. When I didn't mess up, I'll be working on updating that a few times before it will be merged into this nVidia driver. Talk to you later..
7 June 2004: Just a housekeeping message today: I've deleted my Email adress email@example.com due to large amounts of viruses and related spam coming in each day (3000+ !). You can find another Email adress on this site to use instead. Please don't post this adress elsewhere anymore as this will destroy useability of that adress as well.
Thanks for your cooperation..
30 April 2004: I have another update on the driver's progress for you today. I just updated CVS to 0.10-17, which is a version I'd like to see tested as much as is possible on laptops and cards with DVI panels connected. It could be that this version works on all laptops and DVI panels outthere, but then again, trouble might still exist.
I have a few DPMS-like things that might be needed, but without feedback accompanied with logfiles followed by a few simple tests: I can't be sure about this. I can't enable this stuff unless I get your help!
So, you can download the latest build here, for your testing pleasure. The driver has come a long way in supporting laptop and DVI panels, while it should be just as stable as release 0.09: so try it! Chances are good it actually works... These days your panel will even be used as primary output no matter what, to name a nice thing. And if you aren't satisfied, simply switch head use via the new 'switchhead' option in the nv.settings file :-). For a full list of updates done in the driver since version 0.09, look here.
OK: that's it for today. I'll be waiting for your feedback...
18 March 2004: Hi there. Here's a progress update along with a request...
Well, things are going _way_ better than I ever expected. The current driver in CVS should be of the same quality and stability as the released V0.09, plus it indeed adds partial flatpanel support:
If you have a laptop with nVidia graphics card AND/OR a normal card with a DVI panel connected to it and you feel you'd like to test, please checkout this Forum thread. I posted a link there to the most recent test version. Please test it with full logging enabled and provide feedback, so: your observations AND the logfile!
- DVI connected panels should work on all cards (which is a side effect of trying to get laptop panels going ;-)
- GeForceFX laptop panels should work;
- Widescreen panels should correctly display all modes! (just like normal panels of course);
- If you know your modeline for a widescreen panel, dump it in the app_server_settings file if you know howto: you should have a unscaled 1:1 fullscreen widescreen Desktop (watch DVDs with VLC!!).
- GeForce2Go (NV11) and GeForce4Go (at least NV17) _might_ work, but probably not. Still, I _need_ feedback!
I'll be working for some more time on this stuff before I do another release. This release will include support for a panel's native resolution via the OpenBeOS _and_ Dualhead Setup Screen preferences apps. If I am unable to get older cards working correctly, well, I'll just leave it as it is then. In this case I wouldn't mind testing myself on some of those cards/laptops on BeGeistert for example... ;-)
Anyway: Thanks a lot for your support in advance!
26 February 2004: The V0.09 bugfix release is finally ready. As far as I know the GeForce FX5700 and all NV11's should be working just nicely (again) now! Get it from the download page as usual.
V0.09 should be considered a stable release, V0.10 (due at some point in the future) could possibly break something again: I will probably resetup/expand the PLL programming code so we should finally get more precise pixelclocks (refreshrates). And of course laptop internal panel support will be attempted from now on as well.. :-)
10 February 2004: While we are waiting for the V0.09 NV11-bugfix release (if all is right some FX5700 tests are being done by a willing user which might result in another update before release), I want to inform you that after this release I will be trying to implement laptop internal panel support.
The ZetaNews site has specific forums for the openBeOS graphics drivers, so I'd like to hear about your laptop flatpanel over there. Especially if it has a non-standard native resolution (so: it's not listed in Be Screenprefs panel) I am interested in details. If you happen to know a Linux modeline that works with your panel, make sure you list it in the nVidia forum as well. Oh, and don't forget to mention your cardID...
Thanks in advance for your cooperation: because of lack of a laptop to test with myself, I am going to need it. And I can't guarantee anything about the success or failure of this effort. See you there..
2 February 2004: We have a new release: V0.08 is here!. The main improvements are the addition of dualhead support, fixed cloning of accelerants (accelerated games ;-), and support for more cards. FX5600 cards are working nicely these days, while FX5700 and FX5950 support has also been added to the driver. It seems the FX5700 is indeed working, but the image is still shaky. I have no reports on the FX5950 yet, so I don't know the status for that card. If reports come in and problems exist, I'll see what I can do: the FX5700 should be fixable at least ;-)
Anyway: have a look at the fixes page, download the driver, and have fun! Oh, and make sure you download Dualhead Setup from BeBits as well!
6 January 2004: Happy new Year! A new year, a new beginning I guess ;-)
From today onward, you can find the latest sources for the (open)BeOS nVidia, Matrox and NeoMagic drivers in openBeOS CVS: they are all 100% up-to-date now. Also you are now able to download the latest binaries for those drivers from the new OpenBeOS Build Factory as Jam packages. While I still need to update/include up-to-date documentation for those packages, the drivers are up-to-date already after new builds. Be aware that those versions are not real releases, so they might be less stable than you are used to. I'll do my best to keep them rock-solid though...
The fixes page on this site will remain up-to-date as well, other documentation might change later on to bring it up to speed with the new way of developing the drivers. Real releases for the drivers will of course also keep happening. For the use of features like TVout and dualhead you still need to use Mark Watson's DualheadSetup and/or tools from this site for now. Have fun...
30 December 2003: Hello again. A few of you already know that the FX5600 is working nicely now, because you already have the (preliminary) 0.08-1 driver. Got it here on my harddisk, and it's in openBeOS CVS as well. If you have a FX5600 card and can't wait: just let me know. I'll send you the driver on the double then. All I ask in return is that you let me know if it really works OK (or not). Enjoy the last day of 2003!
Wouter, if you read this: call me, I'll jump in my car and give you your property back ;-). Thanks a lot, on behalf of the BeOS community!
24 December 2003: Hi there! Got some good news for you today. Tonight I started on driverversion 0.08. And the first fix is.. (drumrol ;-).. FX5600! Thanks to a collegue of mine I've got a GeForce FX5600 for a few days to finally fix the fault we are experiencing. It turns out nVidia changed the PLL on me, and the acceleration engine restrictions. I've nailed the first problem (PLL - no picture), so now I only have to determine the actual engine restrictions before the FX 5600 is officially supported.
On a seperate note, I can tell you that the nVidia, Matrox and NeoMagic drivers are now in openBeOS CVS. This means I will do further developing via CVS if all goes right. I'll keep releasing new driverversions here in the way you are used to though. I want to thank Andrew Bachmann for doing the initial checkins and polishing for me, so I won't loose time over this. Thanks Andrew!
OK, that's it. I got one more thing to say at this moment: Merry Christmas to you all! (Talk to you later ;-)
28 October 2003: Version 0.07 is ready for you to download now. From now on the driver will be listed on BeBits alongside being on this site. The main change for this version is the addition of TNT overlay support (which cannot scale down but is very nice to have anyway ;-). It has been tested on my TNT1, TNT2 and TNT2-M64 cards and it's working flawlessly as far as I can tell.
The FX5600 CRTC-timing problem remains for now, and FX5700 / FX5950 cards are not (yet) supported: mail me if you own such a new card!
24 October 2003: Just a quick update ;-). Very nice. TNT overlay is up and running. You now the drill: code is a mess, got to clean up before the new release. Did you guess the TNT overlay unit couldn't scale down? Well, it can't. Apart from that: looking good...
No news about GeForce FX5600 I'm afraid. I think we have a CRTC problem, but can't put my finger on it :-/
19 October 2003: Well, BeGeistert has been held and I wasn't able to be there. I am very sorry about that, but it couldn't be helped. I will try again for BG12, that's for sure! Such meetings can be very handy for bugfixes on hardware I don't have myself ;-)
Anyway, about the latest release. It looks like the driver is working as expected, though a few tiny bugs slipped by me. So the next release will be a bugfix release mainly, and if all is right, it will contain TNT overlay as well. Now if I could just get my hands on a GeForceFX 5600... Owners of this card are encouraged to send me a shapshot of the actual card. Especially that tiny shiny oval shaped metal housed reference crystal I'd like to see ;-) I wonder what frequency it is on?
V0.07 will probably be the first release I'll also publish over at BeBits. I think it's mature enough to do that now (That is: working OK on most TNT1 - GeForce FX5900 cards, except for FX5600 apparantly. Embedded cards are slow and distort sometimes, while laptop cards mostly work OK on external monitors :)
9 October 2003: We have a new release! After a lot of work and testing, I am presenting driver V0.06 to you today. Here it is: 2D acceleration! Please test the driver and send feedback. While the driver works flawlessly on my set of cards, there could still be stubborn cards outthere...
I've got some preliminary testresults on the driver's speed for you as well:
Anyway, get the driver from the downloads page and have fun!
- Retrace sync apparantly works about 2mS faster than with the Be unified driver: VLC is capable of actually completing bitmap copies within the retrace time over here (with Dano). Note please that VLC only syncs to retrace if you enable that and set a refreshrate between 48-61Hz. This is because distortions are mainly visible on low refreshrates (especially using TVout ;-). Note please that it looks like BeOS R5 contains a WaitForRetrace() bug: it's working to slow at least!
- 2D acceleration is about 10-15% slower than with the Be driver. I'll try to optimize speed later on, that hasn't been done yet. My GeForce FX 5200 is about 50% faster than my GeForce4 Ti 4200 card by the way (BeRometer).
30 September 2003: Just informing you today of a small site update. The 'fixes' list for driver 0.06 is now up to date, and the bugreport form includes 'new' laptop card types now. If you see your card as being listed as an 'unknown' type (or just listed plain wrong) please set me straight. Thanks. OK, back to work... :-)
23 September 2003: Hi there.. Still working on acceleration over here. The code is shaping up nicely now, and screen_to_screen blit has been tested and found operational on TNT1 and TNT2 cards.
By the way, I have had some bugreports regarding GeForce FX5600 cards. Apparantly these cards will come up with a 'black screen' while the monitor is complaining about the refreshrate being 'out of range'. If you encounter this and your monitor also tells you what the actual refreshrate is, please let me know: it looks like it's too low instead of too high. People who know how to tweak the app_server_settings file (it contains the active display_modes for each workspace) could try to set the rate to say 70Hz on a workspace in safe mode to see if the card works after reboot then. If you would do such a test, please let me in on the results. While I did miss one register that influences vertical timing, this might well be another problem... Also people having working OK FX5600 cards are requested to let me know. This could be a problem that exists on _some_ or _all_ FX5600 cards after all.
OK, that's it for today. Stay tuned. I am doing my best to get this one out the door before BeGeistert ;-)
11 September 2003: It's working! It's working!!
Finally! (forgive my sudden burst of enthusiasm :-). I got screen_to_screen blit going in all colordepths on my TNT2. It's still not perfect, and I've got some massive cleaning up to do, but it's sooo nice to finally have this. Of course I also need to check it out on the GeForce cards before I'll release it. Be warned though: it's been said acceleration does not really accelerate on newer GeForce cards due to slow settings of RAM and core speed by these cards BIOSes.. (I'll fix that later on, hopefully.)
Sooo, stay tuned. Sigh.. (Major relief here! ;-)
9 September 2003: I am dropping in today to tell you I have no news at the moment, except for the fact that setting up the acceleration engine on nVidia cards is probably the hardest part of the driver. While I am still working on it, I have had no success yet in getting it going. The minute I do however, I'll certainly let you know here..
By the way: I also have to let you know that my email adress firstname.lastname@example.org probably won't be useable anymore in the (near) future. This is due to the fact I am receiving about 1000-2000 viruses every day these days... Well, so much for that internet 'service'. I guess I won't be setting up a new account that I'll make known the way I did with the previous one. Actually, I was surprised to see how long it took for that adress to become unusable anyway.
12 August 2003: Well, after more feedback, testing and fixing we now have a new driver release: V0.05 is waiting for you on the downloads page. This is a bugfix release for the last issues (hopefully) that overlay and the cursor had on some cards. The driver now respects the GeForceFX engine limitations, and includes better support for GeForce4MX and Go cards overlay which turned out to not always work.
Thanks to your feedback I determined that I needed to purchase a GeForce4MX card myself for 'the collection' to fix that nasty GeForce4 MX / Go overlay bug. And it sure helped. :-)
I also want to thank Rene Gollent for that GeForceFX 5200 card he gave me, and Shard from Poland for the TNT2 Model 64 which will come in handy for some specials this cardtype needs for it to properly work.
Please note by the way that Be's R5 mediaplayer contains an error that displays your movie too low onscreen if you set it to use fullscreen mode wile using overlay. It interprets the minimum scaling factor wrongly and thinks it can't display from the top of the screen. Use VLC or Dano's mediaplayer (if you may) instead. These do not have this bug ;-)
Oh, and if you notice that your cursor just will not go to the left or top of your display (it stays two pixels away) you've hit another BeOS R5 (and Dano) 'bug'. This error is due to the cursor's 'hot' position which would cause the actual position that would need to be set to be negative. This may not be done, except on some brands (like Matrox) that use the lower-right corner of the cursor bitmap as a reference point, instead of the left-top corner like nVidia cards do...
OK, while you all have fun with watching movies (hopefully), I'll get going on the most important 2D acceleration function: Screen_to_Screen blit. This will take a while though, so please remain patient. Talk to you later.. ;-)
6 August 2003: Wow. Just plain wow ;-)
I just personally tested an Asus GeForce FX5200 card with 128Mb RAM over here with driver 0.04. And guess what, overlay is working very nicely on that! Also all other implemented functions are OK. I need to add a very small mouse positioning update though, as well as a downscaling limiting update on overlay. The FX cards indeed have a new overlay engine, but it's compatible to the old one apparantly. Output is visibly sharper, so filtering has been improved. The downside apparantly is that downscaling can only be done to one half the original content size, instead of to one eighth as it is on older GeForce cards. I'll do some testing in Windows to doublecheck that though before I update the driver.
How did I get a FX card over here? Well, let's just say for now that the BeOS community is very special indeed. Keep sending reports though please, as a solid driver depends on testing on a wide variety of cards...
5 August 2003: Thank you all for getting me that GeForce4 Ti4200 card! I'm glad I am able to develop on that card, and it's already paying off. Really :-).
As a result, I am able to present to you hardware overlay today with confidence it will actually work on GeForce256 upto and including GeForce4 type cards (TNT overlay will hopefully be setup later). Rumour has it, that GeForceFX cards have a new overlay engine though. As I don't own such a card, you'll have to tell me if overlay works on them or not (it is enabled in the driver for now). Also I'd like to get feedback on all other GeForce type cards to confirm (or destroy) my confidence. Thanks a lot in advance...
BTW: The 0.03 driver is confirmed to work on GeForceFX cards as well now. I'd like to hear a bit more about them though ;-)
Anyway, get the new driver from the downloads page and have fun!
31 July 2003: I have three things for you today.
First off, thanks for all reports you are sending me! Though I try to keep up with my mail, it's getting hard to do. If I did not respond to someone, it's not because I don't want to, but because of lack of time. I read all mail I get at least and try to pinpoint things I have to fix with it. Keep sending those reports please. I promise I'll do my best to hold on :)
The second thing is some very good news for us all: GeForce overlay is working over here! I'll try to get V0.04 out the door as soon as possible. Give me a few more days though. I still have to finish up on some bits and pieces, and cleanup the code. You'll have to test it for me then, and make sure you tell me how it behaves on your cards.
Last but not least: I want to mention that the screensaver bug turns out to be fixed with the current release 0.03. Apparantly the screensaver used crashed on one of those other bugs that have been fixed. Glad this is confirmed now. Thanks. ;-)
Oh yes, I also have an update on cards that are reported to work upto now, though some of them apparantly have bandwidth problems (snow somethimes), and embedded cards have non-working RAM amount detection:
Still no reports on GeForceFX cards though.
- GeForce256 cards;
- GeForce2MX cards;
- GeForce2Ti cards;
- GeForce2GTS cards;
- GeForce3 cards;
- GeForce4MX cards;
- GeForce4Ti cards.
27 July 2003: You can download version 0.03 now from the downloads page. I did not apply a DPMS screensaver patch because I just got one report on this, without further confirmation. On the other hand, an extra patch was applied to prevent apps or the app_server from waiting for retrace as that (kernel driver interrupt) function has not yet been implemented.
This should be the first stable release for most users. If not, then please inform me. (Uninstall instructions are also included in the README now.) Thanks!
26 July 2003: OK people! Testresults are coming in just nicely. :-) Thanks to you all I can now tell you that I think this first release has already served it's goal. The following cards are report to work on most systems:
It would be nice if some people were to report about these cards as well:
- GeForce2MX cards;
- GeForce4MX cards;
- GeForce4Ti cards.
For now I suggest people using laptops to remain using VESA mode, although I love feedback to see what the driver does on them. I could learn from that (see planned bugfixes below ;-) Hint: keep VESA mode enabled when testing the driver (it will init your flatpanel) and make sure you set 60Hz refreshrate!
- GeForce256 cards;
- GeForce3 cards;
- GeForceFX cards.
So what's next?
I'll try to make a 0.03 bugfix release this weekend. Fixes I will setup for this release are:
With the 0.03 release most people should be able to use the driver for day to day use. My advice: use the lowest colordepth you can live with: this increases speed a lot! Meanwhile acceleration and overlay will hopefully be setup. Stay tuned! ;-)
- Prevent system or video freeze on dragging files or so in tracker windows (already fixed!)
- DPMS/Screensaver update: remove sequencer reset condition. I got a report that someone's card did not come back from sreensaver mode. (Did anyone else test this outthere?)
- Pre NV10 cursor_move sync to retrace: some artifacts can be seen if moving the cursor up and down really fast (if someone sees this on GeForce cards please let me know asap!);
- Cursor bitmapadress setup modification: For laptops I'll do it the compatible way instead of the 'modern' way because these cards are 'bare bone' apparantly and no real improvement is to be gained here anyway. I am talking about the 'Go' type of cards here (thanks for the report!).
24 July 2003: Today I am releasing the first alpha version of the new nVidia driver for (open)BeOS: V0.02. Get it from the downloads page and see how it holds up. Over here it's working on my four cards: two TNT1's, a TNT2 and a GeForce2MX400 card. Make sure to send me feedback. Did I already mention that the driver _could_ work on all known cards? But: hey, hey, Hey! Let's be carefull outthere ;-)
21 July 2003: Good news! The new driver is working fully on it's own now over here, so no more VESA mode needed. Now I need to make the driver more 'universal' so it will work also on other cards (hopefully). This means I have to setup some cardspecs for the cards, things like RAM amount detection and max. DAC speed. After that I'll test on three other cards I have here. Once the driver works on all my cards I'll release the first alpha version. Stay tuned: can't take much more time I expect... ;-)
17 July 2003: Just reporting here to let you know the new driver is still progressing well. Today for example I included detection for 85 different cards of 4 different brands. Man, my fingers are tired! I really hope I got them all ;-)
Checkout the bug report form if you are curious which cards and brands are recognized by the driver now. If you miss your card there then drop me a note, except for RIVA128(ZX) and older pre-TNT cards which will not be supported. Check Be's 'Devices' preferences panel for VGA Vendor and Card ID's: those are also used on the bugreport form. Until later...
10 July 2003: Presenting: the preliminary website dedicated to the new TNT/GeForce driver for (open)BeOS I am working on. Stay tuned for more news: A first testrelease will probably happen within a few months, maybe even weeks...
(Page last updated on May 6, 2016)