For users that means you can tweak shaders in the nodetree and there is
no more significant lag. This is a huge improvement, particularly in
systems that have no shader cache.
From the code perspective it means we are no longer re-compiling the
shader every time a value is tweaked in the UI. We are using uniforms
for those values.
It would be slow to add that many uniforms for all the shaders. So
instead we are using UBO (Uniform Buffer Objects).
The following patch is updating only a few nodes. Once the design is
approved the remaining nodes will be tackled.
This fixes the main issue of T51467. However GWN_shaderinterface_create() still
needs to be improvedi. When opening a .blend all shaders are compiled once, so
optimizing it will bring a measurable impact.
This should be enough for testing and evaluating the API:
- Mix RGB
- RGB
- Vale
- Emission
- Eevee Metallic