Blender 4.2 - EEVEE-Next Feedback

but we have no control over shading caches and compile times when using OpenGL (that is an OS/Driver responsibility)

While not at extent of Vulkan/Metal/D3D12, OpenGL does have some control over this.

GL_ARB_get_program_binary allows you to build a compiled shader caching system.

Wrt the “compilation” itself, yeah it’s a bit of a mess. Some software try to mitigate that with various ways, e.g. doing shader compilation on another thread that has another GL context that shares resources with the “main” context. Additionally, do glCompileShader / glLinkProgram but not immediately check the return result – instead, proceed to do “something unrelated” (which might be even compiling/linking other shaders). Some drivers with this pattern actually go and do compilation “in the background” up until you check the result, query resource locations or use the program.

3 Likes