Enable use of separate shader objects for certain shader programs
The series fixes up !864 (merged) and signals the guest that the SSO property can be understood be the host. Changes are:e,
- Keep the info about the number of patch varyings to apply locations properly
- scan the shader for ability to be emitted as separable program prior to translating it. This makes sure that the shader key is correctly initialized, and it also rejects shaders that may need IO matching by name.
- Don't update FS shader key parts if we handle separable programs, matching is done by location, so there is no need to fix the interpolation specifiers
- rebind not only UBOs but samplers too when switching pipeline, do this only if a shader is bound to a different pipeline
The first patch just fixes some (new) warning.
As a result of this series the benchmark in Tomb Raider 2013 runs a lot smoother and Dota 2 run in OpenGL mode also seems to settle faster to smooth game play (there is still a lot of stuttering at the beginning).
Edited by Gert Wollny