Targeting Vulkan and SPIR-V
ponce via Digitalmars-d
digitalmars-d at puremagic.com
Sat Mar 7 03:35:58 PST 2015
On Friday, 6 March 2015 at 23:25:40 UTC, Joakim wrote:
> The ground-up redesign of OpenGL, now called Vulkan, has been
> announced at GDC:
>
> http://www.phoronix.com/scan.php?page=article&item=khronos-vulcan-spirv
>
> Both graphics shaders and the latest verson of OpenCL, which
> enables computation on the GPU, will target a new IR called
> SPIR-V:
>
> http://www.anandtech.com/show/9039/khronos-announces-opencl-21-c-comes-to-opencl
>
> Rather than being forced to use C-like languages like GLSL or
> OpenCL in the past, this new IR will allow writing graphics
> shaders and OpenCL code using any language, including a subset
> of C++14 stripped of exceptions, function pointers, and virtual
> functions.
>
> This would be a good opportunity for D, if ldc or gdc could be
> made to target SPIR-V. Ldc would seem to have a leg up, since
> SPIR was originally based on LLVM IR before diverging with
> SPIR-V.
Sure, you might target SPIR-V with a C-like language, but how
will you generate the IR corresponding to:
- texture accesses
- local memory vs global memory vs mapped pinned host memory.
Looks like you need annotations for your pointers.
- sub-blocks operations made core in OpenCL 2.x
All things that OpenCL C or GLSL are aware of.
Having a GPU backend doesn't make general code fit for high level
of parallelism. GPUs are not designed to work-around the poor
efficiency of the programs they run.
More information about the Digitalmars-d
mailing list