[libre-riscv-dev] New Resources/Specifications Page Created

Michael Pham pham.michael.98 at gmail.com
Sun Sep 15 16:58:02 BST 2019

On Sun, Sep 15, 2019 at 9:00 AM Luke Kenneth Casson Leighton
<lkcl at lkcl.net> wrote:
> On Sunday, September 15, 2019, Jacob Lifshay <programmerjake at gmail.com>
> wrote:
> > > Note: I'm not sure what the plan is for OpenGL. Are we doing that in
> > hardware or using Zink to run OpenGL on top of Vulkan?
> >
> > To answer your question, Michael:
> > We were planning on just implementing Vulkan (and maybe OpenCL) and
> > relying on Zink, SwiftShader (which should also work on GNU/Linux),
> > and other similar projects that translate other APIs to Vulkan.
> That last link you added Michael is really cool it lists a stack of
> projects that implement Vulkan adapters.
> DirectX, OpenCL, OpenGL ES 2 and 3, tons more.
> L.

Yes, it's really cool to see all these projects to get other APIs to
run on top of Vulkan, even Khronos in one of their slides said Vulkan
can serve as an Hardware Abstraction Layer.

However, while it makes sense to emulate other graphics APIs, for
example DirectX-->Vulkan and OpenGL-->Vulkan, OpenCL is wildly
different from Vulkan: some stuff can be done in OpenCL that cannot be
done in Vulkan and vice versa https://stackoverflow.com/a/40705151 .
Also the current projects to make OpenCL work on top of Vulkan have
some drawbacks. CLVK and CLSPV have very low performance (you can find
the Phoronix benchmarks for these), and they only target OpenCL 1.x
instead of OpenCL 2.x which I understand to be a huge difference. They
also aren't conformant yet either because they only work with a subset
of OpenCL 1.x and the development seems to be dying down (commit
activity doesn't look so good).

Anyway, I understand that this project is low on time and budget so
maybe for the first iteration it is fine to rely on these software
emulators and only have hardware acceleration for Vulkan, but my
suggestion is to add hardware acceleration for OpenCL in the second
iteration. That way, you can have a hardware accelerated low level
graphics API and compute API from which other higher level APIs can be
used on top of.

Just my thoughts and I realize it is unfortunate that I won't be able
to help out in regards to this.


More information about the libre-riscv-dev mailing list