浏览代码

Replace saturate() with a max() to work around a PS4 compiler bug

/Branch_Batching2
Evgenii Golubev 8 年前
当前提交
819753de
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 3
      Assets/ScriptableRenderPipeline/ShaderLibrary/AreaLighting.hlsl

3
Assets/ScriptableRenderPipeline/ShaderLibrary/AreaLighting.hlsl


float a = cosOmega * acos(x) - z; // y*ArcCos[-y*Sqrt[(1/x-1)/(1-y^2)]]-Sqrt[(1-y^2)*((1-x)/x)-y^2]*(1/x-1)
float b = atan(y); // ArcTan[Sqrt[(1-y^2)*((1-x)/x)-y^2]]
return saturate(INV_PI * (a * sinSqSigma + b)); // (a/Pi)*x+(b/Pi)
// Replacing max() with saturate() results in a 12 cycle SGPR forwarding stall on PS4.
return max(INV_PI * (a * sinSqSigma + b), 0); // (a/Pi)*x+(b/Pi)
}
#endif
}

正在加载...
取消
保存