title: Is there a performance hit for switching between shaders in OpenGL ES 2.0?
body: <p><strong>#1</strong> Is there a limit on how many/size of shader programs OpenGL ES 2.0 devices (iPhone/iPad) can have compiled and available at one time?</p>
  
  <p><strong>#2</strong> Is there any performance overhead for switching between programs in the middle of a pass, for instance if I were to render 100 triangles, 50 with shader1, 50 with shader2, will I experience performance hits in any cases of using this?  For instance can it be slower alternating programs each triangle or should it be faster to batch up and do all 50 of shader1 then all 50 of shader2?  I guess I'm asking if there is some internal context switch or if the OpenGL ES libraries just specify what address of shader program memory on the card to execute and it doesn't matter if I specify that differently each triangle.</p>