-----Original Message-----
From: Sellers, Graham
Sent: Monday, January 18, 2016 10:38 AM
To: alexandre.f.demers@xxxxxxxxx; 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@xxxxxxxxx]
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
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel