I don’t know much about Cg but I suspect you may just need to specify a different shader profile. arbvp1 is the very very old original assembly language introduced with GeForce 3 level cards (http://http.developer.nvidia.com/Cg/arbvp1.html) and should be considered hugely deprecated by now.
i tried Multitexturing with CG and Glslang codes…both compiled and ran fine…does that mean i should choose different vertex and fragment shader profiles …what profiles should i choose??
how would i get to know that which profiles are best suppoted on my system ??
Like I said, I don’t know much Cg so you’ll need to take what I say with a very large grain of salt. Going by the info provided at NVIDIA’s page here it appears as though your choices are somewhat limited, and anything beyond arbvp1 depends on vendor-specific NVIDIA extensions, although that information might be out of date and things might be different now.
Somebody who knows the facts more than I do would need to correct me on this.
If I was in your shoes I’d forget about using Cg altogether and just use GLSL instead.
On ATI cards, only these profiles and the GLSL profiles work. The other profiles are NVidia specific. You can try the glsl profiles (CG_PROFILE_GLSLV for vertex shaders and CG_PROFILE_GLSLF for fragment shaders). Then the CG code is compiled to GLSL. If you use them, make sure the vertex and fragment shaders are combined with cgCombinePrograms. Otherwise it will won’t work. A complete example is in the CG toolkit: CGToolkitInstallDir/examples/OpenGL/Advanced/combine_program