leios / Fable.jl

General purpose animations via iterated function systems
MIT License
27 stars 4 forks source link

Possible SpirV compilation pipeline #91

Open leios opened 8 months ago

leios commented 8 months ago

Ok, this is an info dump, but I think this is the ideal path forward for Fable performance and also fixes #66 .

Ideally we...

Note that this will remove the dependencies on KernelAbstractions and any GPU vendor because we can rely on Vulkan for these steps, which would greatly reduce precompile time and hopefully speed up the process for PkgCompiler so we could make executables (games?) with this application.

leios commented 2 months ago

It might be interesting to look at what OneAPI.jl does already for the OpenCL -> SPIRV compiler. Then pass that to vulkan(.jl)?

Keep in mind that this is essentially LLVM -> SPIRV, which means you still need to go through LLVM, which is currently part of the issue.

The only real way would be to find a way to create SPIRV IR in Julia (emit_spirv, similar to emit_llvm)