I just want to post here some future ideas for GLslang. Tell me what do you think about it!
-) Uniform Programs
The idea of these programs is that they are executed when this uniform is passed to the GL. For example the light position of the GL state is multiplied by the current Modelview Matrix. Such operations should be available for all uniforms.
-) Matrix Stacks for generic matrices
Just like the Modelview or Texture matrix stack but for generic matrices used in Shaders.
-) Generic Buffers
To write own values from a Fragment Shader in special floating point buffers. I don't know if that is included in the superbuffer extension...
-) Frame Buffer Access
Used for own stencil, depth, aplha, .. testing and other nice operations. I know that this was originally defined in GLslang but I don't understand why it was deleted.
-) General Pipelined Processors
There are two types of processors now: Vertex Shader and Fragment Shader. If GLslang supports general processors there's no need to define new special processors like triangulation processors (displacement mapping, ...).
My idea is the following: a general processor has sepecific input and output (e.g. for a triangulation processor: input: a surface, output: a couple of triangles). The outputs are then sent to the next general processor and so on. Each processor should work on just one input item and should have the ability to load general data, for example a texture.