Code itself doesn't go through review other than the devs making sure there is no additional IP being released with it. It's the big chunks of new hardware programming info that take time... not because programming info itself needs to be protected but because programming info sometimes reveals internal design info that we can't easily get agreement to release.
Even then, it's usually not the review that takes time, it's figuring out what to do when the answer is "no" the first (or second, or third) time. The process is kind of a parallel activity -- get internal agreement on what information we can expose (that's what takes the time) and make sure the initial code we plan to release which uses that info stays within the bounds of what we have approval to release.
Key point though is that other than a couple of remaining areas like power management and UVD, driver progress is primarily a function of the amount of developer time available to work on it, so additional contributions definitely speed up development.
Power management no (but we're working on it), everything else pretty much yes. I say pretty much because there are always questions and problems that come up during development but we can usually respond to those pretty quickly if we can lay hands on the information internally. As am example, I don't think we have written documentation that says "this is how you implement tesselation on xxx generation of hardware" (because we usually have to write code ourselves to figure it out anyways), so our devs either write the initial code themselves or work with the community devs who are implementing new functionality. You can watch a lot of that happening on #dri-devel and #radeon.
There are exceptions to everything, of course. HDMI audio information turned out to be a bit of a black hole, which we didn't expect at all, while other areas turn out to be easier than we expected. Normally driver devs don't have to care about "where the hardware came from" but when you try to release programming info to the public everything that ever happened in the last ten years of HW development becomes a possible roadblock. We can generally get through or around all the issues eventually, but it tends to take finite calendar time as well as effort and so is hard to speed up by throwing more resources at it.


Reply With Quote
