Originally posted by duby229
View Post
Now, what happens under the libdrm-amdgpu interface is a different story. Adding SI support to the amdgpu kernel driver is the most obvious solution, but it's messy for a number of reasons including the fact that SI is basically NI with an GCN shader core, ie has little or no commonality with CI and higher. Adding radeon kernel driver support to libdrm-amdgpu is messy in its own way, but gives us quick access to an already-upstream, already-enabled and already-tested driver stack.
From a userspace developer's point of view SI and CI are very similar, so using the amdgpu kernel driver seems like the obvious choice. From a kernel developer's point of view, however, SI and CI are much less similar and the choice is much less obvious. The only real argument in favour of amdgpu (albeit an important one) is that the long-term support costs will probably be lower with amdgpu. Downside of going with amdgpu immediately is the dependency on out-of-tree builds and the fact that there won't be much test coverage yet on pre-VI code paths.
We have been working on the amdgpu path for quite a while now so we have a pretty good handle on pros & cons. I don't know where you got the idea that we only started looking at it after Michael's article, but that is simply not true.
Comment