I struggled many hours recently with subroutines and I didn't manage to make them ok under OS X with a GeForce GPU.
I added a new simple demo that shows a pqtorus rendered three times, each time with a different subroutine (texture, phong, phong+texture).
The demo is available in the code sample pack (http://www.geeks3d.com/glslhacker/cs/):
The latest GLSL Hacker 0.7.2.0 (http://www.geeks3d.com/forums/index.php/topic,3729.0.html) is recommended.
The demo works fine on Windows. On OS X, the demo works fine for Intel and AMD GPUs but not for NVIDIA GPUs. With the GT650M / OSX, the same subroutine is used to shade all meshes and that's the bug. I suspect a bug on OSX with GeForce GPUs because the demo works fine everywhere else. But since it's a NVIDIA related issue, my code can be also guilty...
OK - NVIDIA GeForce GTX 660 - R337.50 - Win7 64-bit
OK - Intel HD 4000 - OS X 10.9
OK - AMD Radeon HD 6870 - OS X 10.9 (Hackintosh)
ERROR - NVIDIA GeForce GT 650M (Macbook Retina Mid-2012) - OS X 10.9
you know there is new MacOS 10.10 ready and even a big jump in Nvidia Web drivers to 343:
can you test if fixes the issues?
will be good to know..
I will try to update the NV driver, but I don't know if the Quadro driver will be ok for the GT650M.
Will try also OSX 10.10 asap...
OS X 10.10 Yosemite + NVIDIA R343.01: not better!
Linux Mint 17 64-bit + R331.104 + GTX 680: works fine!