Fair point
Dave (aka airlied) was working on a generic modesetting driver for X which just needs KMS to operate... sort of like VESA but with native modesetting support. I don't know whether that X driver is working with the current SI KMS code but I imagine it either does work or is really close.
The generic modesetting driver is a really useful idea (something I only realized in the last couple of weeks), because it makes it worthwhile to release initial kernel driver support at the modesetting stage without waiting for accel support before you release... and in many cases modesetting code is the "safest" and therefore the best candidate for releasing *before* hardware launch.
It might sound funny, but we don't actually gate release of open source code on testing or bug fixing, just "does it include enough to be useful" and "have we jumped through the IP/legal hoops". Testing and bug fixing can be done better once the code is in public.
Strictly speaking the code doesn't even have to work before we make the initial release, but we normally find that making something actually work is a real good guide to identifying the information we need to review before release. We may end up pushing the userspace code for SI before it actually works, for example, depending on whether "making it work" or "being able to release" happens first.
In terms of which hardware we use for testing, the general rule is "use whatever you can lay hands on", which usually means a mix of whatever chip was first and whatever chip had the best early yields
IIRC the tiling work was done for all generations supported by r600g at the same time, including NI, but each hardware generation tends to have some unique quirks and therefore some unique bugs. See below...
The general rule is that when adding new features you add to all the hardware generations supported by the driver when you start work, and when adding support for new hardware you add support for all the features & functionality that the driver supported when you start. You don't see a lot of "add this feature to only that generation" except in cases where all the earlier chips are too old to support the feature (when adding a feature) or there are radical changes in programming model which make it worth omitting a feature from the initial support in order to get the rest of the functionality into users hands more quickly (when adding new hardware support).




Reply With Quote

