Porting GCN pre-1.2 parts from radeon to amdgpu kernel driver

Deucher, Alexander Alexander.Deucher at amd.com
Mon Jan 18 14:19:46 PST 2016


> -----Original Message-----
> From: Sellers, Graham
> Sent: Monday, January 18, 2016 10:38 AM
> To: alexandre.f.demers at gmail.com; Deucher, Alexander
> Cc: dri-devel
> Subject: RE: Porting GCN pre-1.2 parts from radeon to amdgpu kernel driver
> 
> Hi Alexandre,
> 
> Yes, your understanding is correct.
> 
> Frankly, Alex or one of the other guys on the open source team would be
> best positioned to answer your questions as to what would specifically need
> to be done. However, yes, the gap we have here is in the amdgpu kernel
> driver. I pretty much only work on the user-mode side of things. Think
> "libVulkan.so" or "vulkan.dll" - the bit that applications link to. We talk to our
> kernel drivers through standard interfaces. It's the kernel driver that deals
> with a lot of the differences between different parts of hardware. amdgpu is
> a ground-up redesign of our kernel solution for Linux. The closed-source
> kernel driver that we were using in our Catalyst packages has been put out to
> pasture. For the amdgpu project, given the number of engineers we have,
> we have to make a tough decision between supporting interesting new
> features of new GPUs, or sticking with pretty basic support but backporting
> to older GPUs.
> 
> The differences in the graphics core itself between SI, CI and VI are actually
> pretty minimal (as far as the kernel driver is concerned, anyway). Where
> there are bigger differences are in things like the multimedia (video) engines,
> display controller, power management and so on. The radeon KMD has full
> support for all SI and CI (and earlier) "un-core" parts of the GPU. amdgpu has
> VI product support and some minimal (albeit disabled) support for CI, and
> basically nothing from SI.
> 
> Our user-mode Vulkan driver (and closed source OpenGL driver, for that
> matter) can talk to the amdgpu kernel driver, but not to the radeon kernel
> driver. The interfaces are quite different, and honestly, the radeon kernel
> interface isn't a great fit for Vulkan. We had considered trying to support
> radeon KMD in our Vulkan driver, but it doesn't seem practical. So, it seems
> that the options would be really to port the non-core support from radeon
> KMD into amdgpu, or somehow port the new KMD interfaces to radeon
> KMD, which would allow our Vulkan drivers to run on it, but seems like a bit
> of a backwards step.
> 
> There are other complications - such as it being frowned upon to have two
> kernel drivers for the same piece of hardware, so you'd need to port SI and
> CI stuff from radeon to amdgpu, and then somehow disable (or remove it) in
> the radeon KMD such that there was still only one driver for the GPU. It's
> non-trivial, but not insurmountable. Also, even though the code is there and
> working in radeon KMD, there are enough differences in the infrastructure
> that the ported support would need to be re-validated and all that stuff.
> 
> If you think you're up for the challenge, we'd be appreciative of the input.
> One of the major reasons to open our code and support open source is to
> encourage involvement and contributions from the community. That's why
> we're doing the GPUOpen initiative and we will be opening a lot more of our
> software in the future. Many of the guys on our open source team initially
> got involved by contributing to the project before we hired them. That kind
> of thing looks really good on a resume. :)

I think Graham summed it up pretty well :)

Alex


> 
> Graham
> 
> -----Original Message-----
> From: Alexandre Demers [mailto:alexandre.f.demers at gmail.com]
> Sent: Saturday, January 16, 2016 2:45 PM
> To: Deucher, Alexander; Sellers, Graham
> Cc: dri-devel
> Subject: Porting GCN pre-1.2 parts from radeon to amdgpu kernel driver
> 
> Hello to both of you,
> 
> I've been following the development mostly of the radeon driver for some
> time (with some small commits here and there as you may know). I was
> waiting to hear some news about the coming support of Vulkan API. And I
> have been wondering for sometime now if it would be a good think to have
> all GCN parts moved from the radeon driver to the amdgpu kernel driver (I
> had figured out it would be possible, but would it be of any use was still
> unanswered). I was also curious to know if the new Crimson software would
> support the radeon driver at some point.
> 
> Now, I may have had a clear answer: I just read from Phoronix' editor
> Michael Larabel
> (http://www.phoronix.com/scan.php?page=news_item&px=Help-Bring-
> Older-GCN-To-AMDGPU)
> that Vulkan would come to the amdgpu driver only, that the blob (which
> should eventually be opened) would support all GCN parts and that the only
> missing part to support GCN pre-1.2 parts with both Vulkan and Crimson
> would be to have them ported from the radeon driver to the amdgpu driver.
> Am I understanding correctly?
> 
> I'd be interested to know a bit more about the task and I may try to start the
> work or join someone who would already be interested in doing so.
> 
> Any comments on the matter? Any missunderstood thing?
> 
> Cheers!
> 
> --
> Alexandre Demers



More information about the dri-devel mailing list