New selective supersampling demo

trinibwoy said:
215fps on a X1900XT/2.4 ghz A64 with 6x MSAA 16x AF HQ and 11 sample SSAA. :cool: Humus, how come there's a negligible performance hit for AF?
stfu :p
I moved around untill I got the worst fps, oh I was at 1280x960
My fps only pegs around 350-400 fps also :???:
My 7800GT is even clocked to 505 core/ 1.1ghz mem.
With HQ filtering on I noticed shimmering in the distance, that cuz the 7XXX's bad filtering? running full screen.
 
Last edited by a moderator:
Ailuros said:
The AA used in Humus' demo is adaptive shader antialiasing; you can add either through the demo or through the driver CP any other form of FSAA for the rest of the scene.

Yeah, sorry, I went off topic a bit with a different idea. I did realise you could add AA though the CCC or whatever.

What the Matrox FAA does is find the edges of object in the scene, then applies AA just to these edges. Its a simple performace hack on Matroxs part, but gives very very good results. If the Parhelia was capable of much better AF as well as FAA then I think it would have been a decent idea.

Anyway, sorry to go off topic, I was sort of trying to seed Humus with an idea I thought he might find worth pursuing.
 
FAA in it's initial incarnation did kick off occassionally with missing antialiasing for polygon intersections for example. While it's an interesting concept as an AA algorithm I would have preferred less samples with a higher EER instead. FAA is limited to 4*4 only.

Back on topic, that demo is actually an excellent test to detect added aliasing from underfiltering or else driver AF optimisations. Sweet spot which reduces almost all aliasing is a combination of 8xS, 3x sample adaptive SSAA and 16xAF:

http://users.otenet.gr/~ailuros/selSS.jpg
 
from the start/camera. 16aa/Qadaptive,16af/hq,11ss
amdx2 2.4, 1800xt(stock)

advanced AI 112fps
standard AI 88fps
off AI 51fps
 
Last edited by a moderator:
7800 GTX 512 (580/1730), 1600x1200, 4xaa 16xaf, 11 samples, AMD X2 4800+

Image Settings = High Quality : 93 FPS
Image Settings = Quality: 134 FPS

With image settings set to Quality the aliasing is much worse with no multisampling and still noticable with 11 samples.

AF setting seems to have no impact on FPS!?
 
Does this demo use AF by default? I have AF disabled or rather to application preference and it looks like af is used
 
BTW,
Humus said:
Global supersampling is just too expensive to be an option in most cases.
John Carmack said:
Of course, people used to say that "obviously full screen depth buffering is just too expensive"
JC wasn't responding to Humus' statement above per se but to a comment of mine recently that is more or less the same as Humus' regarding SSAA.

Ailuros said:
Copy that
John Carmack said:
I have never been fond of that sort of special casing.
Hence my previous post :cry:

Oh, and a bonus :
John Carmack said:
Something I would like to see that sounds plausible from a hardware standpoint is optionally jittered fragment center points for both rasterization edge testing and all interpolants, which would help many classes of aliasing.
 
trinibwoy said:
Humus, how come there's a negligible performance hit for AF?

Are you forcing AF in the driver control panel? If so, then it's because the demo already uses AF. Well, except if you resize the window ... I apparently had a bug in the framework so that it didn't set the AF again after a device reset. I've fixed that now though and uploaded a new version.
 
Ali said:
Humus, I was just looking though your page, and found your Cel-Shading demo. Reading the blurb it sounds like the line finding part of that, and the super sampling part of your new demo could be linked to reproduce Matroxs Fragment-AA. Am I off base with that?

This kind of supersampling cannot help with the edges. That's because it's local in the shader, so it doesn't have access to the framebuffer or anything that belongs to other primitives.
For edges, multisampling takes care of that anyway. So it's best to combine, use MSAA for edges, and supersample as needed in the places that needs it.
 
Carmack said:
Of course, people used to say that "obviously full screen depth buffering is just too expensive"

Well, I would not compare it like that. Supersampling will always be proportionally more expensive. 4x SSAA will always be 4x as expensive, pretty much regardless of technology. Depth buffering cost doesn't scale with the workload in that way. The more advanced shaders, the less the relative cost of depth buffering. Of course, old games will always reach a point where the new GPUs can supersample it effectively on the driver side. The question is if we'll ever reach a point where the GPU technology has outpaced everyone's desires for computation power. I'm not convinced. With 4x more power you can either do SSAA with yesterday's effects (and still not neccesarily solve all aliasing cases) or you can spend that power on todays effects and supersample only where needed.

Carmack said:
Something I would like to see that sounds plausible from a hardware standpoint is optionally jittered fragment center points for both rasterization edge testing and all interpolants, which would help many classes of aliasing.

A good solution instead of using the gradient like I did would be if the hardware would provide more correct sample locations for me. Perhaps like this:

Code:
varying vec2 texCoord;
 
uniform vec2 sampleOffsets[8];
 
void main(){
   vec4 sum = 0.0;
   for (int i = 0; i < 8; i++){
       sum += texture2D(Base, getAdjustedSampleOffset(texCoord, sampleOffests[i]));
   }
 
   gl_FragColor = sum;
}
 
Last edited by a moderator:
Humus, perhaps it's better if you edited your post to reflect who should actually be credited for the quotes you chosed :)

As for the depth buffering analogy offered by John, I think his point was that we're moving forward all the time and maybe FS-SSAA may no longer be as expensive as it still is now in the future. He has now said basically what Tim Sweeney told me a long time ago and that it is probable we'll see FS-SSAA again. When? Million dollar question, huh? :)
 
Last edited:
N00b said:
7800 GTX 512 (580/1730), 1600x1200, 4xaa 16xaf, 11 samples, AMD X2 4800+

Image Settings = High Quality : 93 FPS
Image Settings = Quality: 134 FPS

With image settings set to Quality the aliasing is much worse with no multisampling and still noticable with 11 samples.

AF setting seems to have no impact on FPS!?
Well, that's a pretty big % hit, but really, do you actually care at those framerates? I mean, hell, turn on 8xS and reduce aliasing even more!
 
Reverend said:
Humus, perhaps it's better if you edited your post to reflect who should actually be credited for the quotes you chosed :)

Fixed.

Reverend said:
As for the depth buffering analogy offered by John, I think his point was that we're moving forward all the time and maybe FS-SSAA may no longer be as expensive as it still is now in the future. He has now said basically what Tim Sweeney told me a long time ago and that it is probable we'll see FS-SSAA again. When? Million dollar question, huh? :)

Sure, we're moving forward at amazing speed, but supersampling will not become "cheaper" relatively speaking. It's almost per definition so. Some will think it's worth it of course, but I think most people would prefer a hybrid solution like in this demo, where you solve the problem where it occurs without taking the performance hit of applying it blindly on everything.
 
Humus said:
Some will think it's worth it of course, but I think most people would prefer a hybrid solution like in this demo, where you solve the problem where it occurs without taking the performance hit of applying it blindly on everything.
Most people don't ever get what they want when it comes to what they expect from ISVs.

ISVs have had a chance to do something about AA since the introduction of DX8 (can we all remember?) and we can all see where their priorities lie. Don't get me wrong; I wish all game developers would and could afford the time and resources for an entire game (unlike your demo's single scene, which is a big difference) but the reality is that this is unlikely. Good demonstration though, if a bit useless when it comes to what you and I and most folks wish :cry:
 
Humus said:
Yes, maximum AF level supported and trilinear on all textures except the lightmap.

If filtering optimisations are enabled in the driver (even if AF is set to "application controlled") they'll influence both quality and performance.
 
Reverend said:
Most people don't ever get what they want when it comes to what they expect from ISVs.

ISVs have had a chance to do something about AA since the introduction of DX8 (can we all remember?) and we can all see where their priorities lie. Don't get me wrong; I wish all game developers would and could afford the time and resources for an entire game (unlike your demo's single scene, which is a big difference) but the reality is that this is unlikely. Good demonstration though, if a bit useless when it comes to what you and I and most folks wish :cry:

I found combining 8xS with 3x adaptive SSAA to be the best sollution both in terms of performance and IQ.

Since this demo is quite simplistic though I'm not so sure that even those 2x FS-SSAA samples of 8xS would be as feasable as in this case.
 
Last edited by a moderator:
Reverend said:
Most people don't ever get what they want when it comes to what they expect from ISVs.

ISVs have had a chance to do something about AA since the introduction of DX8 (can we all remember?) and we can all see where their priorities lie. Don't get me wrong; I wish all game developers would and could afford the time and resources for an entire game (unlike your demo's single scene, which is a big difference) but the reality is that this is unlikely. Good demonstration though, if a bit useless when it comes to what you and I and most folks wish :cry:
I think its a little unfair to say ISV don't support AA. I know that lots of PS3 developers are currently tackling this very problem, X360 virtually all have AA and what PC title doesn't provide an option?

Its actually takes a lot of effort to support AA (think about tiling on Xenon, HDR issues, downsampling depth buffer etc.), yet we all do. Its a simple performance/quality triangle.
Code:
                              Resolution
                                    /\
                                  /    \
                                /        \
                             /             \
                           /                 \
                  Features ------------------ AA
Most devs try and get one roughly in the middle. If you want more AA what would you drop?

Hell most PC games, let you pick yourself... If you want HL2 to look like crap but run at stupidly high resolution with lots of AA, the choice is yours. On the other hand if you want Quake4 to look lovely even on a rubbish card but at 640x480 with no AA, its your choice (I played Doom3 a while back at low res with no AA, cos I was outputing to a big SDTV but meant even a lowly GF5300 in my laptop could do it).

What should ISV do to better support AA?
 
Back
Top