Bind texture and cache the bound texture to reduce calls to opengl.\ Use gl triangle instead of quad.\ Support using multiple textures in shaders by using glActiveTexture for each one and set the uniform sampler2D value for each as as the index.\ Make sure clock is monotonic (there has been some issues with CLOCK\_MONOTONIC not being monotonic on linux).\ Verify if using a separate glx context for every window is the correct approach.