I’m working on a real-time simulation (60hz) and I'm trying to avoid all the run-time shaders re-compilation. I already find out many state changes that are triggering shaders re-compilation. To avoid having these performances glitches while running the application, I make sure to trigger all the known cases at startup.
Here is the list of the cases that triggers shaders re-compilation:
- Activating / Deactivating GL_LIGHT*
- Activating / Deactivating GL_CLIP_PLANE*
- Activating / Deactivating GL_MULTISAMPLE
- Changing glShadeModel
- Texture format changes (using a same texture unit between some formats cause re-compilation)
- Some uniforms changes (this can be deactivated by using a given NVIDIA profile)
Does anyone have a complete list of all the states that triggers shaders re-compilation on NVIDIA?
Also, does anyone know how to deactivate these shaders re-compilation on NVIDIA? Is there a way to deactivate these re-compilations at run-time?!