Equivalent fill-rate

Equivalent fill-rate has been introduced by VideoLogic and NEC to allow comparisons between their PowerVR hardware and Traditional Hardware. As you might know PowerVR's design is rather different from the design used by other companies. 

In the end it boils down to this : traditional 3D cards (Voodoo, TNT, ATI, ... ) render a scene polygon per polygon. These cards have no clue about how the scene will look at the end, they just render it part by part. The result of this is that sometimes polygons are drawn that are invisible (or partly invisible). This results in a loss of fill-rate. Basically you use fill-rate to render things that are invisible. Simple example : monster stands in front of a wall. A traditional renderer will draw the wall and will then partly "overdraw" it with the monster. So basically you could say that some of the pixels of the wall that have been rendered where useless. 

PowerVR works differently. It works on a per scene base. PowerVR will study the complete scene and through some interesting algorithms it will figure out what is visible on a per pixel basis. The results of this is that the wall pixels behind the monster are not being rendered by the PowerVR cards.

Now this difference introduces a problem. fill-rate between PowerVR and traditional cards can not be compared because both technologies use it differently:  traditional renderers  have some waste (the pixels behind the monster) and PowerVR doesn't have waste.

To allow comparisons VideoLogic has introduced the Equivalent fill-rate basically they tried to compensate for the extra work that a traditional renderer has to do and that way they were able to produce a theoretical number that can be compared with Voodoo, etc...

The way it works is like this : You take the amount of overdraw and you multiply it with the Raw fill-rate ( Theoretical Peak fill-rate) of PowerVR. Ok so what is overdraw. Well overdraw is the amount of hidden pixels that are being drawn by traditional renderers in percentages compared to the screen resolution. If we take our monster and wall example. Assume the monster covers half of the screen. This would mean that a normal 3D card renders the wall (100% of the screen) and then it renders the monster on top of that (50% of the screen). So in total you need to render 1.5 times the screen in terms of amount of pixels. Now for every pixel you draw you consume fill-rate... keep that in mind.

Now PowerVR will look at the scene and it will figure out that  either the wall or the monster is visible but never both at the same pixel (they overdraw each other). The result of this is that PowerVR only draws the whole screen once (100%).

Now in this scene the overdraw is 50% (aka. the monster). Now the equivalent fill-rate is reached by adding 1 to this definition of overdraw and then multiplying it with the fill-rate or ( 1 + 0.5 ( = overdraw) ) * 100 Mtexels (fill-rate) = 150 Mtexels.

Now the problem with this definition is : how much is the overdraw ? In my sample it was very well defined but how much is it in a real game ? VideoLogic claims that it is between 2 and 5 resulting in an equivalent fill-rate of 200 to 500 Mtexels. However these numbers are not purely theoretical and probably influenced by marketing (read increased seriously and thus exaggerated by marketing). A realistic guess is that overdraw is about 20% minimum and about 300% maximum. The lack of knowledge about the Real World (read Games) amount of overdraw makes the equivalent fill-rate a very discussible subject. Once PowerVR250 is launched we will be able to figure out how important overdraw really is. The numbers I have right now indicate that average overdraw is probably close to 2 (meaning that a complete useless, hidden screen is being filled by a traditional renderer).