Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Slight optimization in the pixel shader. We are using pow(2.0, X) in …
…place of exp2(X). This can be faster in places that don't optimize a pow to a exp2 in this case.

Notice this from here: http://cgit.freedesktop.org/mesa/mesa/commit/?id=847bc36a38d42967ad6bf0492fe90a4892d9d799
Intel Haswell GPU is 24 cycles for POW and 14 cycles for EXP2.
Maybe other GPUs don't optimize this either. Just be safe.
  • Loading branch information
Sonicadvance1 committed Jan 8, 2014
1 parent cdf69ad commit b55a4bb
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions Source/Core/VideoCommon/PixelShaderGen.cpp
Expand Up @@ -1128,10 +1128,10 @@ static const char *tevFogFuncsTable[] =
"", // ?
"", // Linear
"", // ?
"\tfog = 1.0 - pow(2.0, -8.0 * fog);\n", // exp
"\tfog = 1.0 - pow(2.0, -8.0 * fog * fog);\n", // exp2
"\tfog = pow(2.0, -8.0 * (1.0 - fog));\n", // backward exp
"\tfog = 1.0 - fog;\n fog = pow(2.0, -8.0 * fog * fog);\n" // backward exp2
"\tfog = 1.0 - exp2(-8.0 * fog);\n", // exp
"\tfog = 1.0 - exp2(-8.0 * fog * fog);\n", // exp2
"\tfog = exp2(-8.0 * (1.0 - fog));\n", // backward exp
"\tfog = 1.0 - fog;\n fog = exp2(-8.0 * fog * fog);\n" // backward exp2
};

template<class T>
Expand Down

0 comments on commit b55a4bb

Please sign in to comment.