Good explanation of filtering (must read for beginners)

beyondhelp said:
Christ! that story was the final straw. I have to vent... not ONE peep out of them when Nvidia was doing all their Drivers hacks and filtering optimizations and now all of a sudden they pick up the story now that ATI has been accused of cheating, (Which I think is rather a harsh judgement of what they're doing.). ATI has been about saving bandwidth when they can for some time. Hyper Z, Hierarchical Z, Adaptive Anistropic... So why should Adaptive Trilinear surprise anybody? It goes right along with all the other bandwidth saving features ATI has implemented over the last couple of years. So why should it be considered a cheat? Because they didn't tell you what they're doing? Why broadcast a new filtering technique to your Competitor? I would have kept my mouth shut about it too.

As for all the bit comparisons and screenshots making the rounds, I say I could care less about numerical precision and differences when screenshots are blown up 1000%. When Full Tri is needed (Or seemingly, if theres any doubt) it is used. When it isn't needed, they don't waste bandwidth on it. Seems pretty Smart on ATI's part to me. Subtle. Neat. A rather Elegant optimization on their part imo.

I'd kindly like to invite all the anal rententive Yammerheads who have been going on and on about this to take a flying leap. ( Oh and I'd like to ask you when Nvidia is going to actually let you turn on Full Trilinear and not just pay lip service to the option? and WHY, if the 6800 is so Fine, is Nvidia still using _pp hints with it? I thought it was this all powerfull Full 32bit precision powerhouse :rolleyes: -lol- )

The only thing ATI SHOULD have done was allowed all the Anal retentive Yammerheads to turn it off if they wanted, to shut them up.

On Topic, The article is pretty good when it comes to helping explain Filtering in General, but the overall tone of the article Implies that ATI is cheating, and I don't see it that way. Sorry. To equate what ATI is doing now with what Nvidia has been doing for nearly 2 years is a joke. (imho of course ;)). Go ahead...Flame away!

Well, to paraphrase you:

nVidia has been about saving bandwidth when they can for some time

Partial precision is part of the DX9 specification and is a bandwidth saving feature. If ATi is so into bandwith consevation, why don't they also do it?
 
radar1200gs said:
Partial precision is part of the DX9 specification and is a bandwidth saving feature. If ATi is so into bandwith consevation, why don't they also do it?
What a load of rubbish. Please explain what bandwidth it is saving. All of the shader computations are done on the chip itself, none of it accesses the video memory unless there is a texture lookup and that is likely to be a 32-bit (i.e. 8 bits per component) format.

Why do you insist on posting such tripe? 7+5+4 = 16? Hello? Anyone home?

-FUDie
 
Partial precision is part of the DX9 specification and is a bandwidth saving feature. If ATi is so into bandwith consevation, why don't they also do it?
yes but only one a dev asks for it . Not for nvidia to convert all 24bit / 32bits into 16bit calls . Not for nvidia to say hey this can be done with a p.s 1.4 shader with fx 12 instead of a p.s 2.0 shader and 32bit lets just change it cause we want more performance.
 
DaveBaumann said:
"Partial Precision" relates to internal precision.

He was asking about the partial precision hint. That is clearly defined in the DX9 specification and has nothing to do with internal precision.
 
radar1200gs said:
DaveBaumann said:
"Partial Precision" relates to internal precision.
He was asking about the partial precision hint. That is clearly defined in the DX9 specification and has nothing to do with internal precision.
Are you trying for a record on how many times you can be wrong in a single thread? "Partial precision" refers to _pp modifiers on pixel shader instructions. Of course this relates to internal precision. Why else would the spec say that partial precision must be at least FP16?

Good grief!

-FUDie
 
radar1200gs said:
DaveBaumann said:
"Partial Precision" relates to internal precision.

He was asking about the partial precision hint. That is clearly defined in the DX9 specification and has nothing to do with internal precision.

Apart from the fact that it does, of course.

Edit - oop, beaten to it.
 
I don't buy this whole driver cp is too complex thing, for christ sakes how hard is it put a checkbox to enable/disable trilinear optimisations? It it confusing? No. Will it clutter up the cp? Hell no. For christ sakes they add that silly shader effect option to the cp and they're concerned about cluttering up the cp and confusing users. Fact is a large number of people use 3rd part cp tools like ATI tool, rage3d tweak because the cp lacks options. High end users crave options, we want to be able to tweak everything.

It's fairly obvious they're dodging full trilinear options so that they're products look faster, again it's all just deceptive marketing so that they win that performance crown. Unfortunately success in the computer industry is all about market perception, ie who is percieved to have superior products. A very small number will be able to afford these products that claim tech superiority. The rest of market settles with the crippled slow cards, but be swayed because the company xyz has the highest performing high end product.
 
precision is precision. Internal or external as is bandwidth. It all adds up.

Pixelshaders require bandwidth also. Using the _PP hint can reduce that bandwidth.

We have heard plenty of coders who post in this forum state that they have to be careful when coding not to run into the limits of R3xx's shading bandwidth.
 
...

no. it can't be.

I think he thinks that the difference between FP16, FP24, and FP32 is the color depth at which the things are rendered. hell, reading his last several posts, it's the only explanation that makes ANY sort of sense. (okay, I know, I shouldn't try to make sense out of his posts, it's bad for me, but...)
 
The difference is how much data has to be moved around the chip at any one time. FP16 halves FP32's requirements in that regard and allows for more register space which can assist scheduling.
 
radar1200gs said:
precision is precision. Internal or external as is bandwidth. It all adds up.

Pixelshaders require bandwidth also. Using the _PP hint can reduce that bandwidth.
No, shaders require no bandwidth whatsoever. What the _pp hint can do is reduce internal storage. This has nothing to do with bandwidth but how many pixels the shader unit can have in flight. Internal bandwidth from the shader to this storage is "free" since the thing should be designed to run at full speed. In fact, if you are using _pp, you are essentially wasting this "bandwidth" since you will have data lines that are not being utilized. Judging by experiments done on NV3x, the storage can be accessed at full speed in either full or partial precision mode (shaders with few temporaries ran fast), but the number of pixels in flight was reduced in full precision mode due to a lack of storage.

Texture lookups use bandwidth, but the _pp modifier will have absolutely no effect on this bandwidth because the data format of the texture is what determines how much bandwidth it requires.
We have heard plenty of coders who post in this forum state that they have to be careful when coding not to run into the limits of R3xx's shading bandwidth.
Never saw this mentioned by anyone. Some developers said they ran into R3xx's shader instruction limits but that has nothing to do with bandwidth, but how long shader programs can be.

Why do you insist on defending a position which is indefensible?

-FUDie
 
radar1200gs said:
precision is precision. Internal or external as is bandwidth. It all adds up.

Pixelshaders require bandwidth also. Using the _PP hint can reduce that bandwidth.

We have heard plenty of coders who post in this forum state that they have to be careful when coding not to run into the limits of R3xx's shading bandwidth.
well for bandwidths sake i guess ati should just force bilinear all the time and get rid of af ?

If the dev asks for 32bit fp then they should get it. Its not up to nvidia to choose when a dev gets what he asks for .
 
radar1200gs said:
The difference is how much data has to be moved around the chip at any one time. FP16 halves FP32's requirements in that regard and allows for more register space which can assist scheduling.
This bandwidth is free. End of discussion. Register space is something completely different. Your whole premise is flawed.

-FUDie
 
jvd said:
radar1200gs said:
precision is precision. Internal or external as is bandwidth. It all adds up.

Pixelshaders require bandwidth also. Using the _PP hint can reduce that bandwidth.

We have heard plenty of coders who post in this forum state that they have to be careful when coding not to run into the limits of R3xx's shading bandwidth.
well for bandwidths sake i guess ati should just force bilinear all the time and get rid of af ?

If the dev asks for 32bit fp then they should get it. Its not up to nvidia to choose when a dev gets what he asks for .

Since when has nVidia recently forced precision changes upon us in drivers? That hasn't happened in a long time. Get over the past.

In contrast ATi is forcing AF & Trilinear optimizations upon you whether you want them or not.
 
FUDie said:
radar1200gs said:
The difference is how much data has to be moved around the chip at any one time. FP16 halves FP32's requirements in that regard and allows for more register space which can assist scheduling.
This bandwidth is free. End of discussion. Register space is something completely different. Your whole premise is flawed.

-FUDie

Nothing is ever free. Especially not register and memory bandwidth.
 
radar1200gs said:
FUDie said:
radar1200gs said:
The difference is how much data has to be moved around the chip at any one time. FP16 halves FP32's requirements in that regard and allows for more register space which can assist scheduling.
This bandwidth is free. End of discussion. Register space is something completely different. Your whole premise is flawed.

-FUDie

Nothing is ever free. Especially not register and memory bandwidth.

But you were talking about "shader bandwidth" - something that isn't even a recognised term because it's a total non-issue (i.e. free).
 
radar1200gs said:
jvd said:
radar1200gs said:
precision is precision. Internal or external as is bandwidth. It all adds up.

Pixelshaders require bandwidth also. Using the _PP hint can reduce that bandwidth.

We have heard plenty of coders who post in this forum state that they have to be careful when coding not to run into the limits of R3xx's shading bandwidth.
well for bandwidths sake i guess ati should just force bilinear all the time and get rid of af ?

If the dev asks for 32bit fp then they should get it. Its not up to nvidia to choose when a dev gets what he asks for .

Since when has nVidia recently forced precision changes upon us in drivers? That hasn't happened in a long time. Get over the past.

In contrast ATi is forcing AF & Trilinear optimizations upon you whether you want them or not.

have you played farcry recently ?

Not to mention how much else they do that we can't notice or haven't noticed .
 
beyondhelp said:
and WHY, if the 6800 is so Fine, is Nvidia still using _pp hints with it? I thought it was this all powerfull Full 32bit precision powerhouse :rolleyes: -lol-

It can still benefit from the use of FP16 - decreased reg usage limitations (no way near as severe as NV3x though) and free normalisation. One would hope that the _pp hint is now being used in situations where it does not constitute "cheating".
 
radar1200gs said:
In contrast ATi is forcing AF & Trilinear optimizations upon you whether you want them or not.
So is nvidia. On they boards they have sold in the past 14 months they are only not forcing it for the 10 or retail retail 6800's that have been sold, with one driver release so far. Thats hardly a commitment.
 
Back
Top