Question: free MSAA? edit: and also free AF?

AlNom

Moderator
Moderator
Legend
Is this possible to do in hardware :?: What are the problems/difficulty with doing it? (i.e. why don't we see it today?)

edit: how about "free" anisotropic filtering (64tap) ?
 
MSAA: Costs memory space and memory bandwidth. If you are going to antialias a pixel with, say, 6 sample points (6X AA), you will need to reserve memory for all 6 sample points, and there will be at least some pixels where you have to access all 6 sample points during rendering. Also, with MSAA, if a pixel lies on the edge between 2 polygons, it needs to be rasterized twice, once per polygon, whereal without MSAA you would pick 1 polygon and thus rasterize the pixel only once, so MSAA costs a bit of pixel fillrate as well.

AF: Cost depends on method used. For the Feline method or approximations thereof (which AFAIK are the most common methods used nowadays), you will be sampling the texture a variable amount of times per pixel and adjust the mipmap selection so that you sample from a more detailed mipmap - costing you a great deal of texture memory bandwidth and quite a bit of texturing fillrate. There are other methods, but with other costs; e.g. Rip-mapping is cheap in terms of fillrate/bandwidth even for high degrees of anisotropy, but requires 3 times as much texture memory as the Feline method and suffers from severe angle-dependency.
 
Free AA is possible with Kyro cards, these are lame as a** though. Maybe their next-gen part, should we ever get to see one ;) ...
 
_xxx_ said:
Free AA is possible with Kyro cards, these are lame as a** though. Maybe their next-gen part, should we ever get to see one ;) ...
Nope. The Kyro cards could only do Supersampling, which cut their performance by a factor of nearly 4 for 4X AA. In principle, Multisampling should be doable in tilers in a way that eliminates the extra memory/bandwidth requirements, but the result is a larger chip and there is still the small fillrate hit.
 
Simon F said:
Humus said:
"Nothing is free in 3D"
You should have at least attributed it to Kristof!

Yeah, I should have Trade-Marked that catch phrase...

Now on to the topic you "could" lay down the logic required to do these ops "for free" aka within a single clock cycle but its unlikely you could sustain that rate due to bandwidth requirements hence its likely to continuously stall meaning you overengineered that bit of hardware. Balanced pipelines is the key.

K-
 
so when are we going to see that card with balanced pipelines :) the new sega arcade board perhaps ?
 
jvd said:
so when are we going to see that card with balanced pipelines :) the new sega arcade board perhaps ?

The longer I have to wait, the more unbalanced I start to feel LOL :oops:
 
Reverend said:
The Bearded One said:
Balanced pipelines is the key.
Explain please.

I think what he is trying to say is that you should balance the pipeline's transistor count with the amount of gain you get from adding the transistors.
Also, transistors are like money, you can spend each transistor only once. So if you would spend a lot of transistors on getting 'free' AF, that would probably mean you have to cut costs elsewhere, say the amount of registers in a shader unit, which will adversely affect performance.
So then your pipeline is unbalanced. AF is free, but general performance is less than it would be if AF were not free.
 
I think the closest anyone has come to free FSAA is Matrox and their "fragment anti-aliasing". It was quite cheap on performance -- especially when one considers the quality of anti-aliasing is could provide. IIRC it had some issues, though. . .
 
Kristof said:
Simon F said:
Humus said:
"Nothing is free in 3D"
You should have at least attributed it to Kristof!

Yeah, I should have Trade-Marked that catch phrase...
K-

Oh No, No! :!:

If I remeber correct and I am sure here ;) then your phrase was:

"Nothing is for free in 3D" :oops:

So I can't see any trade-marked, or do you have the better advocator? :LOL:
 
I believe the 'balanced' statement is in reference to the issues that with any pipeline, the speed is equal to the slowest component. In other words, pipelines that are not well balanced mean that part of the pipeline is constantly busy while another is idle. You can look at it two ways, the partially idle part has too much HW and is making the chip unnecessarily expensive, or you can look at it the other way and say that the constantly busy part has too little HW. It is essentially impossible to ensure complete balance all the time, but the goal as mentioned above is to get good balance for the expected workloads.

Back to the original question, most anything is possible. It is more instructive to think about something being 'free' given a particular workload. Today, there are plenty of instances of free AA. Software bound apps will tend to show this, as will vertex processing limited apps, as will apps that are ALU limited in the fragment shader.

Having AA free most of the time today, would likely mean that it is never the bottleneck. If this were the case, then it wold likely seem as if another portion of the chip has too little resources and is slowing things up, or that there is too much HW devoted to AA and it isn't ever being fully utilized.

-Evan
 
_xxx_ said:
Free AA is possible with Kyro cards, these are lame as a** though. Maybe their next-gen part, should we ever get to see one ;) ...

It was not exactly free.

Even if you don't pay (supposedly) the extra bandwidth costs, nor need a super buffer (extra video memory), you still need to dimension other portions of the chip accordingly (ROP, shader units, memory on chip) and it was not done if I remember correctly on the Kyro II. I guess they decided AA was not so important to pay the extra cost in silicon. And as some people said, it was also not multisampling but supersampling (but at the time it was more common).
 
Back
Top