this is the problem model in the first image. each color is a different shader that had to be generated by tangerine to render the voxel, and the average complexity of the generated shaders is also high.
the second image is the generated part for one of the these shaders. its basically the object structure w/ all the params pulled out.
@aeva You could try compiling to SPIR-V in a separate thread, that way the driver only has to go from bytecode to machine code.
I use shaderc:
It has several options, like optimization level, source language, and target environment (I'm using HLSL + vulkan).
It's shipped as part of the vulkan SDK, so I just LoadLibrary and load its functions to use from C.
There's also glslang:
Also dxc can compile hlsl to dxil or spir-v:
the mastodon instance at cybre.space is retiring
see the end-of-life plan for details: https://cybre.space/~chr/cybre-space-eol