CryTek CEO comments on Shader 3.0

Thanks Pelly. Its nice to hear the developer ring in on these...and ensure that we are not crazy in thinking while PS3.0 is good thing, it may not be the be all end all thing just yet :)
 
6) For the screenshot examples shown at the launch event, why was PS 1.1 used to contrast PS 3.0? Why wasn’t a PS 2.0 screenshot compared to PS 3.0 instead?

On the event PS1.1 was compared with PS2.0/PS3.0. We don’t use PS3.0 everywhere. The general rule is to use as lower shader version as possible. So PS3.0 could be used only in several critical places where it gives performance boost.

7) What aspects of the screenshots seen at the launch event are specific examples of the flexibility and power of Shader 3.0?

In current engine there are no visible difference between PS2.0 and PS3.0. PS3.0 is used automatically for per-pixel lighting depending on some conditions to improve speed of rendering.

8) Is the same level of image quality seen when using Shader 3.0 possible using Shader 2.0? If so, what dictates which Shader you decide to use?

In current generation engine quality of PS3.0 is almost the same as PS2.0. PS3.0 is used for performance optimisation purposes.
 
That was among the most informative, objective pieces I've read yet on the subject, thanks.

I liked his "stay tuned" answer to the question of whether or not their engine will actually support ps3.0 in the future, since that obviously depends on a number of things, not the least of which is when the number of ps3.0-supporting gpus in circulation reaches a mass critical enough for them to think support of it is something they want to invest any time in (since there are at the moment no ps3.0-capable gpus in circulation for them to support in such a fashion), and since while there are millions of R3x0 gpus in circulation which do a good job with ps2.0 but no nVidia gpus in circulation that are competent above ps1.x, they've tried to constrain most of of what they currently do with shaders to the lowest common denominator--ps1.x. For those reasons I can see them elevating their baseline for ps support to 2.x long before they go to 3.0, especially considering the fact that ps3.0 offers few if any of the IQ improvements so easy to see between 1.x and 2.x.
 
WaltC said:
I liked his "stay tuned" answer to the question of whether or not their engine will actually support ps3.0 in the future

The "stay tuned" part could of course have been the answer to the last question:

4) Will we see an update for FarCry which enables Shader 3.0? If so, will this be for the entire game or for specific new maps? If a patch enabling Shader 3.0 in FarCry is pending, when can we expect to see it available?

Stay tuned.

And why would it be good if they didn't support PS3.0 in the engine (just for Far Cry) ?
 
@waltc
how much time do you think they would have to spend on this?

3.0 shader model is just extension to 2.0 shader model. It means it’s possible to compile PS2.0 shader as PS3.0 shader target and it still remains 2.0 compliant shader from the hardware side.
 
Bjorn said:
And why would it be good if they didn't support PS3.0 in the engine (just for Far Cry) ?

I've already addressed why it "wouldn't be good" from their perspective as developers to support ps3.0 anytime soon--no ps3.0 cards in circulation, etc. What I meant by "good" was that "stay tuned" was in my estimation an honest answer, and meant that the question of whether they'd support ps3.0 in their engine was not yet decided (again, for the obvious reasons.)

I think that from their perspectives as developers of an engine which is currently being sold to customers without any ps3.0-supporting gpus, they might see that supporting ps2.x would be "more good" or "better" in the near future for them than restricting their engine support to ps3.0, especially considering there are no IQ differences to be had in the difference--unlike the IQ differences readily perceivable between 1.x and 2.x. In other words, I expect that they'll decide to make ps2.x the new shader baseline *if they elect to change it* from their engine's current baseline of 1.x, which they adopted because it was universally supported in both R3x0 and nV3x. Since ps2.x is well supported in R3x0 and R4x0 and nV4x, I'd expect that they'd want to remain consistent there just as they have done with their current 1.x support in their engine.

In other words, they seem to realize that it isn't automatically a better deal for them to take the time to incorporate nV4x-specific ps3.0 support, when they can simply do generic API ps2.x support instead, retain the same IQ, and cover far more bases in their target markets. And, it may be that they consider that even better than that would be to cover all the bases and stay with 1.x as the baseline shader support in their engine. "Stay tuned" is a "good" answer to me because it is an honest one. I can't see how the question of supporting ps3.0, as it is implemented in nV4x, is anything remotely approaching a "slam-dunk" for any developer at present. Firstly, it will depend on the efficacy of the nV4x ps3.0 implementation. Secondly, it will depend on market penetration of nV4x as to whether or not the support is worthwhile, even should the implementation be fine. So, I think any other answer apart from "stay tuned" from a developer--at this time--is entirely premature and based on an assumption of facts not yet in evidence.
 
WaltC said:
I think that from their perspectives as developers of an engine which is currently being sold to customers without any ps3.0-supporting gpus, they might see that supporting ps2.x would be "more good" or "better" in the near future for them than restricting their engine support to ps3.0, especially considering there are no IQ differences to be had in the difference

I don't see why they would restrict their engine to PS3.0 just by adding support for it. And there are differences to be had according to them. It's just the the current engine won't show it.
 
christoph said:
@waltc
how much time do you think they would have to spend on this?

3.0 shader model is just extension to 2.0 shader model. It means it’s possible to compile PS2.0 shader as PS3.0 shader target and it still remains 2.0 compliant shader from the hardware side.

None at all, really...;) But then that begs the question of doing it in the first place, I think.

I think there are cases when obviously it wouldn't be possible to compile to both targets simultaneously, if you wanted to do something native to 3.0 but which was not directly or conveniently supported in 2.0, and this would be what I'm talking about. At that point the developer has to ask himself, "OK, do I *need* to use this extra-2.x capability in the first place, and if I do use it what will be the result and will it be something I'll want to do in the first place?" and that sort of thing. I mean, running ps2.x-specific code under ps3.0 is really just...running ps2.x, isn't it?

I think what he was referring to is that there's nothing in nV4x's ps3.0 implementation that would prevent it from running ps2.x targeted code, and that from an IQ perspective, there'd be no difference. Sounds like a valid rationale to stick with a ps2.x target, to me, especially at this stage of the game.
 
Bjorn said:
I don't see why they would restrict their engine to PS3.0 just by adding support for it. And there are differences to be had according to them. It's just the the current engine won't show it.

What they said was, "stay tuned," which is not a "Yes, we will" or a "No we won't" be supporting ps3.0 in our game engine--it's a "maybe" which is obviously dependent on whatever variables Crytech is considering. It wouldn't surprise me to see that some of those considerations are some that I've mentioned.
 
WaltC said:
I mean, running ps2.x-specific code under ps3.0 is really just...running ps2.x, isn't it?

IMO, not necessarily. If you can take advantage of PS3.0 features by recompiling a PS2.0 shader then you are using PS3.0 aren't you ?
 
WaltC said:
What they said was, "stay tuned," which is not a "Yes, we will" or a "No we won't" be supporting ps3.0 in our game engine--it's a "maybe" which is obviously dependent on whatever variables Crytech is considering. It wouldn't surprise me to see that some of those considerations are some that I've mentioned.

It would surprise me if the stay tuned part had anything to do with the PS3.0 support or not.
 
Bjorn said:
IMO, not necessarily. If you can take advantage of PS3.0 features by recompiling a PS2.0 shader then you are using PS3.0 aren't you ?

Back to my fairly basic premise: what good is that when you are targeting ps2.x-specific hardware--as there are no ps3.0-capable gpus being used in Crytech's target market for its engine at this time? And, suppose that the recompile resulted in less-efficient, slower code, but code which renders with no IQ benefit over your faster, original ps2.x-specific code?

The point I've been belaboring here is that the situation is not so simple that "3.0" automatically equates to something superior to 2.x in all situations. That has yet to be demonstrated, hence Crytech's cautious "stay tuned" approach. What Crytech must first determine, as must we all, is the efficacy of the nV4x ps3.0 implementation. That is the first hurdle in the process, imo.
 
Bjorn said:
It would surprise me if the stay tuned part had anything to do with the PS3.0 support or not.

Here's what they said:

4) Will we see an update for FarCry which enables Shader 3.0? If so, will this be for the entire game or for specific new maps? If a patch enabling Shader 3.0 in FarCry is pending, when can we expect to see it available?

Stay tuned.

How can you possibly infer that the question and the answer might have nothing whatever to do with whether or not they are considering support of ps3.0 in their engine? Seems cut & dried, to me. Or are you trying to say that he simply ignored the last question, and muttered "stay tuned" on general principle?...;) Again, the questions are specific, and he didn't say "Yes," and he did not say, "No," he said the very non-commital "stay tuned"--which I think can be reasonably inferred as a "maybe" for the reasons I've already listed.
 
WaltC said:
Here's what they said:

4) Will we see an update for FarCry which enables Shader 3.0? If so, will this be for the entire game or for specific new maps? If a patch enabling Shader 3.0 in FarCry is pending, when can we expect to see it available?

Stay tuned.

How can you possibly infer that the question and the answer might have nothing whatever to do with whether or not they are considering support of ps3.0 in their engine? Seems cut & dried, to me. Or are you trying to say that he simply ignored the last question, and muttered "stay tuned" on general principle?...;) Again, the questions are specific, and he didn't say "Yes," and he did not say, "No," he said the very non-commital "stay tuned"--which I think can be reasonably inferred as a "maybe" for the reasons I've already listed.

The entire thing is all about Far Cry and not the CryTech engine (although i would assume that any SM3.0 support in the Far Cry game would carry over to the base engine). And the last question was about availability of the patch (which afaik, Crytech has already said will support both SM2.0 and SM3.0).
 
Bjorn said:
The entire thing is all about Far Cry and not the CryTech engine (although i would assume that any SM3.0 support in the Far Cry game would carry over to the base engine). And the last question was about availability of the patch (which afaik, Crytech has already said will support both SM2.0 and SM3.0).

Yes, that it will support ps2.0-3.0, which to me is entirely different from saying there's anthing there but ps2.x code whatever (since there doesn't have to be for it to run on 3.0 capable hardware.) Code which supports both 2.0 and but runs on 3.0 hardware need not be anything more than 2.x code to begin with. I would also assume the same for the engine, since the engine isn't being used for anything other than Far Cry at the moment.

As to your interpretation of the interview question, it has two parts. The first part, "Will we see an update for FarCry which enables Shader 3.0?" asks nothing about availability of something which is assumed to exist, but is a simple "Yes" or "No" question, isn't it, as to whether that something exists in the first place? I can't conceive of how it might have been more simply written than that. The second part of the question makes it absolutely plain that the person asking the question does not know whether Crytech plans to support 3.0 in the game (or engine) or not, "If a patch enabling Shader 3.0 in FarCry is pending, when can we expect to see it available?" One does not ask "if" something exists unless one is not certain, right? Crytech answered both questions by saying "stay tuned," which is a completely non-committal answer along the lines of "wait and see."

The person asking the questions is not sure that Crytech will support ps3.0-specific code in Far Cry, and so he asks his questions. Crytech itself does not answer but says, instead, "stay tuned," but Bjorn....reads the same text that I read and comes to the opposite conclusions that I do...;) Wishful thinking on your part? Perhaps, we'll see.

The question for me is not, "Will Far Cry support hardware which supports shader 3.0, but will Crytech support nV4x 3.0 shaders with code which will not run equally as well on ATi's ps2.x hardware?" That is where we disagree, I think. I don't see that anything Crytech states in the interview might lead one to such a conclusion.
 
If anyone is interested to put a face to the name, the guy in the interview is at the right :D

0,1020,341251,00.jpg
 
WaltC said:
That is where we disagree, I think. I don't see that anything Crytech states in the interview might lead one to such a conclusion.

That is where we disagree. And i base my opinion on:

In VS3.0 shader model actually is possible to support general displacement mapping (with smart shader design when vertex shader has to do something during waiting for texture access).

· In PS3.0 shaders it’s possible to decrease number of shaders using dynamic branching (single shader for general lighting) and in such way decrease number of shader switches, passes, and as result increase speed, and also we can utilize dynamic conditional early reject for some cases in both PS and VS and this also will increase speed. As to NV40 generally possible to use co-issues better to take advantage of super-scalar architecture (we can execute 4 instructions per cycle in a single pipeline).

· We can handle several light sources in single pixel shaders by using dynamic loops in PS3.0.

· We can decrease number of passes for 2-sided lighting using additional face register in PS3.0.

· We can use geometry instancing to decrease number of draw-calls (remove CPU limitations as much as possible).

· We can use unrestricted dependent texture read capabilities to produce more advanced post-processing effects and other in-game complex particles/surfaces effects (like water).

· We can use full swizzle support in PS3.0 to make better instructions co-issue and as result speedup performance.

· We can take advantage of using 10 texture interpolators in PS3.0 shader model to reduce number of passes in some cases.

And that they are aware that some features must be used with care:

Several new features in 3.0 shader model aren’t for free. Texture access in vertex shader is expensive, dynamic branching is not for free. So if developer has to utilize some features of PS3.0 shader model he/she should design shader in way which will remove other much important bottlenecks of application (CPU limitations, states/shaders changing, make shorter shader execution path, decrease streams bandwidth…).

Doesn't mean that all these things will be used in the Far Cry patch but i think it's likely that at least some will. Definitely some of the speed up things.
 
Back
Top