Clarification about Pixel Shader versions

SvP

Newcomer
Thank you, "DaveBaumann", for linking those GameDev articles! There is a statement:

All of the upcoming graphics hardware that will support ps.2.0, will support ps.1.4 for backward compatibility.

So all of you who browse around and make statements like "PS 2.0 compatible hardware has to support 1.1. to 1.4" in every board you have registered, therefore confusing common people like me - stop it right there and right now! 8)

But you are right of course, because "lesser" shaders can be emulated and probably will be, but thankfully it will not be strict requrement.
 
If you want to support PS1.4 in DX8.1, you'll need to support PS1.0 ~ PS1.3. That's a requirement of DX8.1.
 
As all Sis and Nvidia and Matrox cards support 1.3, it seems that the industry in general skips the 8.1
 
No, PS1.3 is described in DX8.1, not DX8.0. So they don't skip DX8.1
Simply said, if you want to support PS 1.x, you need to support all PS 1.y where y < x. That's the requirement. For example, every hardware supporting PS1.1 also support PS1.0. This happens even in DX8.0.
 
"PS2.0 compatible hardware has no direct HW-Support for PS1.1-1.3"

I think, this is the correct way of saying it, as even PS1.4-HW has to emulate PS1.1-1.3. IMHO this necessary emulation, which is done internally AFAIK, has led to the false statement, that PS2.0-HW does not support PS1.1-1.3......
 
SvP said:
All of the upcoming graphics hardware that will support ps.2.0, will support ps.1.4 for backward compatibility.

Hmm, was that in doubt at any time?
 
I dont think I agree with the consensus that PS 1.x-1.4 will be emulated by the hardware if the hardware is capable of PS 2.0 for the reason that emulation in software is incredibly slow (CPU taking the load instead) and therefore not practical. Would this condition not apply in hardware emulation too. Now vertex instructions can be emulated too but the performance means it is definitely feasible.

Again I am probably totally wrong.

Any comments anyone?
 
Hmm, was that in doubt at any time?

To me-yes, because I have read couple of posts where was stated that versions froom 1.1 to 1.4 are required. I thought that this was weird, but didn't read nothing contrary until now.

misae, pixel shaders can't be emulated by CPU. They have to be emulated by GPU. And they will be because of variety of cards that support up to 1.3 only.
 
Question is can/would you emulate lower or is it fully supported in hardware?

You definitely cannot emulate higher via the hardware (GPU). he CPU can emulate PS as they are general purpose number crunchers but would be incredibly slow and therefore not practical in 99.999% of situations.

So originally thinking it was clear cut I am not so sure anymore now anymore either.
 
SvP said:
All of the upcoming graphics hardware that will support ps.2.0, will support ps.1.4 for backward compatibility.
Please tell me how the statement above leads you to the conclusion that it is not a requirement to support "lesser" shaders?

Hardware that supports PS2.0 has to support all PS versions up to 2.0.
 
can/would you emulate lower or is it fully supported in hardware?

Again copy-paste from the article: RADEON 8x00 performs ps.1.4 faster than ps.1.1 - ps.1.3, because the latter is emulated.

Please tell me how the statement above leads you to the conclusion that it is not a requirement to support "lesser" shaders?

Because there is written that "hardware that will support ps.2.0, will support ps.1.4 for backward compatibility", not "... ps1.1~1.4 for..." When previous "step" is required for backward compatibility, it makes sence. When 4 "steps" are required, it is a little waste. If for some reason there will be hundreds of games that make use of 1.1 or 1.2, of course these will be supported by newer cards, but this would be because of customers, not Microsoft.

Hardware that supports PS2.0 has to support all PS versions up to 2.0.

OK, I made a statement and provided a link. I can read your statement, but where did it came from? "show me yours and I'll sow you mine" ;)
 
misae said:
Hi SvP

Where is the link with that quoted statement?

Who is the source?

Thanks

:-?

look at the main page of http://www.beyond3d.com/ Some good man behind the alias "DaveBaumann" made news post about some articles. There are 4 of them, but the one with title "Fundamentals of Pixel Shaders" is to blame. :-?

So - the link is on the main page. The source is http://www.gamedev.net/columns/hardcore/dxshader3/, the author is Wolfgang Engel and at the end of this article is the following:

I'd like to recognize a couple of individuals that were involved in proof-reading and improving this paper (in alphabetical order):
Jason L. Mitchell (ATI)
Ã￾dám Moravánszky (Swiss Federal Institute of Technology)
Matthias Wloka (NVIDIA)
 
SvP said:
OK, I made a statement and provided a link. I can read your statement, but where did it came from? "show me yours and I'll sow you mine" ;)
DirectX just gives you one number, the highest PS version supported. The driver has to support all versions up to this. This is also true for DX9, confirmed by a beta tester here (if you can read german).

RADEON 8x00 performs ps.1.4 faster than ps.1.1 - ps.1.3, because the latter is emulated.
If you write two shader programs which do exactly the same, one ps1.1 and one ps1.4, they will end up performing identically because they are the same after compilation (if the drivers aren't totally screwed)
 
Guys, it's simple.

PS 1.0 to 1.3 are easy to provide backwards compatability for, since they differ by only a few instructions.

PS 1.4 shaders are way different than 1.0 thru 1.3 shaders, but PS 1.4 shaders were designed so you could emulate every 1.3 (and earlier) shader by rewriting it as a series of 1.4 instructions.

A PS 1.3 shader re-written as a 1.4 shader isn't nescessarily as fast as the equivalent 1.4 shader, because it's possible that the 1.3 shader has semantics that aren't used by the game's data, but are difficult to emulate in the 1.4 instruction set. (I'm thinking of the more complicated PS 1.3 texture modes here.)

But we're only talking about a 10% speed difference, and that's only noticable when the pixel shader is the bottleneck, which isn't always the case anyway.

The same argument applies for PS 1.x thru PS 2.0.

But practically speaking, very few games will use anything more than PS1.1 right now, and I think pretty much every game developer is going to stick with PS1.1 for the next two years (because of Geforce3s, and also because of Xbox.)

After two years from now developers will switch to PS 2.0, skipping support for 1.2 thru 1.4 alltogether.

PS1.4 owner's only hope is Carmack, who will probably do a good job of supporting everything that's exposed in OpenGL on any card, since that's the kind of perfectionist he is.
 
"There are mainly four flavours of pixel shaders, the ps.1.1 - ps.1.3 standards are from a syntactical point of view a more CISC-like approach, whereas the ps.1.4 standard uses a RISC-like approach, that will be used in the upcoming ps.2.0"
 
Rancidm said:
"There are mainly four flavours of pixel shaders, the ps.1.1 - ps.1.3 standards are from a syntactical point of view a more CISC-like approach, whereas the ps.1.4 standard uses a RISC-like approach, that will be used in the upcoming ps.2.0"

Actually (unlike ps1.4) ps2.0 will have both syntax...
 
Back
Top