First step to remove state setting in CShaderPass.
We want to move GL state tracking to the DeviceCommandContext to prevent redundant changes (like they were inside CShaderPass).
We might implement these checks at a higher level when we have render nodes and proper dependencies as well. It'd be at the similar design and same performance cost. Anyway the GL code will be inside only GL backend.
The C++ code shouldn't make a custom pipeline state without a strong reason. So we don't provide helpers for a simpler creation of it.