We basically duplicate the height map branch plugged into the bump node,
and tag each node in each branch as dx/dy/ref using the ssr_id (hack).
Then we add a one pixel offset on the texture coordinates if the node is
tagged as dx or dy.
The dx/dy branches are plugged into (new) hidden sockets on the bump node.
This match cycles bump better but have a performance impact. Also, complex
nodetrees can now become instruction limited and not compile anymore*.
- : This is not a limitation introduced by this patch but a driver limitation that
this patch makes it more likely to bump into.