Usually you just look at differentials. Yes, OpenGL has a lot of state, but that doesn't matter here.
Usually you are doing something per pixel or per vertex. Usually that operation can happen in parallel among the available GPU cores.
So if you are doing Phong shading, it will get slower as the window resolution increases, or faster as the core count increases.
Usually only things O(N^2) benefit from GPGPU computing as it brings N cores. Thus on a GPU you aim for
N^2 / N = N and the like.
I am not articulating things clearly, but GPGPU computing tries to bring N cores. Where as in classical Big O notation you had a single core. Let the number of cores be
N^2 / K so with CPU thinking that would still be
N^2. The aim of GPGPUs is to treat that like
N things to do per core.
So then you have to consider what
N is. Is it pixels? Vertexes? Faces? Tip: What shader is it in? is usually the answer.
Then for each Pixel you have too look at what is happening. Say you have
L lights for each
N Pixels. Then you have
Given all that, not everything can be done in parallel, in which case you can't use all