Intresting...

Wow chalnoth.. Looks like the Nv30 is a damn waste of a chip now to eh?? Totally holding back the industry??? Oh thats right.. Everything has changed now right?? no flow control is a *brilliant* idea that ATI must have *borrowed* from Nvidia... I can hear it now.. ;)


please.... :rolleyes:
 
andypski said:
My understanding was that research at Stanford had shown that _any_ Renderman shader could be correctly expressed as a multi-pass implementation on pixel shading hardware, with the provision that there had to be a floating-point intermediate color representation for passing information between the passes of the shader. I believe John Carmack mentioned this research in one of his .plan updates a while ago.

So looking at your question here it would appear that, yes, R300 can express any Renderman shader used in any movie...

Maybe it is an advance after all... ;)

- Andy.

Well, obviously the R300 is a signicant step above current DX8 hardware. Depending on what the NV30 offers, however, I'm just not sure it's all that ATI could have done.

This is basically what I wanted to see with DX9 hardware:

All future programs would simply write one HLSL program to work on all hardware (Granted, it makes sense for games to have different versions for different performance levels...but programming for the underlying hardware should be gone...).

This is just plain impossible without flow control and unlimited program sizes, at least for games.

As far as using auto-multipass, I have argued that I would like to see it done, but I am beginning to doubt its feasability.

And to pretend that PS flow control and unlimited program sizes aren't needed in the future is silly.

I guess I was just a bit too hopeful that they'd be available in the R300. We'll see if the NV30 can deliver. I hope the NV30 isn't just a slight step up in technology (which is fairly likely, unfortunately...), similar to GeForce3 vs. Radeon 8500 (While the 8500 left out some things, its programmable pipelines were certainly more flexible...but not by a huge amount).
 
Well, obviously the R300 is a signicant step above current DX8 hardware. Depending on what the NV30 offers, however, I'm just not sure it's all that ATI could have done.

What kind of argument is that?

Let's forget for the moment that the R-300 seems pretty much aaccepted as the single biggest leap between it and the "previous" top of the line board since the Voodoo1 vs. Voodoo2 SLI step. That this chip has generally exceeded most expectations. I mean certainly, ATI should have done "more"....it's not enough that it has more than doubled the nearest competitor's performance...PLUS added support for the next gen API all in one shot...

That aside, the reason why your argument makes no sense, is because ATI is delivering NOW. Using your logic, I can make the argument that Nvidia has ALREADY failed to do "all that it could have" because it will be several months before they can get their chip on the market. Had nVidia really done all that it could, they should be able to release NV30 now.

Look, I'm all for exploring the R-300 architecture, and determining its "weaknesess". That's what this forum is for. Once the shock wears off, and reviewers (and hopefully B3D staff) get their parts, we'll be analyzing this thing to death...figuring out where we thing the chip companies need to go from here, what "limitations" the R-300 has that we'd like to see removed with future chips, etc.

But to start waving flags and claim that "eh...ATI just didn't do enough" sounds awfully, well, fanboyish.
 
Chalnoth,
With the exception of Turing machines, there are no CPUs with unlimited program length. And with the exception of a few trivial algorithms, most things are bounded by memory, stack, and CPU, all of which have finite limits.

The only reason we don't complain about these limits is because the current size is "effectively" unlimited. Well, a 1024op shader is "effectively" unlimited. Most algorithms I can envision will fit into this. A 1024 op shader will slow down the GPU so that it can only deliver about 1,200,000verts/sec, or 20,000 vertices per scene, which is not very compelling IMHO. Moreover, a 96 op pixel shader could (assuming say, 4 combiner stages) drop performance by 24x.

Even granting unlimited length and branching, I can tell you that 99% of developers are going to be optimizing their shaders to the SMALLEST POSSIBLE SIZE because it can dramatically effect performance.

Any developer who thinks he can just code in a high level language and generate shaders without considering what's going on underneath is a dumbass and will generate pathologically slow code.

So, even given your 'unlimited shaders', anyone who dares to code something even touching the limits of DX9 will run at a snails pace -- it won't be real time.

Now maybe if someone is using them for a renderfarm, it's fine. But again, given the 128-bit FP framebuffer of DX9, any sufficiently advanced shader can be decomposed to multipass.


If you want to talk limitations, how about the fact that vertex shaders and pixel shaders can only operate on a single object (vertex, fragment) at a time. That severely limits the kind of effects you can do.
Fix that first before worrying about 15,000 line long shaders.
 
Any developer who thinks he can just code in a high level language and generate shaders without considering what's going on underneath is a dumbass and will generate pathologically slow code.

See, Democoder, that's exactly where ATI failed us all! Had ATI really done all they could do to drive the industry forward, the R-300 would be able to handle code from such dumb-asses at lightning speed....

Bah! Bad...bad ATI!

:rolleyes:
 
Thank you, DemoCoder, for bringing out such valid points. Chalnoth is clearly wanting the GPU to basically be CPU replacement, which is NOT what we want.

We want a piece of hardware that executes certain types of code very rapidly, and leave the rest for the CPU. General flow control leads to branch prediction, which devours die space that could be used for parallelism.

Finally, the GPU is for realtime graphics, not creating movies. That is such a specific task that it would make much more sense to specifically design a new chip for this only, so that they can speed up the development of "Toy Story 5" or something like that. Even renderman shaders aren't good enough for movies because photo-realistic graphics don't follow the same pixel-by-pixel approach to rendering. 160 instruction shaders are plenty long to stress playability at even 640x480.

Your example of underwater reflection is very easily implemented with CND/CMP, also. I can't see why you need conditional flow control so badly.

Weren't you also arguing about the futility of a 128-bit FP pipeline before? Yet you are talking about R300 hamping the progress of 3D technology. Damn, you couldn't applaud ATI if they saved the world, could you.
 
Joe DeFuria said:
Let's forget for the moment that the R-300 seems pretty much aaccepted as the single biggest leap between it and the "previous" top of the line board since the Voodoo1 vs. Voodoo2 SLI step. That this chip has generally exceeded most expectations. I mean certainly, ATI should have done "more"....it's not enough that it has more than doubled the nearest competitor's performance...PLUS added support for the next gen API all in one shot...

In performance, I agree.

Performance and features are two different issues altogether.

Note: I'm not necessarily thinking that ATI's features are necessarily bad, or aren't a good step forward, just that I thought they could have done more.

That aside, the reason why your argument makes no sense, is because ATI is delivering NOW. Using your logic, I can make the argument that Nvidia has ALREADY failed to do "all that it could have" because it will be several months before they can get their chip on the market. Had nVidia really done all that it could, they should be able to release NV30 now.

And games that use these features, really use them, won't be out until long after the R300 and NV30 are fairly old. Since ATI will most likely follow-up the R300 with another video card with almost identical specs, if the NV30 is much more programmable, then the R300 will have only served to slow down the overall advancement of 3D.

Since these features aren't going to be used now anyway, the time of release is of little consequence, except the fact that we don't really know right now what the features of the NV30 are. It may prove to have the same limitations I see in the R300. If it does, then I guess I can't really complain anymore...

With the exception of Turing machines, there are no CPUs with unlimited program length. And with the exception of a few trivial algorithms, most things are bounded by memory, stack, and CPU, all of which have finite limits.

Well, of course. But, let's consider for a moment just what those limits are like compared to the limits we see in the R300's pixel and vertex shaders.

Take, for example, a 1MB program compiled on a 64-bit instruction set (I wouldn't be surprised if the R300 actually used a 32-bit or lower instruction set...there just aren't that many instructions yet...).

If each instruction takes up 64 bits, or 8 bytes, and a 1MB program has 1048576 bytes, then this program will be capable of 131,072 instructions in total.

If you ask me, performance will always be a limitation in such programs LONG before any memory limitations kick in. Yes, I'm sure my numbers can be pretty far off, but I'm pretty sure they're at least within an order of magnitude.

Update:
One last thing. If you want to say something to the tune of, "Why implement it if it's going to perform too slowly to use anyway?" Please consider that game developers may want to use such effects on relatively small portions of the screen, or only using conditionals on very simple shaders.
 
Since ATI will most likely follow-up the R300 with another video card with almost identical specs, if the NV30 is much more programmable, then the R300 will have only served to slow down the overall advancement of 3D.

Let me argue against absurdity with absurdity.

ATI delivered a DX9 part, 110 million transistors, with stellar performance on 0.15 microns with DDR memory clocking around 300 Mhz.

The best nVidia had done to date with the same process and similar memory is the "lowly" 60 million transistor, DX 8.0 Geforce4 Ti.

Seems to me that if you and nVidia are so concerned about next gen hardware "holding back" the industry, then you and nVidia should have come out with whatever it is that would satisfy you 6 months ago, therefore making ATI's R-300 moot.

Heck, nVidia hasn't even delivered Ps 1.4 hardware to date...ATI is already 2 pixel shader versions ahead of them....and yet you are afraid that ATI is holding back progress? :rolleyes:

If it does, then I guess I can't really complain anymore...

Somehow, I doubt it. I believe you'll find something in any non nVidia product to complain about.
 
Chalnoth said:
There's something in every product to complain about. That's why I'm here, after all.

dont recall you saying anything about NVIDIA holding 3d back with *only* DX8 support on the GF3... or not having PS 1.4 on the GF4... I mean, if it isnt NVIDIA, it isnt innovative... right?
 
Unless I'm very much mistaken, this slide from the launch presentation seems to suggestion that flow control is present in the 9700 - in the Vertex Shaders at least.

dxcompare.jpg
 
cellarboy said:
Unless I'm very much mistaken, this slide from the launch presentation seems to suggestion that flow control is present in the 9700 - in the Vertex Shaders at least.
Flow control is a part of the VS 2.0 spec.
 
Heh, the guy has an opinion. Let's quit throwing around names like 'fanboy', 'absurdity' etc in the hope that it makes our own argument look somehow 'stronger'.

Crux of the matter is, throwing around loops and branching in microcode is a highly debatable issue. People were hotly debating about this at SIIGRAPH 2 years ago.

M$ felt that it would hamper performance, and cause insurmountable debugging issues for bottom tier developers. Others wanted the flexibility. There's a good summary about the whole debate from ArsTechnica I believe.

Whether ATI implements it in future chips is far from certainty, precisely b/c of the tradeoffs inherent.
 
Yes, I'm fully aware of flow control in the vertex shader portion. The NV30 will certainly have this as well (flow control in the vertex shader portion, at least, is in the Cg white papers...sorry about the misinformation previously that flow control was also there for the PS...).
 
Chalnoth said:
Yes, I'm fully aware of flow control in the vertex shader portion. The NV30 will certainly have this as well (flow control in the vertex shader portion, at least, is in the Cg white papers...sorry about the misinformation previously that flow control was also there for the PS...).

Well damn nVidia for holding back the world of 3D then.
Without flowcontrol, the world is lost!
 
(I can't hold it anymore.......)

I will make sure my next VPU to have FlushControl(tm) :eek:
 
The question is not the amount of samples employed, but the performance with each number of samples.
 
Chalnoth said:
And games that use these features, really use them, won't be out until long after the R300 and NV30 are fairly old. Since ATI will most likely follow-up the R300 with another video card with almost identical specs, if the NV30 is much more programmable, then the R300 will have only served to slow down the overall advancement of 3D.

Huh?

According to this logic ATI are managing to deliver features that won't be used by developers for years while simultaneously dragging the whole consumer 3D market back to the stone age...

... Brain ... about ... to ... explode... cannot ... follow ... strange ... twisted ... reasoning ... :eek:

More seriously, any advancement is always going to come in moderate steps. GF3 pixel shading is only a very small step from Geforce register combiners (adding very limited texture indirection).

Neither hardware nor software developers can go from Step A to Step F and miss out steps B,C,D and E along the way. R300 shaders are massively more capable than any in the previous generation - expecting things to go much further than this in one generation is simply not a reasonable position.

NVidia produced Step A with register combiners, and then Step B twice in succession (not counting the straight GF3 refresh) without really changing anything, but there is little evidence to suggest that this has held back the development of consumer 3D graphics.

R300 certainly isn't holding anyone back.

- Andy.
 
I'd argue that nvidia did an awful lot to chain back the development of 3D by shying away from developing an algorithm allowing free mixing of ALU and texture ops... their architecture hasn't been updated, or pushed into the 'value' segment, in two years.

In contrast, ATI are delivering improvements to the PS architecture every year, AND driving them down into the low-cost segment inside the same year. THAT is pushing 3D forward!

There was never a plan for a DX8 value part from nvidia before the competition produced one. nvidia's (management) interest is solely in milking poor gamers for their cash.

(BTW, I'm sure that's not the case with the engineers, who in my experience are all excellent chaps. Unlike the management.)
 
Back
Top