What was that about Cg *Not* favoring Nvidia Hardware?

Chalnoth said:
Yes, I agree that it wouldn't be a great move on nVidia's part, but I still don't see a reason as to why PS 1.4 must be supported.
Where are you getting this ideas from? ATI?
GeForce FX will run ps_1_4 shaders much better then Radeon 8500 runs ps_1_1 or ps_1_3 shaders! Developers simply have to support ps_1_4 for Radeon 8500 since some ps_1_3 shaders will even crash Radeon. I'm not saying that ps_1_4 isn't good, just that you'll get redirected to ps_1_4 by ATI as soon as you find a bug in their drivers.
Translation of "missing" instructions from ps_1_4 to ps_2_0 is very simple (and as far as I know the only "missing" instruction is bem which gets compiled into 2 dp2add instructions in ps_2_0 (and bem burns you 2 instruction slots in ps_1_4 anyway) and phase is not really an instruction but a signal to a driver to avoid the limitations that are not present in ps_2_0 anyway).
 
The instructions that exist only in PS 1.4:

phase
bem
texcrd
texdepth

Yes, of course phase won't matter, since PS 2.0 hardware has far more instructions available anyway. As for texcrd, I'm curious as to what differences there are between the texture registers in PS 1.4 and all other PS versions. It looks like they're just more limited, which shouldn't pose much problem.

Of what use is texdepth?

Anyway, I'm just wondering if the GeForce FX could be faster with PS 1.4 than it is in PS 1.3. And in any case, it probably wouldn't be the best idea to expect PS 1.4 support to act properly if supported. I suppose we'll find out if we start seeing problems that don't exist in the GeForce3/4 cards in current games.
 
Chalnoth said:
Yes, of course phase won't matter, since PS 2.0 hardware has far more instructions available anyway.
Instruction count doesn't really count here. It's the fact that you can freely mix texture load and arithmetic instructions in ps_2_0.

Chalnoth said:
As for texcrd, I'm curious as to what differences there are between the texture registers in PS 1.4 and all other PS versions. It looks like they're just more limited, which shouldn't pose much problem.
Texture registers in ps_1_0 to ps_1_3 also indicate which texture to use (so t0 always means first texture sampler). In ps_1_4 texture registers are only texture coordinates and texture sampler is indicated by the number of temporary register (so texld r5, t0 will load texel from sixth texture sampler). You don't need texcrd or texcoord in ps_2_0 any more since you can freely read from it.

Chalnoth said:
Of what use is texdepth?
To compute your own depth in pixel shader (also not needed any more since you can freely write your depth in ps_2_0).

Chalnoth said:
Anyway, I'm just wondering if the GeForce FX could be faster with PS 1.4 than it is in PS 1.3. And in any case, it probably wouldn't be the best idea to expect PS 1.4 support to act properly if supported. I suppose we'll find out if we start seeing problems that don't exist in the GeForce3/4 cards in current games.
It will only be faster in ps_1_4 when you'll use such kind of shader that you'll have to multipass in ps_1_3, but that's the case on every other hardware...
 
Texdepth is for writing the depth of the pixel in the pixel shader. ATI's Depth Sprite demo is a prime example of the usage. Maybe not prime, but good anyways :)

Of course, using texdepth, on a bad side, does not allow the hardware to use its' early occlusion testing stuff like Hyper Z since it can't be discarded since the depth will be written so late in the rendering cycle.
 
MDolenc said:
Instruction count doesn't really count here. It's the fact that you can freely mix texture load and arithmetic instructions in ps_2_0.

That's the difference between the two phases? Damn, DX docs absolutely suck.

Texture registers in ps_1_0 to ps_1_3 also indicate which texture to use (so t0 always means first texture sampler). In ps_1_4 texture registers are only texture coordinates and texture sampler is indicated by the number of temporary register (so texld r5, t0 will load texel from sixth texture sampler). You don't need texcrd or texcoord in ps_2_0 any more since you can freely read from it.

Well, it's not about whether you need them or not...it's about how well they can be emulated. At a glance, it does seem like emulation will be straightforward, but as I said before, the DX docs absolutely suck.

It will only be faster in ps_1_4 when you'll use such kind of shader that you'll have to multipass in ps_1_3, but that's the case on every other hardware...

Yes, you would think so. The way I see it, it depends on how much data is recalculated between the two passes, as well as where the bottleneck is in the calculation. It also depends on the differences between the PS 1.3 and 1.4 versions. Regardless, it would be interesting, but given the fact that the Radeon 8500 generally doesn't outperform the GeForce4 when the GeForce4 has to do more passes, I'm not sure that PS 1.4 is going to be better on the GeForce FX.
 
*sigh* nothing changes...

DaveBaumann: here comes one vote for a "boxing corner" forum. (name says it all what's it for.)

My Opinion??
Development tool made by hardware vendor is most likely biased. why wouldn't be? But what's the damn point to prove it whenever it's possible? heck, it should be self evident that if nVidia does HLSL, they make it as best fit for developing software for their hardware. they aren't some damn charity community making things for free. and I doubt that ATI would be any exception if Cg would be coming from their dev rel.

I send happy holiday and better new year greetings to everyone who agrees with me. I has to say that this thread gets me angry; I have been on my vacation about 2 weeks and when I come back, what I found? A Quickly developed "dirty" thread argueing if some vendors developed tool is biased. for a god sake, look yourselves. you are like bunch of kids on sandbox arguing whose got finest truck and throwing sand on the others eyes.

no more further questions your honor. I leave this to the jury.
 
Chalnoth said:
That's the difference between the two phases? Damn, DX docs absolutely suck.
Yup that's the difference. In pixel shaders up to 1.3 you have some more complex fixed instructions for texture addressing (texm* and others) and all those instructions must be before any arithmetic instructions. In ps_1_4 you only have simple texld, so you have to use your arithmetic instructions to modify texture coordinates to achive some nice effects. And since you still can't mix texture and arithmetic instructions freely phase came up. So the first phase is intended to be used for texture coordinate modifications (to replace all those tex* instructions in previous versions) and second phase which is just like other ps_1_x shaders without complex texture addressing instructions.
And since in ps_2_0 you can mix texld instructions and arithmetic instructions as you like, you don't need phase anymore.

Chalnoth said:
Well, it's not about whether you need them or not...it's about how well they can be emulated. At a glance, it does seem like emulation will be straightforward, but as I said before, the DX docs absolutely suck.
You don't need to emulate them at all! You can use ps_2_0 texture COORDINATE registers as your hard desires. You could only access these texture regosters in ps_1_x (including ps_1_4) only with texture addressing instructions, but not arithmetic instructions. So if you wanted to use texture coordinate in your math you had to write them with texcoord (ps_1_1) or texcrd (ps_1_4) into temporary register. These "texture coordinates" have much broader use now and that's why they got unified with "color registers" in ps_3_0.

Chalnoth said:
Yes, you would think so. The way I see it, it depends on how much data is recalculated between the two passes, as well as where the bottleneck is in the calculation. It also depends on the differences between the PS 1.3 and 1.4 versions. Regardless, it would be interesting, but given the fact that the Radeon 8500 generally doesn't outperform the GeForce4 when the GeForce4 has to do more passes, I'm not sure that PS 1.4 is going to be better on the GeForce FX.
It depends what are you trying to show. If GeForce 4 is faster with two ps_1_3 passes then Radeon 8500 with ps_1_4 then you have bumped into memory system limitations (of Radeon 8500). You can't tell that ps_1_4 is "slow" in this case and you can't tell how much better GeForce FX will be since it depends only on how well will it handle a bandwidth limited situation.
 
Chalnoth said:
Anyway, I'm just wondering if the GeForce FX could be faster with PS 1.4 than it is in PS 1.3. And in any case, it probably wouldn't be the best idea to expect PS 1.4 support to act properly if supported.

If a game uses 1.4, it'll be because it's faster (saves passes), or for enhanced quality. This will be true whether you run it on NV30, R300, or REF!

I have no idea why you have so many problems coming to terms with 1.4 support on the GF-FX. It will act properly, for NVIDIA's sake. There are games out now that use ps1.4, such as ut2003, splinter cell, etc. There will be more early next year. On DX8.1 the GF-FX will expose ps1.4 as the maximum shader version, and these games will use it. So if it doesn't work, nor will the games.
 
Re: This is too funny coming from him!

Reverend said:
Hellbinder[CE said:
]I am Totally SICK of the Term Fanboi getting Thrown around Like you guys actually understand the meaning.. As if it actually has meaning anymore... Its just another meaningless term now tossed into an argument every time someone wants to make themselves feel superior to people with a Differing Opinion.. :rolleyes:

ROTFLMAO !!

Agreed ;)
 
Everyone who has posted in this thread is an Ati or Nvidia "fanboi".
Am I the only person who loves my S3 Virge DX? (it's at the Sunshine tip now)
:LOL: ;)
 
Just to stir the pot, I'll post a completely benign link about the availability of the Cg plugin for Maya being available. (stolen, of course, from HardOCP)

http://www.pc4d.com/games/53/nvidia_alias_wavefront_cg_plug_in_integrates_shaders_into_ma.shtml

Particularly interesting to me was the bit about developing DirectX content using OpenGL tools and how the ability to cross compile enhances this.
I hadn't really considered that particular scenario in the column of 'benefits', but now that I see it spelled out it certainly does make sense, particularly for XBox developers.

No mention as to whether the plugin will work with the Maya 4.5 learning edition. (My guess is no.)
 
790 said:
If a game uses 1.4, it'll be because it's faster (saves passes), or for enhanced quality. This will be true whether you run it on NV30, R300, or REF!

Actually, I just heard recently (I forget whether it was on this thread or another...don't feel like looking) something which I entirely believe, that the Radeon 8500 tends to be buggy when it comes to PS support below 1.4. This means that many developers went the PS 1.4 route because ATI wouldn't support the PS 1.3 and lower route, not because it's faster.

And if in the multipass technique, no data is "redone," that particular shader is not memory bandwidth-limited, and enough triangles are drawn between passes, then I see no reason why a PS 1.3 shader need be slower than a PS 1.4 shader. That, and it still just makes sense that the GeForce FX would be better-optimized for PS 1.3 and below (since nVidia has experience with those shaders).

I have no idea why you have so many problems coming to terms with 1.4 support on the GF-FX.

I just haven't yet seen anything conclusive.

It will act properly, for NVIDIA's sake. There are games out now that use ps1.4, such as ut2003, splinter cell, etc. There will be more early next year. On DX8.1 the GF-FX will expose ps1.4 as the maximum shader version, and these games will use it. So if it doesn't work, nor will the games.

I think you just highlighted another possibility. That is, might the devcaps report differently whether a DX9 or DX8 surface is called? That is, for DX8 games, it might just report PS 1.3 for compatibility reasons. Who in their right might would use DX9 and PS 1.4, but not PS 2.0?
 
Who in their right might would use DX9 and PS 1.4, but not PS 2.0?

When the installed user base/market penetration of value based PS 2.0/Dx9 cards exceeds the DX 8 and 8.1 PS 1.1 to 1.4 cards then the developer could choose PS 2.0.

I don't see that happening overnight..in fact still waiting for DX 8 to be the target API vs DX7...so essentially I see PS 1.1-1.4 used alot in coming titles.
I think past history tells us when DX9 PS 2.0 will become a reality..somtime next Year 2004.
 
Doomtrooper said:
Who in their right might would use DX9 and PS 1.4, but not PS 2.0?

When the installed user base/market penetration of value based PS 2.0/Dx9 cards exceeds the DX 8 and 8.1 PS 1.1 to 1.4 cards then the developer could choose PS 2.0.

Any developer who is going to go no further than PS 1.4 is doing so because the engine was started with DX8 (or lower), and has yet to be upgraded to DX9. I don't see how this invalidates the above statement in the least.

And while we know that DX9 will not be fully-used for a couple of years, it should be obvious that it will come into some use very soon (DOOM3 is one...and probably Unreal 2 as well).
 
Give your head a shake Chalnoth, do you think a developer is going to limit his game to PS 2.0 and a very small installed base...even if a game started development today it would be in their best interest to code for PS 1.4 or 1.3 and have a option for 2.0.
 
Doom / Chalnoth / et al.

The reality for DX9 is this:

1 - Developers will be compiling their software, for late summer / xmas 2003 shipping titles.
2 - Developers for the most part will NOT have PS 2.0 shaders. The reason why is that developers really do not know what to do that fully uses PS 1.4, so even more hard for them to even imagine what to do with 2.0. This makes sense because of the huge install base of ATI DX8.1 parts AND the growing install base of DX9 parts.
3 - In saying the above, there WILL be cases where the developer will write a 2.0 Shader that does the exact same as the PS 1.4 version but I really do not see that. Now, if they can go beyond PS 1.4 functionality, then of course they will do PS 2.0.
4 - All the above statements are made with the assumption of developers limited Shader Knowledge AND their increasingly shorter development cycles. The grim reality of the current state of the industry. This will improve, as far as knowledge wise, but not this year.
5 - If ATI and NVIDIA help write 2.0 Shaders, then we will see more REAL DX9 titles this upcoming year, and I really believe that will happen. it has to.

Anyways, just my two cents worth.
 
Back
Top