The original dlprimitives generates kernel code at runtime and caches it.
This works for OpenCL, since OpenCL C code is compiled by the target OpenCL platform's implementation.
In Vulkan, it is different. The code is first compiled from a shader language (this dlprimitives fork uses GLSL) to SPIR-V, then the SPIR-V is compiled by the Vulkan driver itself. This means the project has to bundle a shader compiler in order for any of the generated code to be usable.
Eliminating code generation at runtime and instead producing all required SPIR-V when building dlprimitives would mean eventually a shader compiler would not need to be distributed with this project.
The original dlprimitives generates kernel code at runtime and caches it.
This works for OpenCL, since OpenCL C code is compiled by the target OpenCL platform's implementation.
In Vulkan, it is different. The code is first compiled from a shader language (this dlprimitives fork uses GLSL) to SPIR-V, then the SPIR-V is compiled by the Vulkan driver itself. This means the project has to bundle a shader compiler in order for any of the generated code to be usable.
Eliminating code generation at runtime and instead producing all required SPIR-V when building dlprimitives would mean eventually a shader compiler would not need to be distributed with this project.