Originally Posted by strim
I like what you did there. But honestly, this OpenPCI release, at this point of time... does not change much for the existing solutions. Of course it is great, if potentially someone decides to create a new PCI bridge (no point in implementing 12th or so PCI API in Amiga land).
However, using binary "backend" drivers is problematic. They are full of bugs. In theory you can write a single driver using OpenPCI API and have it work with G-REX, Mediator, Prometheus etc. But in reality try to write a more complex driver... and you'll discover really, really ugly stuff. In my opinion the next-generation of OpenPCI should completely dump the bugged vendor drivers and reimplement them from scratch. Of course the only vendor that provided documentation was Matay for their Prometheus, but G-REX and Mediator were sufficiently reverse engineered by now. Just 3 cents from someone who did that awful reverse engineering work
Btw. if you want some examples of breakage in vendor drivers, check out various issues
in SonnetAmiga project (which uses Elbox's pci.library) and search forums for threads related to Ratte's OpenPCI Radeon driver.
I didn't start this recently, this is very old code I got permission to open source.
It made a lot of sense to write this so that one driver could work on multiple vendor's hardware and since they were closed, that's how it had to work or else not exist.
I agree with you but you can see why it was done.
If nobody writes open back ends then at least it's one more library that isn't lost completely.