I have SM4 but getting limited to 128 vert instructions?

I am using Unity 2.6 and I have a graphics card with SM4 but I am getting limited to 128 vert instructions. Isn’t that the amount for SM1? Am I supposed to set something to make my shader use 2.0 and up or something?

I have a license for Unity 3.0 but we aren’t publishing this particular game using Unity 3.0 so I am limited to SM2.

Unity does not support SM4, only SM3 and to use SM3, you need to add the shader model 3.0 pragma to the shader, otherwise its SM2 only

I just saw that Unity 2 only uses vertex shader model 1.1 and pixel shader model 2.0.

its by default always SM2, thats the minimum it will target (PS 2.0, VS 1.1)
You can tell it to go to SM3 instead by using the sm3 pragma.

All this is unrelated to U2 vs U3, as the restriction applies to both ends that you need to specify the pragma for SM3

#pragma target 3.0

In your shader will allow you to target SM3

I put in #pragma target 3.0 and got back this error message:

Which can’t be true since it is at SM4. Did I put use the #pragma target 3.0 wrong somehow?

do you own unity pro?
otherwise the same error also appears for example if you used a feature thats pro only (render texture - grabpass for example)

I’ve gotten that ambiguous error before too, and it is something simple that I can’t remember right now…

There are probably some compiler errors to go with that - I believe that warning will print if none of your subshaders are usable, be it because of too advanced for your graphics card or because of compiler errors. In Unity3 at least, the shader should work if you change your appdata struct to look like this:

struct appdata
{
    float4 vertex : POSITION;
    float4 texcoord : TEXCOORD0;
};