Today, if we ask PipelineLibraryGLES for a pipeline variant with anything other than the descriptors shader stages being different, an entirely new program object is linked. However, all the other descriptor fields can be set dynamically. So, it the pipeline library contains an existing program with identical staged, it can be reused immediately. This should make variant construction essentially free in OpenGL ES.