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.
https://www.khronos.org/opengl/wiki/SPIR-V#Shader_compilation
@lh0xfb how much of an undertaking is it to convert from gl/glsl to spirv/glsl?
I am not 100% sure, but it looks like it would not be a huge undertaking if you are already using GL3.3 core.
There are some code snippets on the GL wiki linked above, it looks pretty trivial to change the cpu code side.
@lh0xfb i'm targeting 4.2 with some extensions. i don't think i'm using anything particularly exotic
@aeva Basically this subheading: https://www.khronos.org/opengl/wiki/SPIR-V#Mapping_to_GLSL