Alternative AA methods and their comparison with traditional MSAA*

This MLAA appearing on PS3 seems to be part of a library of code shared between first-party devs at least. I imagine NDA prohibits us from learning for sure if 3rd parties get access to such libraries, but I certainly expect they do. Sony would rather used this tech to promote PS3 as the better platform, rather than limit it to promoting 1st party titles only.

The tech itself is public domain, with Intel's papers, so anyone who wants to give it a go on any platform can.
 
This MLAA appearing on PS3 seems to be part of a library of code shared between first-party devs at least. I imagine NDA prohibits us from learning for sure if 3rd parties get access to such libraries, but I certainly expect they do. Sony would rather used this tech to promote PS3 as the better platform, rather than limit it to promoting 1st party titles only.

The tech itself is public domain, with Intel's papers, so anyone who wants to give it a go on any platform can.

I think that GoW III's technique (or a good alternative to it like it happened for other tech pioneered by other 1st party studios) will make its way into the Phyre Engine which is quite accessible for all 3rd parties.

I am quite glad this generation brought us quite a bit of high performance code for 3rd parties: Insomniac's Nocturne program, EDGE tools, Phyre Engine, etc...
Also, in terms of engines... I did not believe that we would have a free and open source valid alternative to Havok and PhysX... which is Bullet. It might have helped Bullet's contributions the fact that both of those other libraries are linked to companies (Intel and nVIDIA respectively) which are not very interested into making them the best multi-platform libraries they can be :).
 
One thing I'll just add:

Resource usage figures for games is an interesting metric, but ultimately there is very little meaningful information you can take away from it.
Extrapolating and saying 'ohh, they are only using 50%, that means their next game will do twice the stuff' is the worst form of speculation.


...

There was a very good quote/analogy on ND's site WRT "we're using X % of system's Y zomg huge power" sentences. I had a talk about it with Shifty in PM back in septembre last year, if he remembers it. :)


It was on their site, but it seems it was moved or removed completely for some reason. Here it is from Ars:

Q) What percent of the PS2’s power are you using?

A) People think of systems as glasses and ask: “how full is the glass”. Unfortunately, that isn’t how it works. Any developer who gives you a “percent of system used” answer is blowing smoke. The truth is that every developer uses 100% of the systems power on every game. Some just get more out of that 100% than others. And game after game, we ALL get more out of systems than we did on the previous title. Think of it this way. If the system is a glass, some developers pour in rocks till the glass overflows and then call it quits. They would claim that they use 100% of the systems space. And it is true that no more rocks fit. Some will even put in a rock too many and the game plays slow or runs funny. But there is still some space left for smarter developers. They pour pebbles into the cracks left by the rocks, and they get more into the glass. Then they call it 100% full. But some Developers will then pour in sand, to fill the cracks between the pebbles. They get even more out of the system, yet it is still just 100% full. Some developers go the extra distance, and they pour in water. Then the glass is truly full, right? Sure, but just for this title, because some of the rocks can be replaced with pebbles that do the same thing, if you work hard at it. And some of the pebbles can be made into sand. And some sand can be pressed to water. No developer ever gets a glass filled with only water, no developer has that much time, so no developer truly fills the glass. We just get more and more out of the 100%.




It's Interesting how pretty much everybody from the mainstream gaming press jumps right on that kind of PR talk without even occurring to them one simple factor - time. You simply can't beat time (unless you warp it :p). Time to master the archs and improve the tools and middlewares and art pipelines as you've mentioned. But then again, it doesn't surprise me, after all, they are doing it for the hits. ;)
 
Last edited by a moderator:
Oh so true, but in the SPU case, it is indeed possible to not fully utilize them. Need careful planning to split off your work explicitly.
 
I'd say that the system with the best utilization is the C64 - and even that is not 100%.
 
Any solid word on any developers attempting MLAA, AAA, or other post processing anti-aliasing tricks (not counting: DOF, MB, or dumb edge blurring) on the Xbox 360? If SPEs were a solution looking for a problem this sort of technique seems right up its ally. Hard to imagine Xenon doing much here (not to mention it is probably pretty tapped as a resource) so that would leave Xenos. It has memory export and is pretty versatile, and if tiling due to MSAA is taking a 5-20% penalty maybe it would be better to use that same time to do quality post process AA.

A game like Reach, which uses crap temporal AA (so probably not taxing the GPU or CPU so the cost is probably far and above their budgets) but has an art style that would look super clean with these techniques.
 
AvP and Metro 2033 has 'AAA' on the 360.

In this video a bit into it they show of their 'AAA' "64xAA" solution regarding Metro 2033.



http://www.eurogamer.net/articles/digitalfoundry-metro2033-article?page=3

"The closest explanation of the technique I can imagine would be that the shader internally doubles the resolution of the picture using pattern/shape detection (similar to morphological AA) and then scales it back to original resolution producing the anti-aliased version. Because the window of pattern detection is fixed and rather small in GPU implementation, the quality is slightly worse for near-vertical or near-horizontal edges than for example MLAA."

http://images.eurogamer.net/assets/articles//a/9/7/8/2/3/8/aa1.jpg.jpg
http://images.eurogamer.net/assets/articles//a/9/7/8/2/3/8/aa1.jpg.jpg
http://images.eurogamer.net/assets/articles//a/9/7/8/2/3/8/aa4_000.jpg.jpg
http://images.eurogamer.net/assets/articles//a/9/7/8/2/3/8/aa3.jpg.jpg
 
Last edited by a moderator:
Because the window of pattern detection is fixed and rather small in GPU implementation

How small exactly is this window ?

In the SPU MLAA implementation, they stagger the frames (i.e. PS3 is working on > 1 frames at the same time), so I suppose the CPU has more time and resources to hack at the problem while the GPU work on something else. This effectively increases the compute power spent on the graphics pipeline. Then, to make full use of the allocated "window", the DMA and LocalStore help to hide memory access latency so that the SPUs can work as efficiently as possible.
 
Any solid word on any developers attempting MLAA, AAA, or other post processing anti-aliasing tricks (not counting: DOF, MB, or dumb edge blurring) on the Xbox 360? If SPEs were a solution looking for a problem this sort of technique seems right up its ally. Hard to imagine Xenon doing much here (not to mention it is probably pretty tapped as a resource) so that would leave Xenos. It has memory export and is pretty versatile, and if tiling due to MSAA is taking a 5-20% penalty maybe it would be better to use that same time to do quality post process AA.

A game like Reach, which uses crap temporal AA (so probably not taxing the GPU or CPU so the cost is probably far and above their budgets) but has an art style that would look super clean with these techniques.

I have an opinion here but I could wrong. I don't think on 360 MLAA works as well as ps3 spe. I have in mind the saboteur example which use edge blur detected on both version but on 360 it's less efficient. From what I have understand MLAA on GOW 3 works so well because use 4 spe works alternate with RSX, so a sort of parallel work possible only on the ps3 & use in the multi for other aspects to reach the same quality of gpu of 360. On 360 I don't think is possible to use this type of work processing.
 
From what I have understand MLAA on GOW 3 works so well because use 4 spe works alternate with RSX, so a sort of parallel work possible only on the ps3
It's run in parallel because the architecture supports it, ut the method itself doesn't need to be. MLAA can be added a post-effect after all 3D rasterising.[/quote]On 360 I don't think is possible to use this type of work processing.[/QUOTE]If Xenos is up to it, MLAA could be run as a shader program. I don't know what the shader design is like though and it may not be a good fit for Xenos' units.
 
It will be interesting to get someone to give some performance numbers for running such code on Xenos. Lets say it is 5ms (about 15% of a frames render time at 30Hz). When you consider a game like RDR which runs at 720p with 2xMSAA (2 titles) and better quality settings than the PS3 version it could be possible to to scale back to similar levels and apply MLAA. On the other hand if it is going to take something like 10ms it would be a no go even with the quality reduction.

GOW3 looked great so here is to hoping we get some more info on people trying similar techniques on all platforms.
 
In a sense, MLAA on Xbox 360 would be a waste - you're wasting EDRAM bandwidth if you're running at anything less than 4x MSAA; any development effort and/or frame time spent for getting MLAA to work would be probably better spent in reducing the hit from tiling.
 
If Xenos is up to it, MLAA could be run as a shader program.

That's what I thought, but the article mentioned a small window for GPU implementation. The first step is to know how much time is available in practice rather than a clean room benchmark. Since AAA is possible, clearly the shader approach should work.

It's easier on the SPUs because the pipeline design "cheated" time for the SPUs to work on a future frame, plus the inherent hardware characteristics help to overcome basic hardware bottlenecks (e.g. dedicated CPU/GPU bandwidth, Cell anti-memory wall measures, complete programmer control over memory access, incredibly fast cores, more cores to work on sudden workload at a point in time, ...). Otherwise, it'd be tricky since they need to work on culling and other post processing jobs.
 
In a sense, MLAA on Xbox 360 would be a waste
Think about deferred renderers. In any case, the algorithm used in GoW is not something easily ported to a GPU. I've been giving it some thought over the months and I don't see how you would do that efficiently, especially on Xenos. Of course, someone might surprise me. :)
 
Ah ! What are you doing here ?!

You should be chained to a R* desk or a GG desk by now, [size=-2] and cancel all vacations.[/size]

EDIT: Conversely, does it mean that PS3 can implement AAA if it doesn't have time to run the full MLAA for some reason ?
The Saboteur AA is some sort of proprietary filter right ? I still don't quite understand the differences between MLAA and Saboteur's approach.
 
I still don't quite understand the differences between MLAA and Saboteur's approach.
Saboteur's edge detection technique is different from GOW3's MLAA.
It uses some sort of luminance based edge detection:
http://images.eurogamer.net/assets/articles//a/8/6/7/8/5/1/Luminance.jpg.jpg

The filter also, gets applied on the whole screen...including the HUD:
http://images.eurogamer.net/assets/articles//a/8/6/7/8/5/1/hud.jpg.jpg

and then there are some artifacts:
http://images.eurogamer.net/assets/articles//a/8/6/7/8/5/1/Edge_Fuzzing.jpg.jpg
 
Back
Top