Is Crysis Shader Model 2.0 based?

frameavenger

Newcomer
Hi all


Above the Quantities at map Harbor.cry :

Shaders Model 3.0 (DX9c) : 257

Shaders Model 2.0 (DX9b) : 5559 :oops:

Shaders Model 4.0 (DX10) : Z E R O :oops:



Note: I open the file Level.pak at C:\Program Files\Electronic Arts\Crytek\Crysis\Game\Levels\harbor and I counted the ocurrences.


Is Crysis Shader Model 2.0 based?



Best Regards
 
If your only measure for determining the "shader model base" is the number of shaders then yes. By itself, however, that's not an interesting metric.

Also, SM2 is bound to have more individual shaders as you often have to break apart high level effects to fit under the SM2.0 constraints. And are you lumping together 2.0, 2.0a and 2.0b shaders?
 
So what? It still needs SM3 hardware to run. Honestly, if you have ability to use branching in shaders, it does not mean that you MUST use it all teh time. There are plenty of usefull shaders that doesn't reque SM3 features. It doesn't make a game more "SM2" or "SM3", this is just ridiculous way to think about it.
 
So what? It still needs SM3 hardware to run. Honestly, if you have ability to use branching in shaders, it does not mean that you MUST use it all teh time. There are plenty of usefull shaders that doesn't reque SM3 features. It doesn't make a game more "SM2" or "SM3", this is just ridiculous way to think about it.

Indeed. IIRC, the programming guides for Nvidia's SM3-capable GPU's always recommended compiling to ps_2_0 and ps_2_a whenever possible, and only compiling to ps_3_0 if you actually needed it.
 
I don't recall seeing that kind of recommendation from Nvidia, and I don't see any reason why they would recommend such a thing. If the game requires SM3.0 there's no good reason why they should include any SM2.0 shaders. Compiling to SM3.0 is likely to be faster.
 
Nvidia did recommend it in their older GPU guide. I think it is more relevant to the older generations like GFFX, where they could trade precision for speed with lower shader models. They haven't published a new guide for a long time.
 
And are you lumping together 2.0, 2.0a and 2.0b shaders?
Yes.

I don't recall seeing that kind of recommendation from Nvidia, and I don't see any reason why they would recommend such a thing. If the game requires SM3.0 there's no good reason why they should include any SM2.0 shaders. Compiling to SM3.0 is likely to be faster.

Is Unreal Engine3.0 SM3.0 pure engine?

Nvidia did recommend it in their older GPU guide. I think it is more relevant to the older generations like GFFX, where they could trade precision for speed with lower shader models. They haven't published a new guide for a long time.


Ok, but, Crysis, is a "high-tech" game developed to old cards with the worst performance of the world !!! Thanks to Nvidia.

omg, non-sense, where SM3.0 e SM4 own the present and the future, I don't see a good reason for Crytek stay on the past... :oops:
 
Ok, but, Crysis, is a "high-tech" game developed to old cards with the worst performance of the world !!! Thanks to Nvidia.

omg, non-sense, where SM3.0 e SM4 own the present and the future, I don't see a good reason for Crytek stay on the past... :oops:

Are you sure you are not a troll?
 
omg, non-sense, where SM3.0 e SM4 own the present and the future, I don't see a good reason for Crytek stay on the past... :oops:

I don't think you understand... Let's change the subject for just a moment:

You know about steel, right? I'm talking about steel metal -- cold, strong, heavy. Steel is modern, much more so than crappy old wood and brick.

So why do people make modern houses out of wood and brick? Steel is FAR stronger, doesn't get eaten by termites, and won't rust (if you get stainless).

The reality is, you don't need steel for a generic house.

Just like, the reality being you don't need SM3 or SM4 to do a whole slew of shaders. If you need a rusty pipe surface shader, you likely don't need 65,500 instructions and 16 texture lookups to make it work -- it will be fine in SM2.

So why make things more complicated and/or expensive than they need to be? If SM2 fits what you need, then use SM2. When you take a shader assembly program and compile it, if it can be fit into a lower-spec shader model, then it will be.

And just because the game is made of several thousand SM2 shaders doesn't mean it still can't cripple a shader powerhouse like a G92 or R6x0
 
I don't think you understand... Let's change the subject for just a moment:

You know about steel, right? I'm talking about steel metal -- cold, strong, heavy. Steel is modern, much more so than crappy old wood and brick.

So why do people make modern houses out of wood and brick? Steel is FAR stronger, doesn't get eaten by termites, and won't rust (if you get stainless).

The reality is, you don't need steel for a generic house.

Just like, the reality being you don't need SM3 or SM4 to do a whole slew of shaders. If you need a rusty pipe surface shader, you likely don't need 65,500 instructions and 16 texture lookups to make it work -- it will be fine in SM2.

So why make things more complicated and/or expensive than they need to be? If SM2 fits what you need, then use SM2. When you take a shader assembly program and compile it, if it can be fit into a lower-spec shader model, then it will be.

And just because the game is made of several thousand SM2 shaders doesn't mean it still can't cripple a shader powerhouse like a G92 or R6x0

Good Post.

Ok, I understand, but features how Geometry Shaders, long shaders, Instancing DX10 Cloning factory ,Texture Arrays can speed up the game , and Crytek lost the chance to implement it. This is the point here, for me.:oops:

Best regards
 
Lost the chance? Do you realise how long the game was in development? They were working on it before the 8800 series even came out.
 
Is Unreal Engine3.0 SM3.0 pure engine?

I believe UE3 has some backward compatibility mode for SM2 cards.

If SM2 fits what you need, then use SM2.

Not if you have a SM3 requirement for the game, then it makes no sense whatsoever to compile to SM2.

When you take a shader assembly program and compile it, if it can be fit into a lower-spec shader model, then it will be.

The shader will be compiled to the profile you specify. Just because it can be compiled to SM2 doesn't make HLSL generate a SM2 shader.
 
Not if you have a SM3 requirement for the game, then it makes no sense whatsoever to compile to SM2.
I'm not talking about artificial requirements; I'm talking about straight best programming practices. If your shader is entirely capable of working at full speed without loss of quality in an SM2 profile, why would you "up-compile" it? Other than of course to be a complete douche-bag and stamp it with a "requires SM3" sticker :devilish:

The shader will be compiled to the profile you specify. Just because it can be compiled to SM2 doesn't make HLSL generate a SM2 shader.
Yeah, that was a stupid remark -- my bad. Was thinking of something else entirely unrelated to graphics programming :oops:
 
If you compile a SM 2 shader with a SM 3 profile the compiler can optimize a few things more, but it probably won't make a difference on a SM 3 GPU because the driver shader compiler will likely do the same thing with the shader compiled with a SM 2 profile.
 
I see NVIDIA's dirty rich hands on all this mess.

I don't see why anyone would think NVIDIA has anything to do with the number of SM2 vs SM3 compiled shaders. Unless you're somehow harkening back to the NV30 days, in which case, get real and leave the fanboi-isms aside.

You use SM2 where it's needed, and you use SM3 where it's needed. If you hardware can't do SM3, then hopefully the developer wrote an SM2 fallback for you -- in this case, I'd wager they did exactly that.
 
I don't see why anyone would think NVIDIA has anything to do with the number of SM2 vs SM3 compiled shaders. Unless you're somehow harkening back to the NV30 days, in which case, get real and leave the fanboi-isms aside.

You use SM2 where it's needed, and you use SM3 where it's needed. If you hardware can't do SM3, then hopefully the developer wrote an SM2 fallback for you -- in this case, I'd wager they did exactly that.

Because Crysis is extremely heavy on the GPU, even without any SM4 effects and it has a DX10 renderer that doesn't use any of its features.
I'm not talking about textures (even my GeForce 6200 can handle them at their max res). Right now I can play only in Sketch Mode (lower than Low), beside I can set Textures, Physics and Sound to Very High. If it was for me, I would prevent any contact between software house and hardware developer ($$$).
 
Back
Top