Exactly, and this is what properly implemented deferred shading engines do. On the other hand you end up paying the cost of explicit derivatives (i.e.samplegradient()), which usually run at 1/4 throughput (afaik).It's a little more work to really calculate perspective correct differentials for texture coordinates per pixel instead of the difference between pixels, but it's by no means impossible.