Hi Nicolas,
Thank you for your swift response :)
On Mon Jun 29, 2020 at 10:20, Nicolas Capens wrote:
> No, sorry, such a feature is not available. To keep our scope focused, we
> only implement things which are also (widely) supported by GPU drivers.
>
> Note that we compile and optimize shaders specifically for the CPU
> microarchitecture it is running on. Vulkan pipeline caches for the GPU also
> don't typically allow reuse across devices or driver versions.
>
Makes sense. That description matches what I had expected.
> Why does integrating all of SwiftShader not work for you? Note that its
> binary size is significantly smaller when using the Subzero JIT instead of
> LLVM.
>
Good question. Binary size is one thing, I'm also wary of bringing in a complex
dependency "just" to compile and execute a static set of compute shaders. For
example, building a Gio program for Windows require nothing else than the Go
toolchain, can be done from any supported platform with a single command, and
results in a self-contained .exe file.
I suppose I could prebuild a static version of SwiftShader and add it to the
repository, but then there's a licensing mismatch (Gio is dual-licensed under
the UNLICENSE) and the usual trouble of build artifacts in a source repository.
-- elias